Extends 'networkx' for working with spatial networks
Project description
net2
Overview
net2 is a Python package for working with spatial networks.
Data structures
net2 is intended to work with spatial network data represented using
networkx.DiGraph objects, following several conventions:
- An object of type
nx.Graphornx.DiGraph - The network is associated with:
'crs'(Noneorint)
- Node IDs are
int - Nodes are associated with:
'geometry'(shapely)
- Edges are associated with:
'geometry'(shapely)'length'(float, in $m$)'time'(float, in $sec$)
Installation
The package can be installed with:
pip install net2
Use
Once installed, the package can be loaded with:
import net2
Sample data
The package comes with a small spatial network for demonstration, accessible as follows:
G = net2.data['roads']
G
<networkx.classes.digraph.DiGraph at 0x7f2bfcedffe0>
Here is a plot of the network:
import matplotlib.pyplot as plt
import networkx as nx
fig, ax = plt.subplots()
nx.draw(G, with_labels=True, pos=net2.pos(G))
plt.axis('on')
ax.set_aspect('equal')
ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True);
Example
Calculating the shortest route between two custom points, using
net2.route2:
import shapely
pnt1 = shapely.Point(4100, 3100)
pnt2 = shapely.Point(1100, 3700)
x = net2.route2(G, pnt1, pnt2, 'length')
x
Plot of the resulting route and modified network:
fig, ax = plt.subplots()
nx.draw(x['network'], with_labels=True, pos=net2.pos(x['network']), edge_color='grey', width=0.1, ax=ax)
nx.draw_networkx_edges(G, pos=net2.pos(x['network']), edgelist=list(zip(x['route'], x['route'][1:])), edge_color='r', width=3)
plt.plot(pnt1.x, pnt1.y, 'ro')
plt.plot(pnt2.x, pnt2.y, 'ro')
ax.annotate('pnt1', [pnt1.x, pnt1.y], ha='left')
ax.annotate('pnt2', [pnt2.x, pnt2.y], ha='left')
plt.axis('on')
ax.set_aspect('equal')
ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True);
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file net2-0.0.8.tar.gz.
File metadata
- Download URL: net2-0.0.8.tar.gz
- Upload date:
- Size: 4.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ebcd8efb85e3681e62f6948d1b7d36eaf952bd1a125492248fc8dad720723e2
|
|
| MD5 |
b71106d7933c63c4bb5383f0ba8fbb7f
|
|
| BLAKE2b-256 |
02d026b807a4c23e1685b0de3892f68018c2c2724cbb3316ee5f0843d4e3e403
|
File details
Details for the file net2-0.0.8-py3-none-any.whl.
File metadata
- Download URL: net2-0.0.8-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2d3f42aaf664f28c1aa3573dd370d36b9bf52555d3d2f14fd8c50c27435ede5
|
|
| MD5 |
8469c393aea25251c373984e89e09ba6
|
|
| BLAKE2b-256 |
cd3ccfb462d71c305065b7037719bf613d8fffcf64132d039f888bbe567e627c
|