Skip to main content

Small python module for building isochrones

Project description

https://api.travis-ci.org/headshaker/pychrone.svg?branch=master https://img.shields.io/pypi/v/pychrone.svg https://img.shields.io/pypi/pyversions/pychrone.svg

Python 3 module for generatings isochrones from point

History

0.0.2 - Added several types of isochrone generation: walking, driving or biking.

0.0.1 - Initial version, only walking isochrones supported.

How to install

You can install pychrone using pip:

pip install -U pychrone

or via sources:

python setup.py install

If you have serveral python versions installed you will probably use pip3 and python3 commands accordingly.

Features

This module generates isochrone from the set point with defined latitude and longtitude with defined time.

All details of walking routes and coordinates are from OpenStreetMap, so you will need an internet connection for this module to work.

Also module will try to optimize isochrone shape with α-shape algorithm to make it more natural and clean.

Main function of module takes the following arguments:

Create_isochrone( longtitude, latitude, speed=4.5, output=”geojson”, route=”walk” )

  • longitude - longitude of point to create isochrone from;

  • latitude - latitude of point to create isochrone from;

  • speed - pedestrian speed in km/h, default is 4.5;

  • output - output format, default is “geojson”, wich generates valid GeoJSON polygon. Other option is “shape”, that generates Shapely object;

  • route - type of routing for isochrone generation. Default is “walk”, that means that isochrone will be generated for pedestrians. Other possible options are “drive” (for cars) and “bike” (for bikes).

Usage:

In this small example pychrone will return 5-minute walking isochrone from point with coordinates (37.847591, 55.920284) in GeoJSON format assuming pedestrian speed as 4.5 km/h:

IN:

from pychrone import Create_isochrone

Create_isochrone(37.847591, 55.920284, 5)

OUT:

{"coordinates": [[[37.8460729, 55.9174363], [37.8464059, 55.9175894], [37.847672, 55.9178994], [37.8485452, 55.9179112], [37.8489915, 55.9179172], [37.8490785, 55.9179534], [37.8502528, 55.918252], [37.8508537, 55.9190215], [37.8521326, 55.9193121], [37.8523401, 55.9195966], [37.8523826, 55.9196535], [37.8526471, 55.920433], [37.8527015, 55.9206193], [37.852584, 55.9210867], [37.8512857, 55.9218685], [37.8500913, 55.9216824], [37.8481064, 55.9218883], [37.8480311, 55.9218827], [37.8464856, 55.9216235], [37.8458339, 55.9220129], [37.8452347, 55.9223078], [37.8451153, 55.9223076], [37.843753, 55.9214498], [37.8434385, 55.9211565], [37.8432352, 55.9210091], [37.843344, 55.9201537], [37.8436392, 55.9200188], [37.8442215, 55.9195563], [37.8445491, 55.9189478], [37.8453806, 55.9179848], [37.8458505, 55.9173872], [37.8460729, 55.9174363]]], "type": "Polygon"}

And here we will build a 5-minute biking isochrone from the same point in GeoJSON format assuming bike speed as 15 km/h:

IN:

from pychrone import Create_isochrone

Create_isochrone(37.847591, 55.920284, 5, speed=15, route='bike')

OUT:

{"coordinates": [[[37.8567192, 55.9159054], [37.8566902, 55.917482], [37.8574327, 55.9183582], [37.8596827, 55.9179265], [37.8606264, 55.9174921], [37.8607145, 55.9174898], [37.8616878, 55.9182527], [37.8623098, 55.9184031], [37.8623315, 55.9186923], [37.8623347, 55.9187348], [37.8617334, 55.9187584], [37.8601876, 55.9216012], [37.8601928, 55.9216375], [37.8625041, 55.9234816], [37.8606823, 55.9239551], [37.8602133, 55.9240344], [37.859944, 55.9240621], [37.8596538, 55.9240835], [37.858323, 55.9265212], [37.858095, 55.9258876], [37.8579296, 55.9254856], [37.8577715, 55.9252287], [37.857535, 55.9249517], [37.8571648, 55.9246052], [37.8570523, 55.9244923], [37.8567998, 55.9242646], [37.8564721, 55.9239992], [37.8551838, 55.9236002], [37.8550675, 55.9236167], [37.854535, 55.9236923], [37.8539227, 55.9237794], [37.8537368, 55.9238044], [37.8517414, 55.9236685], [37.8506852, 55.9233489], [37.8503534, 55.9223657], [37.8481771, 55.9215311], [37.8461656, 55.9213583], [37.8453504, 55.9211411], [37.8434385, 55.9211565], [37.8424404, 55.922531], [37.8414824, 55.9219328], [37.839682, 55.9204985], [37.8381736, 55.919545], [37.8379558, 55.9195288], [37.8378175, 55.9195185], [37.8368864, 55.9194489], [37.8355386, 55.9177032], [37.8349836, 55.9175541], [37.8351224, 55.9173399], [37.8353122, 55.91707], [37.8354487, 55.9168568], [37.8357087, 55.9170776], [37.8382045, 55.9171129], [37.8392138, 55.9171165], [37.8404943, 55.9171611], [37.8418891, 55.9172097], [37.8435035, 55.915587], [37.8435064, 55.9154623], [37.841976, 55.9137454], [37.8421039, 55.9136196], [37.842337, 55.9138113], [37.8445747, 55.9138635], [37.8453206, 55.9139934], [37.8453969, 55.9139946], [37.8456471, 55.9139985], [37.8458805, 55.9140022], [37.8461503, 55.9140065], [37.8466495, 55.9139142], [37.8470988, 55.9138738], [37.8472903, 55.9138372], [37.8485149, 55.9145846], [37.8494446, 55.9152114], [37.8494888, 55.9152412], [37.850287, 55.9162542], [37.8526657, 55.9159628], [37.8546403, 55.9159654], [37.8549614, 55.9159579], [37.8565237, 55.9159109], [37.8566544, 55.915907], [37.8567192, 55.9159054]]], "type": "Polygon"}

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

pychrone-0.0.3.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pychrone-0.0.3-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file pychrone-0.0.3.tar.gz.

File metadata

  • Download URL: pychrone-0.0.3.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for pychrone-0.0.3.tar.gz
Algorithm Hash digest
SHA256 49289f63a90a1b67ca214cf23fc5de0f3a538b92bf46540f3cab069b7adc8a27
MD5 99905fe753128040c54777945d4114d1
BLAKE2b-256 6ecb088f31605e4335155fc2060963a354b16fcbfa84266053bb4bfa0a98656d

See more details on using hashes here.

File details

Details for the file pychrone-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pychrone-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for pychrone-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 98757822106bf22469abbb59fe10ec8a31bb5e090de6735ccef68d01d7a72138
MD5 5701eb2603eb7ebe35117ba76f2cd3cc
BLAKE2b-256 1391c2d5a01f1ffb3c325f981a9230d479e0623450e14db171f1c0807491c5d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page