Skip to content

Support Full OSM Stack Toolchain

Chris Bennight edited this page Jan 21, 2015 · 1 revision

Introduction

Purpose

This proposal was brought about by GEOWAVE-158 The intent of this proposal is to enable a full OSM data management stack - comparable to what currently exists on top of postgis/postgresql + supporting infrastructure.

These capabilities should cover the span of reading full dumps, reading diffs, editing interface, providing diffs, and configurable simple feature transformations.

Document History

  • Jan 20th, 2015
    • Initial Draft

Feature Specifications

  • Bulk Ingest
  • Diff Ingest
    • Capable of ingesting changesets in OSM XML and PBF format (don't need to support o5m, or osmconvert one-off).
    • Should be able to handle small batches or pure stream
    • Ability to generate some sort of change/dirty notification for what has changed (may need "re-rendering/materializing") in a given timespan
  • Node/Way/Relation persistence
    • Persistence nodes, ways, relations in a format which which maintains all native OSM tags and relations.
    • Ability to integrate OSM diffs into the system
    • OSM diffs (in PBF or OSM XML format) should be able to be created for a given timespan
  • Editing API
    • Implementation of the OSM v0.6 API on top of the Node/Way/Relation persistence model
    • Edits should integrate into the change/dirty notification system called out under the Diff Ingest header
    • Authorization portion will be extended to support PKI based auth
  • Simple Feature Generation
    • A separate map-reduce (or similar - spark, etc.) job will be provided to convert the Node/Way/Relation persistence data in to OGC Simple Features in GeoWave
    • The spec called out in IMPOSM3 will be supported as a means of defining the mapping
    • The conversion method will be able to tap into the change notification system mentioned above to only generate updated/modified/deleted features.
    • Multiple conversions runs to different formats should be fully supported

Use Cases

The system, when complete, should be capable of ingesting an existing OSM dump, ingesting updates, supporting an ID based map rendering (using the 0.6 API). The user should be able to user geoserver (with appropriate SLD) to render the simple feature representation, or optionally mapnik/tilemill as well (if/when the mapnik plugin - ref: https://github.com/ngageoint/geowave/issues/13 is done)

Architecture and Design

HDFS format for ingested PBF and OSM XML files

(...)

Schema for nodes/ways/relations

(...)

API services framework + PKI grafting

(...)

Change notification system

Dirty imports notification

Diff generation