Network wrapper to simplify network analysis using geospatial data
Project description
GOSTnets: Build, process, and analyze networks
GOSTNets is a Python library from the World Bank's GOST team that streamlines geospatial network analysis, especially with OpenStreetMap data. It provides a convenience layer on top of networkx and integrates with geopandas, osmnx, and rtree to build, clean, and analyze spatial graphs, and to convert networkx graphs to GeoDataFrames for mapping and analysis. Typical uses include travel-time and accessibility studies (e.g., health facility access), urban and transport network analysis, and infrastructure planning workflows
Installation
From PyPI
The first line includes conda install of several libraries; this is to support Windows users for whom gdal and geopandas do not install cleanly through pip.
conda create --name gostnets geopandas osmnx -c conda-forge
conda activate gostnets
pip install GOSTnets
Additionally, there are two extensions you may want to include.
pip install GOSTnets[tutorials]
pip install GOSTnets[dev]
From Source
-
Clone or download this repository to your local machine. Then, navigate to the root directory of the repository:
git clone https://github.com/worldbank/GOSTnets.git cd GOSTnets
-
Create a virtual environment (optional but recommended):
python3 -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the package in editable mode with dependencies:
pip install -e .
The
-eflag stands for "editable," meaning changes to the source code will immediately affect the installed package.
Usage
Every function contains a docstring which can be brought up in use to check the inputs for various functions. For example:
import GOSTnets as gn
gn.edge_gdf_from_graph?
returns:
Signature: gn.edge_gdf_from_graph(G, crs={'init': 'epsg:4326'}, attr_list=None, geometry_tag='geometry', xCol='x', yCol='y')
#### Function for generating a GeoDataFrame from a networkx Graph object ###
REQUIRED: a graph object G
OPTIONAL: crs - projection of format {'init' :'epsg:4326'}. Defaults to
WGS84. Note: here we are defining the crs of the input geometry -
we do NOT reproject to this crs. To reproject, consider using
geopandas' to_crs method on the returned gdf.
attr_list: list of the keys which you want to be moved over to
the GeoDataFrame.
geometry_tag - the key in the data dictionary for each edge which
contains the geometry info.
xCol - if no geometry is present in the edge data dictionary, the
function will try to construct a straight line between the start
and end nodes, if geometry information is present in their data
dictionaries. Pass the Longitude info as 'xCol'.
yCol - likewise, determining the Latitude tag for the node's data
dictionary allows us to make a straight line geometry where an
actual geometry is missing.
RETURNS: a GeoDataFrame object of the edges in the graph
#-------------------------------------------------------------------------#
License
This licensed under the MIT License. This project is licensed under the MIT License - see the LICENSE file for details.
Project details
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 gostnets-1.2.1.tar.gz.
File metadata
- Download URL: gostnets-1.2.1.tar.gz
- Upload date:
- Size: 57.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7d6c77e4a3e87b55ad93d75041d19ca6606d6832ca32b5c9e0e007d0ce9315d
|
|
| MD5 |
2c06ae4c8af69b49e913de39b07d8dba
|
|
| BLAKE2b-256 |
83a714ef56e536a42a1038d8c7a9c8ff4ab2016e9a90f63c3acbb0c1eed381fb
|
Provenance
The following attestation bundles were made for gostnets-1.2.1.tar.gz:
Publisher:
release.yml on worldbank/GOSTnets
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gostnets-1.2.1.tar.gz -
Subject digest:
f7d6c77e4a3e87b55ad93d75041d19ca6606d6832ca32b5c9e0e007d0ce9315d - Sigstore transparency entry: 1019508837
- Sigstore integration time:
-
Permalink:
worldbank/GOSTnets@b9019f97cdab430fa7a214618c94d04e16e0c557 -
Branch / Tag:
refs/tags/v1.2.1 - Owner: https://github.com/worldbank
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b9019f97cdab430fa7a214618c94d04e16e0c557 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gostnets-1.2.1-py3-none-any.whl.
File metadata
- Download URL: gostnets-1.2.1-py3-none-any.whl
- Upload date:
- Size: 68.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba78460eef76bc7587e8663f081b3aa99311145adf2a17734e7131b2b74957e7
|
|
| MD5 |
73bf1123531c9305427bd413095b4dad
|
|
| BLAKE2b-256 |
a763305c40b18a598155a765eff14d4abdd2d8cb58319dae3ae3a2bf2562c88c
|
Provenance
The following attestation bundles were made for gostnets-1.2.1-py3-none-any.whl:
Publisher:
release.yml on worldbank/GOSTnets
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gostnets-1.2.1-py3-none-any.whl -
Subject digest:
ba78460eef76bc7587e8663f081b3aa99311145adf2a17734e7131b2b74957e7 - Sigstore transparency entry: 1019508843
- Sigstore integration time:
-
Permalink:
worldbank/GOSTnets@b9019f97cdab430fa7a214618c94d04e16e0c557 -
Branch / Tag:
refs/tags/v1.2.1 - Owner: https://github.com/worldbank
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b9019f97cdab430fa7a214618c94d04e16e0c557 -
Trigger Event:
release
-
Statement type: