Hydrology & Flood Risk¶
| Class | Key params | Returns | Data source | Description |
|---|---|---|---|---|
SurfaceWater |
year=2021 |
raster | derived from NdwiSentinel2 |
Surface water mask via histogram minimum-threshold split of NDWI. |
NdwiSentinel2 |
year=2021, min_threshold=None |
raster | GEE COPERNICUS/S2_HARMONIZED |
NDWI from Sentinel-2, optionally binarized to a water mask. |
HeightAboveNearestDrainage |
river_head=1000, thresh=1, nanval=None |
raster | GEE users/gena/GlobalHAND + MODIS water mask |
Flood-prone/drainage-proximity areas (HAND model). |
RiparianAreas |
river_head=1000, thresh=0 |
raster | HeightAboveNearestDrainage + GEE JRC/GSW1_4/GlobalSurfaceWater |
Riparian buffer zones around rivers/water bodies. |
AqueductFlood |
return_period_c='rp0100', return_period_r='rp00100', year=2050, climate='rcp4p5', subsidence='nosub', sea_level_rise_scenario=50, report_threshold=None |
raster | WRI Aqueduct flood inundation collection (GEE) | Combined coastal + riverine flood inundation depth, optionally binarized. |
API¶
city_metrix.layers.surface_water.SurfaceWater ¶
SurfaceWater(year=2021, **kwargs)
Bases: Layer
" return: a rioxarray-format DataArray 1 if surface water, nan otherwise Based on Minimum Threshold method in https://doi.org/10.1117/1.JRS.13.044507
city_metrix.layers.ndwi_sentinel2_gee.NdwiSentinel2 ¶
NdwiSentinel2(year=2021, min_threshold=None, **kwargs)
Bases: Layer
" NDWI = Sentinel-2 Normalized Difference Water Index return: a rioxarray-format DataArray Author of associated Jupyter notebook: EricMackres@wri.org Notebook: https://github.com/wri/cities-cities4forests-indicators/blob/dev-eric/scripts/extract-VegetationCover.ipynb Reference: McFeeters (1996) https://doi.org/10.1080/01431169608948714
city_metrix.layers.height_above_nearest_drainage.HeightAboveNearestDrainage ¶
HeightAboveNearestDrainage(river_head=1000, thresh=1, nanval=None, **kwargs)
Bases: Layer
MINOR_NAMING_ATTS
class-attribute
instance-attribute
¶
MINOR_NAMING_ATTS = ['thresh']
Attributes: river_head: number of river head threshold cells default is 1000, other options - 100, 5000 thresh: flow accumulation threshold, default is 1
get_data ¶
get_data(bbox: GeoExtent, spatial_resolution: int = DEFAULT_SPATIAL_RESOLUTION, resampling_method=None)
city_metrix.layers.riparian_areas.RiparianAreas ¶
RiparianAreas(river_head=1000, thresh=0, **kwargs)
Bases: Layer
MINOR_NAMING_ATTS
class-attribute
instance-attribute
¶
MINOR_NAMING_ATTS = ['river_head', 'thresh']
Attributes: spatial_resolution: raster resolution in meters (see https://github.com/stac-extensions/raster) default is 30, other options - 90 river_head: number of river head threshold cells default is 1000, other options - 100, 5000 thresh: flow accumuation threshold, default is 0
get_data ¶
get_data(bbox: GeoExtent, spatial_resolution: int = DEFAULT_SPATIAL_RESOLUTION, resampling_method=None)
city_metrix.layers.aqueduct_flood.AqueductFlood ¶
AqueductFlood(return_period_c='rp0100', return_period_r='rp00100', year=2050, climate='rcp4p5', subsidence='nosub', sea_level_rise_scenario=50, report_threshold=None, **kwargs)
Bases: Layer
MINOR_NAMING_ATTS
class-attribute
instance-attribute
¶
MINOR_NAMING_ATTS = ['return_period_c', 'return_period_r', 'climate', 'subsidence', 'sea_level_rise_scenario']
Attributes: spatial_resolution: raster resolution in meters (see https://github.com/stac-extensions/raster) return_period_c: default "rp0100" options ["rp0002", "rp0005", "rp0010", "rp0025", "rp0050", "rp0100", "rp0250", "rp0500", "rp1000"] note: return period 1.5 is only available for certain settings. return_period_r: default "rp00100" options ["rp00002", "rp00005", "rp00010", "rp00025", "rp00050", "rp00100", "rp00250", "rp00500", "rp01000"] note: return period 1.5 is only available for certain settings. year: default 2050 options [1980, 2030, 2050, 2080] note: If 1980, may need to remove some filters that are not available as properties in those images. climate: default "rcp4p5" options ["historical", "rcp4p5", "rcp8p5"] subsidence: default "nosub" options ["nosub", "wtsub"] sea_level_rise_scenario: default 50 options [5, 50]
get_data ¶
get_data(bbox: GeoExtent, spatial_resolution: int = DEFAULT_SPATIAL_RESOLUTION, resampling_method=None)