You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -197,6 +208,8 @@ In the GIS world, rasters are used for representing continuous phenomena (e.g. e
197
208
|[Normalized Burn Ratio (NBR)](xrspatial/multispectral.py)| Measures burn severity using NIR and SWIR band difference | ✅️ |✅️ | ✅️ |✅️ |
198
209
|[Normalized Burn Ratio 2 (NBR2)](xrspatial/multispectral.py)| Refines burn severity mapping using two SWIR bands | ✅️ |✅️ | ✅️ |✅️ |
199
210
|[Normalized Difference Moisture Index (NDMI)](xrspatial/multispectral.py)| Detects vegetation moisture stress from NIR and SWIR reflectance | ✅️ |✅️ | ✅️ |✅️ |
211
+
|[Normalized Difference Water Index (NDWI)](xrspatial/multispectral.py)| Maps open water bodies using green and NIR band difference | ✅️ |✅️ | ✅️ |✅️ |
212
+
|[Modified Normalized Difference Water Index (MNDWI)](xrspatial/multispectral.py)| Detects water in urban areas using green and SWIR bands | ✅️ |✅️ | ✅️ |✅️ |
200
213
|[Normalized Difference Vegetation Index (NDVI)](xrspatial/multispectral.py)| Quantifies vegetation density from red and NIR band difference | ✅️ |✅️ | ✅️ |✅️ |
201
214
|[Soil Adjusted Vegetation Index (SAVI)](xrspatial/multispectral.py)| Vegetation index with soil brightness correction factor | ✅️ |✅️ | ✅️ |✅️ |
202
215
|[Structure Insensitive Pigment Index (SIPI)](xrspatial/multispectral.py)| Estimates carotenoid-to-chlorophyll ratio for plant stress detection | ✅️ |✅️ | ✅️ |✅️ |
@@ -229,6 +242,7 @@ In the GIS world, rasters are used for representing continuous phenomena (e.g. e
229
242
|[Allocation](xrspatial/proximity.py)| Assigns each cell to the identity of the nearest source feature | ✅️ | ✅ | ✅️ | ✅️ |
230
243
|[Balanced Allocation](xrspatial/balanced_allocation.py)| Partitions a cost surface into territories of roughly equal cost-weighted area | ✅️ | ✅ | ✅️ | ✅️ |
231
244
|[Cost Distance](xrspatial/cost_distance.py)| Computes minimum accumulated cost to the nearest source through a friction surface | ✅️ | ✅ | ✅️ | ✅️ |
245
+
|[Least-Cost Corridor](xrspatial/corridor.py)| Identifies zones of low cumulative cost between two source locations | ✅️ | ✅ | ✅️ | ✅️ |
232
246
|[Direction](xrspatial/proximity.py)| Computes the direction from each cell to the nearest source feature | ✅️ | ✅ | ✅️ | ✅️ |
233
247
|[Proximity](xrspatial/proximity.py)| Computes the distance from each cell to the nearest source feature | ✅️ | ✅ | ✅️ | ✅️ |
234
248
|[Surface Distance](xrspatial/surface_distance.py)| Computes distance along the 3D terrain surface to the nearest source | ✅️ | ✅ | ✅️ | ✅️ |
@@ -257,11 +271,12 @@ In the GIS world, rasters are used for representing continuous phenomena (e.g. e
257
271
|[Terrain Generation](xrspatial/terrain.py)| Generates synthetic terrain from fBm or ridged fractal noise with optional domain warping, Worley blending, and hydraulic erosion | ✅️ | ✅️ | ✅️ | ✅️ |
258
272
|[TPI](xrspatial/terrain_metrics.py)| Computes Topographic Position Index (center minus mean of neighbors) | ✅️ | ✅️ | ✅️ | ✅️ |
|[Landforms](xrspatial/terrain_metrics.py)| Classifies terrain into 10 landform types using the Weiss (2001) TPI scheme | ✅️ | ✅️ | ✅️ | ✅️ |
260
275
|[Viewshed](xrspatial/viewshed.py)| Determines visible cells from a given observer point on terrain | ✅️ | ✅️ | ✅️ | ✅️ |
261
276
|[Min Observable Height](xrspatial/experimental/min_observable_height.py)| Finds the minimum observer height needed to see each cell *(experimental)*| ✅️ ||||
262
277
|[Perlin Noise](xrspatial/perlin.py)| Generates smooth continuous random noise for procedural textures | ✅️ | ✅️ | ✅️ | ✅️ |
263
278
|[Worley Noise](xrspatial/worley.py)| Generates cellular (Voronoi) noise returning distance to the nearest feature point | ✅️ | ✅️ | ✅️ | ✅️ |
264
-
|[Hydraulic Erosion](xrspatial/erosion.py)| Simulates particle-based water erosion to carve valleys and deposit sediment | ✅️ |🔄|🔄|🔄|
279
+
|[Hydraulic Erosion](xrspatial/erosion.py)| Simulates particle-based water erosion to carve valleys and deposit sediment | ✅️ |✅️|✅️|✅️|
265
280
|[Bump Mapping](xrspatial/bump.py)| Adds randomized bump features to simulate natural terrain variation | ✅️ | ✅️ | ✅️ | ✅️ |
266
281
267
282
-----------
@@ -272,13 +287,17 @@ In the GIS world, rasters are used for representing continuous phenomena (e.g. e
|[Flow Direction (D8)](xrspatial/flow_direction.py)| Computes D8 flow direction from each cell toward the steepest downhill neighbor | ✅️ | ✅️ | ✅️ | ✅️ |
274
289
|[Flow Direction (Dinf)](xrspatial/flow_direction_dinf.py)| Computes D-infinity flow direction as a continuous angle toward the steepest downslope facet | ✅️ | ✅️ | ✅️ | ✅️ |
275
-
|[Flow Accumulation (D8)](xrspatial/flow_accumulation.py)| Counts upstream cells draining through each cell in a D8 flow direction grid | ✅️ | ✅️ | ✅️ | 🔄 |
276
-
|[Watershed](xrspatial/watershed.py)| Labels each cell with the pour point it drains to via D8 flow direction | ✅️ | ✅️ | ✅️ | 🔄 |
277
-
|[Basins](xrspatial/watershed.py)| Delineates drainage basins by labeling each cell with its outlet ID | ✅️ | ✅️ | ✅️ | 🔄 |
278
-
|[Stream Order](xrspatial/stream_order.py)| Assigns Strahler or Shreve stream order to cells in a drainage network | ✅️ | ✅️ | ✅️ | 🔄 |
279
-
|[Stream Link](xrspatial/stream_link.py)| Assigns unique IDs to each stream segment between junctions | ✅️ | ✅️ | ✅️ | 🔄 |
280
-
|[Snap Pour Point](xrspatial/snap_pour_point.py)| Snaps pour points to the highest-accumulation cell within a search radius | ✅️ | ✅️ | 🔄 | 🔄 |
290
+
|[Flow Direction (MFD)](xrspatial/flow_direction_mfd.py)| Partitions flow to all downslope neighbors with an adaptive exponent (Qin et al. 2007) | ✅️ | ✅️ | ✅️ | ✅️ |
291
+
|[Flow Accumulation (D8)](xrspatial/flow_accumulation.py)| Counts upstream cells draining through each cell in a D8 flow direction grid | ✅️ | ✅️ | ✅️ | ✅️ |
292
+
|[Flow Accumulation (MFD)](xrspatial/flow_accumulation_mfd.py)| Accumulates upstream area through all MFD flow paths weighted by directional fractions | ✅️ | ✅️ | ✅️ | 🔄 |
293
+
|[Watershed](xrspatial/watershed.py)| Labels each cell with the pour point it drains to via D8 flow direction | ✅️ | ✅️ | ✅️ | ✅️ |
294
+
|[Basins](xrspatial/watershed.py)| Delineates drainage basins by labeling each cell with its outlet ID | ✅️ | ✅️ | ✅️ | ✅️ |
295
+
|[Stream Order](xrspatial/stream_order.py)| Assigns Strahler or Shreve stream order to cells in a drainage network | ✅️ | ✅️ | ✅️ | ✅️ |
296
+
|[Stream Link](xrspatial/stream_link.py)| Assigns unique IDs to each stream segment between junctions | ✅️ | ✅️ | ✅️ | ✅️ |
297
+
|[Snap Pour Point](xrspatial/snap_pour_point.py)| Snaps pour points to the highest-accumulation cell within a search radius | ✅️ | ✅️ | ✅️ | ✅️ |
281
298
|[Flow Path](xrspatial/flow_path.py)| Traces downstream flow paths from start points through a D8 direction grid | ✅️ | ✅️ | 🔄 | 🔄 |
299
+
|[HAND](xrspatial/hand.py)| Computes Height Above Nearest Drainage by tracing D8 flow to the nearest stream cell | ✅️ | ✅️ | 🔄 | 🔄 |
0 commit comments