Skip to main content

Powerfull wrapper around OSM Overpass Turbo to query regions of any size and shape

pip install osmpy

List precooked queries

osmpy.list_queries()

            name                                         docstring
0      Amenities          Location of amenities within a boundary 
1  AmentiesCount   Number of amenities per type within a boundary 
2     RoadLength     Length of road by roadtype within a boundary 

Get all amenities in a boundary

import osmpy
from shapely import wkt

boundary = wkt.loads('POLYGON((-46.63 -23.54,-46.6 -23.54,-46.62 -23.55,-46.63 -23.55,-46.63 -23.54))')
osmpy.get('Amenities', boundary)

    type          id        lat        lon                                               tags
0   node   661212030 -23.544739 -46.626160           {'amenity': 'fuel', 'name': 'Posto NGM'}
1   node   661212089 -23.547450 -46.626073  {'amenity': 'fuel', 'name': 'Posto Maserati', ...
2   node   745733280 -23.541411 -46.613930  {'addr:city': 'São Paulo', 'addr:housenumber':...
3   node   745733292 -23.542070 -46.614916  {'addr:city': 'São Paulo', 'addr:housenumber':...
4   node   889763809 -23.542558 -46.620360  {'addr:housenumber': '110/C9', 'addr:street': ...
..   ...         ...        ...        ...                                                ...
84  node  5663737625 -23.540027 -46.605425  {'access': 'yes', 'addr:city': 'São Paulo', 'a...
85  node  5990269247 -23.540650 -46.607532  {'addr:city': 'São Paulo', 'addr:housenumber':...
86  node  6621564995 -23.543880 -46.626414  {'access': 'yes', 'addr:city': 'São Paulo', 'a...
87  node  6625433725 -23.546727 -46.623956  {'access': 'yes', 'addr:city': 'São Paulo', 'a...
88  node  6625433753 -23.547111 -46.624790  {'access': 'yes', 'addr:city': 'São Paulo', 'a...

Total road length by road type

osmpy.get('RoadLength', boundary)

               count     length
highway                        
bus_stop           1     82.624
corridor           2    482.195
cycleway           1    134.197
footway          116   5473.419
living_street      3    422.378
path               4    735.539
pedestrian         3     90.327
platform           3    239.206
primary           28   2067.562
primary_link      12   1123.544

You can use your own query

## Use `{boundary}` as a placeholder.
query = """
    [out:json];
    node["amenity"](poly:"{boundary}");
    out body geom;
    """

osmpy.get(query, boundary)

Create a precooked query

class YourPrecookedQuery(osmpy.query.QueryType):

    query = """
    <OSM Overpass Turbo Query>
    """

    docstring = """
    <Query description>
    """

    def postprocess(self, df):
        """Post process API result
        """
        return df['tags'].apply(pd.Series).groupby('amenity').sum()

osmpy.get(YourPrecookedQuery, boundary)

👉 Leave an issue or PR if you want to add a new query to the package

Credits

Free software: MIT license

Function katana from @snorfalorpagus.

Release files for osmpy 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for osmpy 0.1.1
File Size Uploaded
osmpy-0.1.1.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for osmpy 0.1.1
File Interpreter ABI Platform
osmpy-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 10.2 kB

Release files / osmpy-0.1.1.tar.gz

Download URL osmpy-0.1.1.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
82801eb65cf4bc9ce97610a6d52f767c6e1d8d125d2a3de77dbbda144f25613c
BLAKE2b-256 checksum
How to use checksums
43f55cc3313a71f0953cf39814c4b722105402e72b77340edff5378b668c7650
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.9.0 Darwin/18.2.0

Release files / osmpy-0.1.1-py3-none-any.whl

Download URL osmpy-0.1.1-py3-none-any.whl
Size 5.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a9c824a92cef3e75870a3847e7aee69532172caf25312c681bb950a4ca1de67
BLAKE2b-256 checksum
How to use checksums
e6839f8cca05c590dbb7f16dad33bb92bfa3f4879a91d0c9a165b3f3bb9408ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.9.0 Darwin/18.2.0

Release history Release notifications | RSS feed

0.2.0

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page