floodresilience.flood_model.flooded_buildings
This script detects if buildings are flooded for a given scenario.
Functions
| Append the details of which buildings are flooded for a given flood_model_id to the database. | |
| 
 | Create a building DataFrame with attribute "is_flooded", | 
| 
 | Identify all buildings in building_polygons that intersect with areas in flooded_polygons. | 
| 
 | Retrieve building outlines for an area of interest from the database. | 
| 
 | Take a flood depth raster and apply depth thresholding on it so that only areas | 
Module Contents
- floodresilience.flood_model.flooded_buildings.store_flooded_buildings_in_database(engine: sqlalchemy.engine.Engine, buildings: pandas.DataFrame, flood_model_id: int) None
- Append the details of which buildings are flooded for a given flood_model_id to the database. - Parameters:
- engine (Engine) – The sqlalchemy database connection engine 
- buildings (pd.DataFrame) – DataFrame containing a mapping of building_ids to their flood status for the current model run 
- flood_model_id (int) – The id of the current flood model run, to associate with the building flood data. 
 
 
- floodresilience.flood_model.flooded_buildings.find_flooded_buildings(engine: sqlalchemy.engine.Engine, area_of_interest: geopandas.GeoDataFrame, flood_model_output_path: pathlib.Path, flood_depth_threshold: float) pandas.DataFrame
- Create a building DataFrame with attribute “is_flooded”, depending on if the area for each building is flooded to a depth greater than or equal to flood_depth_threshold. the index, building_outline_id, matches building_outline_id from nz_building_outline table. - Parameters:
- engine (Engine) – The sqlalchemy database connection engine 
- area_of_interest (gpd.GeoDataFrame) – A GeoDataFrame with a polygon specifying the area to get buildings for. 
- flood_model_output_path (pathlib.Path) – Path to the flood model output file to be read. 
- flood_depth_threshold (float) – The minimum depth required to designate a pixel in the raster as flooded. 
 
- Returns:
- A pd.DataFrame specifying if each building is flooded or not. 
- Return type:
- pd.DataFrame 
 
- floodresilience.flood_model.flooded_buildings.categorise_buildings_as_flooded(building_polygons: geopandas.GeoDataFrame, flood_polygons: geopandas.GeoDataFrame) geopandas.GeoDataFrame
- Identify all buildings in building_polygons that intersect with areas in flooded_polygons. - Parameters:
- building_polygons (gpd.GeoDataFrame) – A GeoDataFrame with each polygon representing a building outline 
- flood_polygons (gpd.GeoDataFrame) – A GeoDataFrame with each polygon representing a flooded area 
 
- Returns:
- A copy of building_polygons with an additional boolean attribute “is_flooded” 
- Return type:
- gpd.GeoDataFrame 
 
- floodresilience.flood_model.flooded_buildings.retrieve_building_outlines(engine: sqlalchemy.engine.Engine, area_of_interest: geopandas.GeoDataFrame) geopandas.GeoDataFrame
- Retrieve building outlines for an area of interest from the database. - Parameters:
- engine (Engine) – The sqlalchemy database connection engine 
- area_of_interest (gpd.GeoDataFrame) – A GeoDataFrame polygon specifying the area of interest to retrieve buildings in. 
 
- Returns:
- A GeoDataFrame containing all of the building outlines in the area 
- Return type:
- gpd.GeoDataFrame 
 
- floodresilience.flood_model.flooded_buildings.polygonize_flooded_area(flood_raster: xarray.DataArray, flood_depth_threshold: float) geopandas.GeoDataFrame
- Take a flood depth raster and apply depth thresholding on it so that only areas flooded deeper than or equal to flood_depth_threshold are represented. Return the data in a collection of polygons. - Parameters:
- flood_raster (xarray.DataArray) – Raster with each pixel representing flood depth at the point 
- flood_depth_threshold (float) – The minimum depth specified to consider a pixel in the raster flooded 
 
- Returns:
- A GeoDataFrame containing polygons of the flooded areas 
- Return type:
- gpd.GeoDataFrame