EOSMDBOne: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K (Schema)
Zeile 1: Zeile 1:
 
'''"Enhanced OpenStreeMap Database One" (EOSMDBOne)'''
 
'''"Enhanced OpenStreeMap Database One" (EOSMDBOne)'''
  
Die EOSMDBOne ist eine Geodatenbank mit Daten von [[OpenStreetMap]], die über den Ausschnitt der Schweiz regelmässig aktualisiert werden (jeweils Stand der OSM-Datenbank von 22:30 Uhr, vgl. [http://blog.geofabrik.de/de/?p=75]).  
+
Die EOSMDBOne ist eine Geodatenbank mit Daten des freien [[OpenStreetMap]]-Projekts, die über den Ausschnitt der Schweiz täglich aktualisiert und ergänzt ('enhanced') werden.  
  
Die Aktualisierung geschieht mit Hilfe eines Shell-Skripts und der Software [[Osm2pgsql]]. Jede Nacht - etwas nach 3 Uhr - erfolgt ein Import der Datei 'switzerland.osm.pbf' von [http://download.geofabrik.de/osm/europe/ Geofabrik] (vielen Dank an Geofabrik für den Service!).  
+
Die Aktualisierung geschieht mit Hilfe eines Shell-Skripts und der Software [[Osm2pgsql]]. Jede Nacht - etwas nach 4 Uhr - erfolgt ein Import der Datei 'switzerland.osm.pbf' von [http://download.geofabrik.de/osm/europe/ Geofabrik] (vielen Dank an Geofabrik für den Service!). Der eigentliche Stand der Daten ist derjenige vom Vortag (ca. 22:30 Uhr, vgl. [http://blog.geofabrik.de/de/?p=75]).
  
 
EOSMDBOne wird von einigen unserer Webapplikationen verwendet, wie  
 
EOSMDBOne wird von einigen unserer Webapplikationen verwendet, wie  

Version vom 10. Dezember 2011, 11:13 Uhr

"Enhanced OpenStreeMap Database One" (EOSMDBOne)

Die EOSMDBOne ist eine Geodatenbank mit Daten des freien OpenStreetMap-Projekts, die über den Ausschnitt der Schweiz täglich aktualisiert und ergänzt ('enhanced') werden.

Die Aktualisierung geschieht mit Hilfe eines Shell-Skripts und der Software Osm2pgsql. Jede Nacht - etwas nach 4 Uhr - erfolgt ein Import der Datei 'switzerland.osm.pbf' von Geofabrik (vielen Dank an Geofabrik für den Service!). Der eigentliche Stand der Daten ist derjenige vom Vortag (ca. 22:30 Uhr, vgl. [1]).

EOSMDBOne wird von einigen unserer Webapplikationen verwendet, wie

Schema

Das Schema wurde etwas angepasst (siehe Osm2pgsql und Konfigurations-Datei .style). Die Attribute osm_id und osm_version (aus Oms2pgsql-Option "-extended-attributes") in der Tabellen-Gruppe 'Osm2pgsql' konnten jedoch nicht umbenannt werden (hardcoded).

Tabellen-Gruppe 'OSM-Original': Tabellen angelehnt an originale OSM-Planet-Struktur (jedoch mit Tags als Array):

  • osm_nodes => Node mit id, lat, lon, tags (Array) (gem. default.style) (Hinweis: Alle tags stammen von einer Tags-Tabelle)
  • osm_ways => Way mit Set of references to Node, d.h. ohne eigene Geometrie (gem. default.style).
  • osm_rels => Relation mit Referenz auf Nodes, Ways, Relations (gem. default.style).

Tabellen-Gruppe 'Osm2pgsql': Tabellen mit Geometrien (PostGIS) zusammengestellt aus aus osm_nodes und osm_ways (mit Tags als hstore durch osm2pgsql '-h'-Flag ):

  • osm_point => Punktobjekte mit den Attribten osm_id, versch. weitere (gem. default.style) plus osm_version. Enthält nur Nodes, die auch Tags enthalten (also keine, die nur Stützpunkte von Linien/Rändern sind).
  • osm_line => Linienobjekte aus Ways-Tabelle mit 'echtem' Geometrie-Attribut, sowie osm_id, versch. weitere (gem. default.style) plus osm_version. Hinweis: Enthält keine Ways, die Flächen bilden; diese werden in osm_polygon abgelegt (vgl. Vineyard). Enthält Objekte mit (möglicherweise identischen!) negativen osm_id's; das sind Ways, die in der OSM-DB über Relations zusammengesetzt sind.
  • osm_polygon => Flächenobjekte (gebildet aus bestimmten Ways und Relations), osm_id, versch. Attr. (gem. default.style) plus osm_version

Spezialtabellen:

  • osm_roads => linienhafte Strassenobjekte => fehlt, da nicht verwendet! (aus .style auskommentiert)
  • osm_all => Tabelle über osm_point, osm_line und osm_polygon über die Kolonnen osm_id, name, tags, gtype, way, osm_version (ACHTUNG: ev. nicht-materialisiert, d.h. langsam!).
  • osm_poi => Tabelle über osm_point und osm_polygon mit ST_Centroid mit den Kolonnen osm_id, name, tags, gtype, way, osm_version (ACHTUNG: langsam!).

Duplikate:

  • Original OSM tables have separate ids and no duplicates in each table.
  • Table osm_point has no duplicates.
  • Table osm_lines has duplicates with neg. and pos. osm_ids. Line rows with duplicate neg. osm_ids got the (positive) osm_id from relations. Lines also have rows with duplicate pos. osm_ids. These belong somehow together since they have identical tags but different geometries. In original db there is only one http://www.openstreetmap.org/browse/way/47926394 (compared to "select osm_id, tags, length(way) from osm_line where osm_id=47926394").
  • Table osm_polygon have duplicates too but only with negative osm_ids. Like Lines, Polygon rows with duplicate neg. osm_ids got the (positive) osm_id from relations like multi-polygons.

Background

Some facts:

  • This database is being updated every early morning (using a Linux cron job at 03:03 a.m.).
  • The data source originally is OpenStreetMap but actually the download server from Geofabrik [2] is being used.
  • PostGIS is used as the database system.
  • The whole update process is controlled by a shell script.
  • The software used for the main update process is Osm2pgsql.