# cityImage module ownership map This file records the current post-refactor ownership boundary. Status meanings: - `keep`: cityImage owns the semantics. - `keep thin`: cityImage owns the boundary/output semantics but delegates algorithms, acquisition, or file IO. - `keep small`: small helper module retained because multiple owned modules need it. | Module | Owner | Status | Optional deps | Delegates to | Keep reason | |---|---|---|---|---|---| | `cityImage/__init__.py` | public API | keep | none | lazy import map | Top-level import contract and curated public surface. | | `cityImage/adapters.py` | schema/adapters | keep | none | pandas/geopandas conventions | Normalises user data into cityImage column/schema expectations. | | `cityImage/schema.py` | schema/adapters | keep | none | pandas/geopandas conventions | Defines and validates the internal nodes/edges/buildings schema. | | `cityImage/io.py` | file IO bridge API | keep thin | none | GeoPandas | Preserves file-based notebook/user pipelines while delegating file reading. | | `cityImage/osm.py` | OSM bridge API | keep thin | osmnx | OSMnx | Preserves OSM notebook/user pipelines while delegating acquisition. | | `cityImage/network.py` | network construction | keep thin | none | GeoPandas/Shapely | Converts line data into cityImage nodes/edges schema. | | `cityImage/pedestrian.py` | pedestrian network acquisition | keep thin | osmnx | OSMnx | Pedestrian-specific OSM/network workflow boundary and filtering semantics. | | `cityImage/network_topology.py` | network topology | keep | none | shapely/geopandas/networkx | Custom geometry/topology repair operations not safely delegated wholesale. | | `cityImage/angles.py` | graph semantics | keep | none | math/shapely only | Preserves custom endpoint-oriented street-segment angle semantics. | | `cityImage/graph.py` | graph core | keep | none | NetworkX | Prepared GDF to graph and dual graph semantics. | | `cityImage/centrality.py` | centrality outputs | keep thin | igraph | igraph | Preserves centrality output semantics used by scoring; delegates algorithms. | | `cityImage/regions.py` | regions/districts | keep | python-louvain/community | NetworkX/community-louvain/Shapely | Keeps district/gateway semantics and mapping between primal/dual outputs. | | `cityImage/barriers.py` | barriers | keep | none | Shapely/GeoPandas | Keeps custom barrier extraction/crossing semantics. | | `cityImage/landmarks.py` | landmarks | keep | none | Shapely/GeoPandas | Hard Lynchian landmark scoring and local landmark semantics. | | `cityImage/scoring.py` | imageability scoring | keep | none | NumPy/Pandas | Combines Lynchian/imageability indicators into score outputs. | | `cityImage/height.py` | building height | keep thin | rasterio/rasterstats | rasterstats/rasterio | Thin raster/zonal-stat boundary plus cityImage building-height schema. | | `cityImage/visibility2d.py` | 2D visibility | keep | none | Shapely/GeoPandas | Preserves 2D visibility semantics. | | `cityImage/visibility3d.py` | 3D visibility | keep | pyvista/dask/psutil/tqdm | PyVista/Dask | Owns 3D sight-line workflow and output schema; delegates mesh/ray operations. | | `cityImage/geometry.py` | geometry helpers | keep small | none | Shapely/GeoPandas | Small custom helpers used by topology/visibility/regions. | | `cityImage/data_utils.py` | data helpers | keep small | none | Pandas/NumPy | Small scaling/conversion helpers used internally. | | `cityImage/landuse/` | land-use package | keep | none | GeoPandas/Pandas | Derivation, classification, sparse representation, and assignment of land-use semantics. | | `cityImage/plotting/` | plotting package | keep thin | matplotlib/mapclassify | Matplotlib/mapclassify | Optional static plotting entry points isolated from core import. |