OpenStreetMap History Analysis
Branch: master
Clone or download
Latest commit 38949f6 Feb 21, 2019

README.md

HeiGIT OpenStreetMap History DB

High-performance data analysis platform for OpenStreetMap full-history data.

Build Status

The OSHDB offers a distributed data base that splits storage and computation load. It is then possible to use the map-reduce programming model to analyse the data in parallel. A central idea behind the OSHDB is to bring the code to the data.

    OSHDBDatabase oshdb = /**/;

    Integer numberOfUsersEditingHighways = OSMContributionView.on(oshdb)
        .timestamps("2007-10-07", "2009-04-09")
        .where("highway")
        .map(contribution -> contribution.getContributorUserId())
        .countUniq();
        
    System.out.println(numberOfUsersEditingHighways);

OpenStreetMap History Data

OpenStreetMap contains a large variety of geographic data, for example differing in scale (ranging from single points of interests to whole country borders), or feature type (from concrete things like buildings up to more abstract concepts such as turn restrictions) and offers a lot of metadata (about individual contributors, modifications, etc.) that can be analyzed in a multitude of ways. At the same time, possibilities of working with this data are limited because of the large amount of needed resources and the lack of an easy-to-use analysis software. The huge information treasure in OSM for researchers, journalists, community members and other interested people is thereby kept hidden. A central goal of the OSHDB is to make this treasure available for a larger public.

Central Concepts

Data Partitioning

  • (close to osm data structures)
  • (no lossy transformations/compressions)
  • (partially resolved references, to speed up typical operations like "geometry building")
  • (split into cells)

Data Processing/Access

  • (rest-based api for common queries)
  • (oshdb-api: flexible, simple, map-reudce pattern, works on actual geometries)
  • (raw-data api: direct access to underlying raw osm data)

Installation

(install instructions: maven, link to separate developer instructions)

API

Examples

(few examples with screenshots and links code)

See Also