Skip to main content

Python package for flexible data extraction from OpenStreetMap

Project description

osm-flex

Logo

github repo badge github license badge PyPI version PyPI - Downloads Documentation Status fair-software.eu DOI

Python package for flexible data extraction from OpenStreetMap. This packages allows to

  1. download OSM data dumps
  2. [optional] clip to desired shape
  3. extract specific features to geodataframes
  4. [optional] simplify results based on geospatial operations

Documentation

Please refer to the ReadTheDocs of this project for the full documentation of all functions.

Installation

conda create -n osm-flex cartopy geopandas
conda activate osm-flex
pip install osm-flex

NOTE

This package requires shapely v2.0 or later. Installing this package in an existing environment might overwrite older versions.

The (optional) clipping functionalities require manual installation of osmconvert or osmosis. See tutorial 1 for details.


Example

Download osm data for Switzerland from geofabrik.

import osm_flex.download as dl

iso3 = 'CHE'
dl.get_country_geofabrik(iso3)

Extract all buildings related to education and extract all polygons with forests.

import osm_flex.extract as ex
from osm_flex.config import OSM_DATA_DIR

path_che_dump = OSM_DATA_DIR.joinpath('switzerland-latest.osm.pbf')              
gdf_ch_education = ex.extract_cis(path_che_dump, 'education')    
Education GeodataFrame
gdf_ch_forest = ex.extract(
	path_che_dump, 'multipolygons', ['landuse', 'name'], "landuse='forest'"
	)    
Forest map

Drop all education building units that are contained within larger education buildings.

import osm_flex.simplify as sy
gdf_ch_education = sy.rremove_contained_polys(gdf_ch_education)

Running Tests

Follow installation instructions. Then,

python -m pip install -e "./[tests]"
pytest

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

osm-flex-1.1.1.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

osm_flex-1.1.1-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file osm-flex-1.1.1.tar.gz.

File metadata

  • Download URL: osm-flex-1.1.1.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for osm-flex-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5a45e28bc8280eb4dcaf7d776efa3792bc46583ab8ade2d70609dad3894111fd
MD5 642b3757a4c921ec05e90885451b8b80
BLAKE2b-256 debfbe722c4e237bb01a20f7afd524a8fb4bd57719dd0a46a8bca919ac4750df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: osm_flex-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for osm_flex-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e369e32120ab852e25f98b09245f342823855100a9cda6763f37c751542bfecb
MD5 f0fc57e4f6b6f53c2a5da1ef177d7c79
BLAKE2b-256 0e64a07ccca8fb1ef8cced5861961dd23356b3a4ca64643cab0f57bec493e4eb

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