Skip to main content

Python wrapper for multiple APIs, that provide catchments-areas

Project description

https://travis-ci.org/Luqqk/catchments.svg?branch=master https://coveralls.io/repos/github/Luqqk/catchments/badge.svg

🌍 catchments

Python wrapper for multiple APIs, that provide catchments-areas. It allows to acquire and manipulate catchments from those APIs.

img/catchments.png

Installation

$ pip install catchments

Usage

Currently there are implemented two classes: SkobblerAPI and HereAPI.

You can use them as follows:

>>> from catchments import SkobblerAPI

>>> # get catchment from Skobbler API
>>> skobbler = SkobblerAPI('your_api_key')
>>> # if you don't provide params values default ones will be used
>>> params = {"range": 600, "highways": 1}
>>> catchment = skobbler.get_catchment({"lat" 52.05, "lon": 16.82}, **params)
>>> {"realReach": {...} ...}
>>> geojson = skobbler.catchment_as_geojson(catchment)
>>> {"type": "Feature", geometry: {"type": "Polygon", ...}, ...}
>>> skobbler.save_as_geojson(geojson)
>>> 'SKOBBLER_52.05_16.82.geojson'

As you can see .get_catchment method uses params as second argument. Params keys names should be exactly the same as mentioned in APIs documentations, otherwise they will be ignored and default values will be used.

Params supported by SKOBBLER and HERE:

SKOBBLER (startMercator, response_type - not supported)

HERE

You can use also inbuilt command line scripts which accept *.csv file input with points as coordinates resource. Scripts generate *.geojson files for every point in given *.csv file.

Example *.csv file structure (name column is optional):

name

lat

lon

point1

52.0557

16.8278

point2

52.4639

16.9410

Example command line script usage:

$ catchments-skobbler.py -k your_api_key -p path/to/file/with/points/*.csv

All scripts and their options are mentioned below:

$ catchments-skobbler.py
  • -k –key [REQUIRED] [DEFAULT: None]

  • -p –points [REQUIRED] [DEFAULT: None]

  • -r –range - [OPTIONAL] [DEFAULT: 600]

  • -u –units - [OPTIONAL] [DEFAULT: sec]

  • -t –transport - [OPTIONAL] [DEFAULT: car]

  • -l –toll - [OPTIONAL] [DEFAULT: 0]

  • -w –highways - [OPTIONAL] [DEFAULT: 0]

  • -n –nonReachable - [OPTIONAL] [DEFAULT: 0]

$ catchments-here.py
  • -i –app_id [REQUIRED] [DEFAULT: None]

  • -c –app_code [REQUIRED] [DEFAULT: None]

  • -r –range - [OPTIONAL] [DEFAULT: 600]

  • -e –range-type - [OPTIONAL] [DEFAULT: time]

  • -m –mode - [OPTIONAL] [DEFAULT: fastest;car;traffic:disabled]

Tests

$ python setup.py test

TODO

  • Add support for Mapzen API catchments

  • Add support for OpenRouteService catchments

  • Add support for concurrent HTTP requests

Release History

1.1.1 (2017-05-04)

  • Split catchments-cls.py into separate scripts (one for each API)

  • Documentation

1.0.0 (2017-05-01)

  • Bug fixes, code reorganization

  • Better documentation

0.9.1b (2017-03-11)

  • Required params validation in catchments-cls.py

0.9.0b (2017-03-11)

  • Initial release (beta)

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

catchments-1.1.1.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

catchments-1.1.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file catchments-1.1.1.tar.gz.

File metadata

  • Download URL: catchments-1.1.1.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for catchments-1.1.1.tar.gz
Algorithm Hash digest
SHA256 2fa6c5cf69ad24a61bc86c618549f5a17c084ac919dfeb805e3d074f0e8d4e49
MD5 ca61a3f1ed9f4c25230b83d475da85de
BLAKE2b-256 d46877665773abb9162c817153c9729e8043169884b2a8c8a280d7e83d13f4e2

See more details on using hashes here.

File details

Details for the file catchments-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for catchments-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c40db1833a3e254aac1f12caf38751c2892ba07dedbfca137c5a534fb8756b07
MD5 289d11e9ac0b43b8ecf68c1c564177cc
BLAKE2b-256 cfe16720fc5cf920076e672eb96ede403b74b48b7544d54b9aba439d478127c2

See more details on using hashes here.

Supported by

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