snkit

a spatial networks toolkit

snkit on github License Build PyPI version Conda Forge version Poster DOI

/ˈsnɪkɪt/ – sounds like [snicket] (noun, Northern English) A narrow passage between houses; an alleyway. Alternatively, a python package to help clean spatial networks data.

Say you have some edges and nodes (lines and points, connections and vertices). None of them are quite connected, and there’s no explicit data to define which node is at the end of which edge, or which edges are connected.

For example:

Unconnected network

snkit has methods to:

  • add endpoints to each edge

  • connect nodes to nearest edges

  • split edges at connecting points

  • create node and edge ids, and add from_id and to_id to each edge

Spatial network

The output of a snkit data cleaning process might look something like this:

Connected network

Nodes

geometry

id

other attributes…

POINT (0.03 0.04)

node_0

POINT (0.03 0.03)

node_1

POINT (0.02 0.03)

node_2

Edges

geometry

id

from_id

to_id

other attributes…

LINESTRING (0.04 -0.04...

edge_0

node_10

node_22

LINESTRING (0.01 -0.03...

edge_1

node_22

node_21

LINESTRING (0.02 -0.02...

edge_2

node_21

node_25

Testimonials 💯 👍 😊

With five lines of snkit I replaced four or five hundred lines of custom code!

A. Contented Customer (@czor847)

Acknowledgements

MIT License

Copyright (c) 2018 Tom Russell and snkit contributors

Initial snkit development was at the Environmental Change Institute, University of Oxford within the EPSRC sponsored MISTRAL programme, as part of the Infrastructure Transition Research Consortium.

Contents

Indices and tables