Cityseer

Latest version: v4.17.3

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 16

4.3.0

Updates to graph cleaning

Some general updates to the graph cleaning workflows.

- The `graph.nx_remove_dangling_nodes` method's despine parameter is now an integer type and is active by default. Set to `0` if no despining is to occur.
- The `graph.nx_iron_edges` method is now more aggressive.
- The `graphs.nx_consolidate_nodes` method has been simplified with a new `centroid_by_itx` parameter taking the place of previous methods. This is set to `True` by default.
- The `io.osm_graph_from_poly` has been simplified with parameters removed. If custom control is needed then the individual methods can be called manually against a graph derived with `simplify=False`. Non simplified graphs are now returned with simple geoms generated and any filler nodes removed.
- Adds the `util.measure_max_angle` method.
- Adds tests
- Minor tweaks to simplification default params

4.2.0

This release primarily reintroduces the option of weighting centralities by node weights.

This is to facilitate the new `nx_weight_by_dissolved_edges` method, which weights nodes to control for centrality calculations on messy networks. This works by buffering adjacent edges to look for overlaps with other nearby edges, and then weighting the node by a fraction of the total edge lengths in nearby proximity. This helps to control for OSM networks where busways, cycleways, highways, and pedestrian ways are often indicated in close proximity for the same transportation corridor, or where very detailed pedestrian routes are drawn for parks, etc. This method is intended to remove the need for aggressive network cleaning.

Note that this version also introduces some refactoring, where several functions have been moved from `graphs` into `io`.

4.1.0

Minor release with package bumps, minor fixes and tweaks, and fixes for jitter parameter.

4.0.2

Chains through primal node and edge id information to dual graphs and derivative node / edge GDFs.

This helps when merging primal edges into dual node data frames for visualisation purposes.

4.0.1

Catches if both None for pairing distances and betas.

4.0.0

Cityseer's underlying internals have been reimplemented in rust, therefore removing the reliance on `Numba`.

This offers several improvements:
- Better performance
- Unlike `Numba` there is no need for the underlying code to compile on first run
- Fewer issues related to `Numba` release cycles, which tended to lag official Python releases and sometimes introduced unexpected behaviour.
- `Numba` forced some difficult design patterns due to not being able to use `Numba` classes for parallelised code, and otherwise a reliance on numpy arrays which had to be passed around from function to function. The rust version offers more elegant approaches to handling and sharing data structures.

The higher level API is similar, though in has been simplified in several situations. Please see the API docs for more information.

Page 4 of 16

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.