urbanflow¶
- class urbanflow.RasterGrid(coordinate_reference_system='EPSG:32633', cell_size=1)¶
Bases:
objectRasterGrid class. Stores the following information: 1. grid: an np.ndarray[np.uint8] with unsigned integer values. 2. transform an Affine transform object to transform points onto the grid 3. legend: a python dict describing the different grid values and their meaning.
- Parameters:
coordinate_reference_system (str)
cell_size (float)
- cell_size¶
Square cell width/height in CRS units
- Type:
float
- Interface¶
- __init__¶
- Type:
constructor
- .save(filepath)¶
- Type:
saving the grid, as small as possible
- .laod(filepath)¶
- Type:
load the grid, as quickly as possible
- classmethod from_geojson_dataframes(buildings, streets, canals, *, courtyards=None, auto_courtyards=True, coordinate_reference_system='EPSG:32633', cell_size=1, legend={'building': 2, 'canal': 3, 'courtyard': 4, 'ocean': 0, 'street': 1})¶
Rasterize buildings, streets, and canals of Venice into a RasterGrid.
- Parameters:
buildings (GeoDataFrames) – All must share the same CRS.
streets (GeoDataFrames) – All must share the same CRS.
canals (GeoDataFrames) – All must share the same CRS.
cell_size (float) – Square cell width/height in CRS units.
legend (Dict[str, int]) – A python dict that contains what cell values contian what. The dict must define: “ocean” : (default 0) “street” : (default 1) “building” : default 2) “canal” : (default 3)
courtyards (GeoDataFrame)
auto_courtyards (bool)
coordinate_reference_system (str)
- Return type:
RasterGrid object with grid, transform, and legend.
- classmethod load(filepath)¶
Create a RasterGrid object from a .npz compressed file.
- save(filepath)¶
Save a RasterGrid to a .npz file.
- Parameters:
filepath (str)
- to_image(scale=1, palette=None)¶
Convert a uint8 grid of states into a PIL Image.
- Parameters:
grid (ndarray[int] shape (rows, cols)) – Cell codes: 0=ocean, 1=street, 2=building (extend as you wish).
scale (int, default 1) – How many output pixels per cell (must be ≥1). 2 doubles width/height.
palette ({state: (R, G, B)}, optional) – Custom colors. Unspecified states default to white.
- Return type:
PIL.Image.Image (mode “RGB”)
Notes
Uses pure NumPy → very fast, even for multi-million-cell grids.
Nearest-neighbour up-scaling keeps the crisp blocky CA look.
- class urbanflow.RasterGridWithPOIs(POI_gdf, coordinate_reference_system='EPSG:32633', cell_size=1)¶
Bases:
RasterGridRaster grid with Points of Interest (POIs).
Extends
urbanflow.RasterGridby attaching ageopandas.GeoDataFrameof POIs to the raster grid, aligning them to grid cells, and enabling pathfinding between POIs. Includes methods for saving/loading, path computation, and visualization.- Parameters:
POI_gdf (GeoDataFrame)
- POI_gdf¶
GeoDataFrame of points of interest, with columns for grid coordinates (
row,col) and optionally adjusted coordinates (row_adj,col_adj).- Type:
geopandas.GeoDataFrame
- tcod_cost_grid¶
Grid suitable for tcod pathfinding, with impassable cells set to 0.
- Type:
ndarray of int
- POI_gdf: GeoDataFrame = None¶
- compute_path_between_POIs(start_poi_uid, end_poi_uid, *, do_tcod_pathing=False, uid_column=None, do_logging=False)¶
Compute the shortest path between two POIs on the raster grid.
- Parameters:
start_poi_uid (str) – UID of the source POI (index in POI_gdf).
end_poi_uid (str) – UID of the target POI.
do_tcod_pathing (bool, optional) – If True, use tcod pathfinding instead of the C++ planner. Defaults to False.
uid_column (str, optional) – Column name to set as index if POI_gdf is not indexed by UID.
do_logging (bool, optional) – If True, print diagnostic information. Defaults to False.
- Returns:
path_r (ndarray of int) – Row indices of the computed path.
path_c (ndarray of int) – Column indices of the computed path.
- Return type:
Tuple[ndarray, ndarray]
Notes
If
row_adj/col_adjexist, adjusted coordinates are used.If no path is found, empty arrays are returned.
- classmethod from_RasterGrid_and_POIs(raster_grid, POI_gdf, *, do_adjusted=True, force_realignment=False)¶
Construct a RasterGridWithPOIs from an existing RasterGrid and POIs.
- Parameters:
raster_grid (RasterGrid) – The base raster grid object.
POI_gdf (geopandas.GeoDataFrame) – GeoDataFrame containing POIs.
do_adjusted (bool, optional) – Whether to compute adjusted POI coordinates (snapped to nearest street cell). Defaults to True.
force_realignment (bool, optional) – If True, realign POIs to the grid even if row/col columns exist. Defaults to False.
- Returns:
A new instance with POIs aligned to the raster grid.
- Return type:
- classmethod from_geojson_dataframes(buildings, streets, canals, *, courtyards=None, auto_courtyards=True, coordinate_reference_system='EPSG:32633', cell_size=1, legend={'building': 2, 'canal': 3, 'courtyard': 4, 'ocean': 0, 'street': 1})¶
Rasterize buildings, streets, and canals of Venice into a RasterGrid.
- Parameters:
buildings (GeoDataFrames) – All must share the same CRS.
streets (GeoDataFrames) – All must share the same CRS.
canals (GeoDataFrames) – All must share the same CRS.
cell_size (float) – Square cell width/height in CRS units.
legend (Dict[str, int]) – A python dict that contains what cell values contian what. The dict must define: “ocean” : (default 0) “street” : (default 1) “building” : default 2) “canal” : (default 3)
courtyards (GeoDataFrame)
auto_courtyards (bool)
coordinate_reference_system (str)
- Return type:
RasterGrid object with grid, transform, and legend.
- classmethod from_geojson_dataframes_and_POIs(buildings, streets, canals, POI_gdf, *, courtyards=None, auto_courtyards=True, coordinate_reference_system='EPSG:32633', cell_size=1, legend={'building': 2, 'canal': 3, 'courtyard': 4, 'ocean': 0, 'street': 1}, do_adjusted=True, force_realignment=False)¶
Construct a RasterGridWithPOIs directly from GeoDataFrames of features and a POI GeoDataFrame.
- Parameters:
buildings (geopandas.GeoDataFrame) – Feature layers used to generate the base raster grid.
streets (geopandas.GeoDataFrame) – Feature layers used to generate the base raster grid.
canals (geopandas.GeoDataFrame) – Feature layers used to generate the base raster grid.
courtyards (geopandas.GeoDataFrame) – Feature layers used to generate the base raster grid.
POI_gdf (geopandas.GeoDataFrame) – GeoDataFrame of POIs.
auto_courtyards (bool, optional) – Whether to automatically generate courtyard cells. Defaults to True.
coordinate_reference_system (str, optional) – Target CRS. Defaults to EPSG:32633.
cell_size (int, optional) – Grid resolution in coordinate units. Defaults to 1.
legend (dict, optional) – Mapping of feature types to integer codes. Defaults to {ocean:0, street:1, building:2, canal:3, courtyard:4}.
do_adjusted (bool, optional) – Compute adjusted POI coordinates. Defaults to True.
force_realignment (bool, optional) – If True, force POI realignment. Defaults to False.
- Returns:
A raster grid with POIs aligned to grid cells.
- Return type:
- classmethod load(filepath)¶
Load a RasterGridWithPOIs from a saved directory.
- Parameters:
filepath (str) – Directory containing saved raster grid and POI files.
- Returns:
Loaded raster grid with POIs.
- Return type:
- save(filepath)¶
Save a RasterGridWithPOIs to a directory.
- Parameters:
filepath (str) – Path to the directory where the object will be saved. Creates the directory if it does not exist.
Notes
POIs are stored as a Parquet file.
Grid, transform, legend, and metadata are stored in a compressed NPZ.
- tcod_cost_grid: ndarray = None¶
- to_image(scale=1, palette=None)¶
Convert a uint8 grid of states into a PIL Image.
- Parameters:
grid (ndarray[int] shape (rows, cols)) – Cell codes: 0=ocean, 1=street, 2=building (extend as you wish).
scale (int, default 1) – How many output pixels per cell (must be ≥1). 2 doubles width/height.
palette ({state: (R, G, B)}, optional) – Custom colors. Unspecified states default to white.
- Return type:
PIL.Image.Image (mode “RGB”)
Notes
Uses pure NumPy → very fast, even for multi-million-cell grids.
Nearest-neighbour up-scaling keeps the crisp blocky CA look.
- to_image_with_POIs(scale=1, palette=None, function_col='PP_Function_TOP', color_map=None, default_color=(0, 0, 0), poi_radius=None)¶
Render the raster grid with POIs drawn as colored dots.
- Parameters:
scale (int, optional) – Scale factor for rendering. Each cell becomes a square of size
scale. Defaults to 1.palette (dict of int -> (r,g,b), optional) – Mapping from raster values to RGB colors.
function_col (str, optional) – Column in POI_gdf used for categorical coloring. Defaults to
"PP_Function_TOP".color_map (dict of str -> (r,g,b), optional) – Mapping from categories to RGB colors. If None, a default matplotlib
tab20palette is used.default_color (tuple of int, optional) – Fallback color (RGB). Defaults to black.
poi_radius (int, optional) – Radius of POI dots in pixels. Defaults to
max(1, scale//2).
- Returns:
Image of the raster grid with POIs overlayed.
- Return type:
PIL.Image.Image
- to_image_with_path(path_r, path_c, *, scale=5, palette=None, poi_start=None, poi_end=None, poi_colour=(0, 0, 0), path_colour=(255, 215, 0), path_width=None)¶
Render the raster grid with an overlayed path and optional POI markers.
- Parameters:
path_r (ndarray of int) – Row and column indices of the path.
path_c (ndarray of int) – Row and column indices of the path.
scale (int, optional) – Scale factor for rendering. Defaults to 5.
palette (dict of int -> (r,g,b), optional) – Mapping from raster values to RGB colors.
poi_start (tuple of (row, col), optional) – Coordinates of start and end POIs to highlight.
poi_end (tuple of (row, col), optional) – Coordinates of start and end POIs to highlight.
poi_colour (tuple of int, optional) – Color of start/end POI dots. Defaults to black.
path_colour (tuple of int, optional) – Color of the path polyline. Defaults to gold.
path_width (int, optional) – Width of the path polyline in pixels. Defaults to
max(1, scale//2).
- Returns:
Image of the raster grid with path overlayed.
- Return type:
PIL.Image.Image
Modules
|
RasterGrid class. |
|
Raster grid with Points of Interest (POIs). |
Centralized logging configuration for the urbanflow package. |
|