crossify is a Python library and command line application for drawing
street crossing lines from street centerline and sidewalk centerline data.
crossify has two usage modes:
- It can automatically fetch sidewalk data from OpenStreetMap
- It can read sidewalk data from a GIS file (e.g. GeoJSON or shapefile)
In both modes, it fetches street data from OpenStreetMap and uses the sidewalk and street data to construct likely crossing locations.
Pedestrian transportation network data are often missing. crossify works in
concert with sidewalkify to help populate a minimal pedestrian network from
labeled street data, by drawing (first order approximations of) street
crossings given street and sidewalk data. crossify does not require the use
of sidewalkify.
pip install crossify
crossify requires the click and geopandas libraries.
geopandas requires GDAL to read and write files, so you also need to install
GDAL tools for your system.
Python 2: though this package is currently marked as Python 3-only, it should work on Python 2 as well. However, we do not currently support issues related to Python 2.
Once installed, crossify is available both as a command line application
and a Python library.
To fetch sidewalk data from OpenStreetMap, use the osm_bbox command:
crossify osm_bbox -- <west> <south> <east> <north> <output file>
The values of west, south, east, and north define a rectangular bounding box for your query, and should be in terms of latitude (south, north) and longitude (west, east). The use of a double dash is necessary for the use of negative coordinates not getting parsed as command line options (see the example below).
Example:
crossify osm_bbox -- -122.31846 47.65458 -122.31004 47.65783
test/output/crossings.geojson
If you want to provide your own sidewalks layer, use the from_file command:
crossify from_file <sidewalks file> <output file>
Example:
crossify from_file test/input/sidewalks_udistrict.geojson
test/output/crossings.geojson
crossify can also be used as a Python library so that you can build your
own scripts or write libraries on top of crossify. We recommend that you
read the Architecture section before using the crossify library API.
Dual-licensed MIT and Apache 2.0. You can treat this project as being licensed under one or the other, depending on your preference.