Releases: benchmark-urbanism/cityseer-api
Handles osmnx insufficient response errors
Releases new automated cleaning workflow
Releases new automated cleaning workflow which deduplicates non motorised edges prior to automated cleaning steps.
Cleaning updates for tunnels, bridges, levels
Cleaning updates for tunnels, bridges, levels.
Github workflow file updates for releases
Updates to automatic cleaning defaults
This version updates the sequence of steps applied for automatic cleaning defaults.
Package management and linting has been switched to uv
and ruff
.
Automatically copies primal edges to dual nodes
It is often preferable to use the primal edges (lines) to visualise metrics on the dual graph (i.e. instead of using points).
This release implements a change where primal edges are automatically copied across to dual graph nodes when using the graphs.nx_to_dual()
method. Downstream conversion via io.network_structure_from_nx()
will likewise retain the primal edge geometry for visualisation of metrics written to dual node GeoDataframe
structures.
Homogenises column naming for gpd metrics columns
Homogenises column naming for gpd metrics columns.
This is a breaking change.
The overall API remains as before but the geopandas
column names to which the metrics are unpacked have been changed.
The reason for this change is:
- to reduce the verbosity of the column names
- to use a consistent naming convention across metrics
Column names can be retrieved from a geopandas
dataframe using the columns
attribute and the new names will be self explanatory and largely similar to before.
Adds network_structure_from_gpd
Adds io.network_structure_from_gpd
method.
This simplifies recreation of network structures from cityseer generated node and edges GeoDataFrames. This is useful for situations where the GeoDataFrames have been saved to disk and the network structure needs to be recreated.
Optimises Dijkstra tree algo
Splits the underlying Dijkstra shortest path algorithm into three separate versions for shortest / simplest / segment for performance improvements.
Python 3.12 support
Python 3.12 support
Changes "EPSG" parameters to "CRS"
This release generalises the usage of CRS codes so that string or integer format codes can work, as well as non-EPSG codes.
All parameters previously named to_epsg...
or from_epsg...
are accordingly now renamed to to_crs...
and from_crs...