"""NYCHA Developments (NYC OpenData phvi-damg). 326 public-housing developments across NYC. Used as an asset class for the bulk-mode register; the parent rationale for surfacing this layer is that NYCHA was hit hard by Sandy and remains a published Tier-1 flood-resilience priority in the city's Hazard Mitigation Plan. """ from __future__ import annotations import geopandas as gpd from app.spatial import DATA, load_layer def load() -> gpd.GeoDataFrame: g = load_layer(DATA / "nycha.geojson") # NYCHA developments come back as polygons; the FSM expects point # geometry for spatial joins. Use centroid. g = g.copy() g["geometry"] = g.geometry.centroid # NYCHA Developments has only `developmen` (truncated label), tds_num, borough. g = g.rename(columns={"developmen": "name"}) g["address"] = g["name"] # the field doubles as both g["borough"] = g["borough"].str.title() # "BRONX" -> "Bronx" to match Riprap convention keep = [c for c in ["name", "address", "borough", "tds_num", "geometry"] if c in g.columns] return g[keep].copy()