Skip to content

nsi_buildings

nsi_buildings

Classes

NsiBuildings

NsiBuildings(gdf: GeoDataFrame, overrides: Optional[Dict[str, str]] = None)

Bases: Buildings

NSI (National Structure Inventory) specific subclass with field name overrides.

This class defines NSI-specific field aliases that map their column names to the standard Buildings fields, leveraging the existing alias system. Includes preprocessing for occupancy and foundation types.

Initialize NsiBuildings with NSI-specific field aliases.

Parameters:

Name Type Description Default
gdf GeoDataFrame

GeoDataFrame containing NSI building data

required
overrides Optional[Dict[str, str]]

Optional user overrides that take precedence over NSI defaults

None
Source code in src/inland_consequences/nsi_buildings.py
def __init__(self, gdf: gpd.GeoDataFrame, overrides: Optional[Dict[str, str]] = None):
    """
    Initialize NsiBuildings with NSI-specific field aliases.

    Args:
        gdf: GeoDataFrame containing NSI building data
        overrides: Optional user overrides that take precedence over NSI defaults
    """

    # Define NSI-specific field name mappings (keys = target fields, values = NSI fields)
    nsi_overrides = {
        "id": "target_fid",
        "occupancy_type": "occtype",
        "first_floor_height": "found_ht",
        "foundation_type": "foundation_type",  # mapped after preprocessing
        "number_stories": "num_story",
        "area": "sqft",
        "building_cost": "val_struct",
        "content_cost": "val_cont",
        "general_building_type": "bldgtype",
    }

    # Merge with user overrides (user overrides take precedence)
    if overrides is None:
        final_overrides = nsi_overrides
    else:
        final_overrides = {**nsi_overrides, **overrides}

    # Preprocess the GeoDataFrame (occupancy and foundation types)
    gdf = self._preprocess_gdf(gdf)

    # Ensure required fields are present
    self._ensure_required_fields(gdf, final_overrides)

    # Ensure required fields have no missing values
    self._ensure_required_fields_complete(gdf, final_overrides)

    # Delegate to base Buildings class with NSI overrides
    super().__init__(gdf, final_overrides)
Functions