Python package for creating zoning systems
The goal of zonebuilder is to break up large geographic regions such as cities into manageable zones. Zoning systems are important in many fields, including demographics, economy, health, and transport. The zones have standard configuration, which enabled comparability across cities. See its website at zonebuilders.github.io. Also checkout https://zonebuilders.github.io/zonebuilder-rust/ for visualization. This package provides the python bindings for zonebuilder-rust.
pip install zonebuilder
Python 3.6 and above.
The core function of this library is
import zonebuilder zones = zonebuilder.clockboard(center, kwargs) #eg. zonebuilder.clockboard([0,0]) ## OPTIONS: ## center, REQUIRED: a list with an x and y coordinate specifying the center of the region of interest ## kwargs, OPTIONAL keyword arguments ## distances = <distances>... ## The distances between concentric rings. `zonebuilder.triangular_sequence` is useful to ## generate these distances [default: 1.0,3.0,6.0,10.0,15.0] given by triangular_sequence(5) ## num-segments = <num-segments> ## The number of radial segments. Defaults to 12, like the hours on a clock [default: 12] ## num-vertices-arc = <num-vertices-arc> ## The number of vertices per arc. Higher values approximate a circle more accurately [default: 10] ## precision = <precision> ## The number of decimal places in the resulting output GeoJSON files. Set to 6 by default. ## Larger numbers mean more precision, but larger file sizes [default: 6] ## projected = <projected> ## Boolean, is the data projected? [default: False]
which will return a stringified geojson object. You can load it into other python geo libraries as follows:
#geojson import geojson featurecollection = geojson.loads(zones) #geopandas import geopandas geodataframe = geopandas.GeoDataFrame.from_features(featurecollection["features"])
clockboard([0,0]) will yield the 49 zones shown in the following figure centered on [0,0]:
Steps to test the python bindings for
- Create a local virtual environment for python and activate it.
python -m venv env source env/bin/activate
- Install necessary libraries into the environment
pip install -r dev-requirements.txt
- Develop the rust code into a python package and install it into the local environment
alternately you can also
pip install .
- Test it (somehow directly typing
pytestthrows error), use below
python -m pytest
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for zonebuilder-1.0.1-cp38-cp38-macosx_10_7_x86_64.whl