OSM Scientific Tools
This page has the purpose of collecting and sharing information about:
- Scientific computing on OSM vector data;
- Geo-statistical analysis tools;
- Data mining on OSM;
- Tools and techniques for road network analysis.
Getting a local copy of OSM vector data
To run scientific analyses of OSM data, it is highly recommended to download a local copy of the vector data, without overloading the project's web infrastructure. OSM vector data is available in a variety of formats. Depending on the particular task, certain formats can be more appropriate than others.
- OSM XML: general purpose format.
- PBF is a binary format that supports fast access to OSM features.
- For the analysis of geometries, PostGIS is a suitable DBMS. OSM vector data can be easily imported into PostGIS with Osm2postgresql.
The following software can be used to explore OSM data:
- OSMPythonTools is a Python library that enables easy and straight-forward access to Overpass endpoints, Nominatim, and the OSM API. The library makes use of Pandas internally in order to organize the resulting data and Matplotlib to visualize the results.
Processing Libraries and Tools
The following languages can be used to perform scientific computation and analysis of OSM vector data:
- Python: Numpy is suitable for statistical processing; see articles filed in Category:Python for OSM-specific Python tools.
- osmdata R package for fast extraction of OSM data and conversion to OGC standard Simple Features format
R is a popular open-source platform to perform geo-statistical analyses. Several packages have been developed to process OSM data:
- OpenStreetMap R package
- A tutorial to process OSM data on R: OpenStreetMap on R
- osmar R package (2011, latest update 2013)
- A tutorial on how to process OSM data as vector data with R: The osmar vignette
- osmdata R package A high-performance interface to the overpass API (2017)
- The osmdata website and extended vignette
The following Semantic Web projects can support the processing of OSM vector data from a semantic perspective: