Skip to main content
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"}

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.2.tar.gz (4.8 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: pychrone-0.0.2.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pychrone-0.0.2.tar.gz
Algorithm Hash digest
SHA256 574658fc2a3b4b6cfbcc52c2a3462a9234fadf99a15e548a0a4ea09635cf6d26
MD5 9461f87620a9bf5c76e2295730464685
BLAKE2b-256 0d51ee05703fe4a68fea01bcee4aee912cbd33d418a499c4df1b205d9ad32aad

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 Sentry Error logging StatusPage Status page