Skip to main content

Convert OpenStreetMap data into GIS and mobile mapping file formats.

Project description

OSM Export Tool

This project is in a usable state on Linux and Mac. The current Export Tool web service repository is at hotosm/osm-export-tool.

Motivation

This program filters and transforms OpenStreetMap data into thematic, tabular GIS formats. Filtering of features is specified via SQL embedded in a YAML mapping file, for example:

buildings_with_addresses:  # creates a thematic layer called "buildings_with_addresses"
  types:
    - polygons
  select:
    - building
    - height
    - addr:housenumber
  where:
    - building = 'yes' and addr:housenumber IS NOT NULL

It can also create files in non-tabular formats such as those for Garmin GPS devices or the OSMAnd Android app. (coming soon)

Installation

  • install via pip install osm-export-tool. Python 3 and a working GDAL installation are required. GDAL can be installed via Homebrew on Mac or the ubuntugis PPAs on Ubuntu.

PyOsmium is used to read OSM files and GDAL/OGR is used to write GIS files, so this program should be reasonably fast and light on memory. There is a built-in OSM reader available for GDAL/OGR, but this program is much more flexible.

This library will not automatically install GDAL because it needs to match the version on your system. You will need to separately run pip install GDAL==2.3.2 (change 2.3.2 to match gdalinfo --version)

Example usage

osm-export-tool INPUT_FILE.pbf OUTPUT_NAME

will create OUTPUT_NAME.gpkg.

All the below flags are optional.

  • -m, --mapping : specify a mapping YAML. Defaults to osm_export_tool/mappings/defaults.yaml, which is a very broad selection of OSM tags ported from the imposm3 defaults.
  • -f, --formats : a comma-separated list of formats such as gpkg,shp. Defaults to just gpkg.
  • --omit-osm-ids: By default, every table will have an osm_id column. Relation IDs are negative.
  • --clip <file>: either a .poly or GeoJSON file.
    • The GeoJSON must be either a Polygon or MultiPolygon geometry, or a FeatureCollection with one Polygon or MultiPolygon feature.
    • Clipping is performed by Shapely and can be slow. It is recommended to filter the input PBF with a tool like osmium-tool.

YAML Mapping

  • SQL statements must be comparisons of keys to constants with the key first.
    • Valid examples:
      • height > 20
      • amenity='parking' OR (building = 'yes' and height > 5)
    • Invalid examples:
      • 20 < height
      • building > height
  • More examples can be found in the mappings directory.
  • if the types key is omitted, it defaults to points, lines and polygons.
  • At least one tag is required as a child of the select key.
  • If the where key is omitted, it defaults to choosing all features where any of the selected keys are present.
  • if where is a list of SQL, it is equivalent to joining each SQL in the list with OR.

Output formats

  1. OGC GeoPackage (gpkg)
  • This is the default export format, and the most flexible for modern GIS applications.
  • tables will be created with the wkbUnknown geometry type, which allows heterogeneous geometry types.
  1. Shapefile (shp)
  • Each layer and geometry type is a separate .SHP file. This is because each .SHP file only supports a single geometry type and column schema.
  1. KML (kml)
  • Each layer and geometry type is a separate .KML file. This is because the GDAL/OGR KML driver does not support interleaved writing of features with different geometry types.
  1. Maps.ME (coming soon)

  2. OsmAnd (coming soon)

  3. Garmin (coming soon)

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-export-tool-0.0.22.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

osm_export_tool-0.0.22-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file osm-export-tool-0.0.22.tar.gz.

File metadata

  • Download URL: osm-export-tool-0.0.22.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.5

File hashes

Hashes for osm-export-tool-0.0.22.tar.gz
Algorithm Hash digest
SHA256 c4ed3c87819dbff54a9578fda31682b41c9a0f4c15662f68d5c0c01cb556b7a0
MD5 7a81e242e6f4541c7fb2ce24f0cdd52a
BLAKE2b-256 4ddccb6e88a1c0478489adce00ea14410a0e0377c5b02b344eca22c62679a9b7

See more details on using hashes here.

File details

Details for the file osm_export_tool-0.0.22-py3-none-any.whl.

File metadata

  • Download URL: osm_export_tool-0.0.22-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.5

File hashes

Hashes for osm_export_tool-0.0.22-py3-none-any.whl
Algorithm Hash digest
SHA256 4f57432494fa63c0703658ff1f7a42be313ed1eb8c8d2f25b7a027724b9e1ef3
MD5 85f202d266663af3b8795e11842767cb
BLAKE2b-256 5ce8d2e1793cbdfa8af998007be9a19f70957e9b299dfded2a572dcbe94168f8

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