Computational tools for urban analysis
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.
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:
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 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.
Splits the underlying Dijkstra shortest path algorithm into three separate versions for shortest / simplest / segment for performance improvements.
Python 3.12 support
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...
Adds a new metrics.visibility
module with visibility graph and isovist / viewshed functions.
Adds back improved closeness.
Adds a method nx_generate_vis_lines
for generating line string representations for nodes - this is intended for visualisation purposes. Bumps documents.
Version bump wrapping several minor changes related to tweaking graph cleaning settings and updating the io method for OS Open Roads loading (due to changes to the downloadable file structure).