EOSMDBOne: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K
(Background)
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''"Enhanced OpenStreeMap Database One" (EOSMDBOne)'''
+
'''"Enhanced OpenStreetMap 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 Daten sind einen Tag alt (Stand ca. 22h vom Vortag).
+
Die EOSMDBOne ist eine Geodatenbank mit Daten des freien [[OpenStreetMap]]-Projekts, die über den Ausschnitt der Schweiz stündlich aktualisiert und ergänzt ('enhanced') werden.  
  
Die Aktualisierung geschieht mit Hilfe eines Shell-Skripts und der Software [[Osm2pgsql]]. Jede Nacht - etwas nach 5 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 Uhr, vgl. [http://blog.geofabrik.de/de/?p=75]).
+
Die Aktualisierung geschieht mit Hilfe eines Shell-Skripts und der Software [[Osm2pgsql]]. Die Daten liegen in der DB im Koordinatenreferenzsystem EPSG:900913 vor. Früher erfolgte jeden Morgen ein Import der Datei 'switzerland.osm.pbf' von [http://download.geofabrik.de/osm/europe/ Geofabrik] (vielen Dank an Geofabrik für den Service!). Aktuell wird die Datenbank jede Stunde aktualisiert. EOSMDBOne gibt Datum und Zeit an, wann die Verarbeitung abgeschlossen worden ist.  
  
 
EOSMDBOne wird von einigen unserer Webapplikationen verwendet, wie  
 
EOSMDBOne wird von einigen unserer Webapplikationen verwendet, wie  
 +
* [[OpenEcoMap]]
 +
* [[Zebrasteifen-Safari]]
 +
* [[Tourpl]]
 
* [[PostGIS Terminal]]  
 
* [[PostGIS Terminal]]  
* [[POI-Service]]/[[OpenPOIMap]]
+
* und früher [[OpenPOIMap]]
* [[Tourpl]]
+
 
 +
EOSMDBOne ist eine GIS- und kartenorientierte Datenbank - aber noch keine Karte. Wer sich für die eigene Kartenherstellung interessiert, findet mehr dazu auf "[[OpenStreetMap-Daten zu Karten aufbereiten]]".
 +
 
 +
== Datenanalysen ==
 +
 
 +
Für Datenanalysen mit SQL und OpenStreetMap '''siehe [[PostGIS - Tipps und Tricks]] und [[PostGIS Terminal Examples]].'''
  
 
== Schema ==
 
== 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).
+
Das Datenbankschema 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 '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 Attributen 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
  
 
Tabellen-Gruppe 'OSM-Original': Tabellen angelehnt an originale OSM-Planet-Struktur (jedoch mit Tags als Array):
 
Tabellen-Gruppe 'OSM-Original': Tabellen angelehnt an originale OSM-Planet-Struktur (jedoch mit Tags als Array):
Zeile 18: Zeile 31:
 
* '''osm_ways''' => Way mit Set of references to Node, d.h. ohne eigene Geometrie (gem. default.style).  
 
* '''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).  
 
* '''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:
 
Spezialtabellen:
Zeile 38: Zeile 46:
  
 
Some facts:
 
Some facts:
* This database is being updated every early morning (using a Linux cron job at 04:04 a.m.) and takes a processing time of about 3 hours (so the DB is about 8:00 ready to use).
+
* This database is being updated every hour (using a Linux cron job) and it takes a processing time of about 8 minutes.
 
* The data source originally is [[OpenStreetMap]] but actually the download server from Geofabrik [http://download.geofabrik.de/] is being used.  
 
* The data source originally is [[OpenStreetMap]] but actually the download server from Geofabrik [http://download.geofabrik.de/] is being used.  
 
* [[PostGIS]] is used as the database system.
 
* [[PostGIS]] is used as the database system.
 
* The whole update process is controlled by a shell script.
 
* The whole update process is controlled by a shell script.
 
* The software used for the main update process is [[Osm2pgsql]].  
 
* The software used for the main update process is [[Osm2pgsql]].  
 +
 +
See also:
 +
* [[Osm2pgsql]]
 +
* "Keeping the local database in sync with OSM": https://ircama.github.io/osm-carto-tutorials/updating-data/
  
 
[[Kategorie: Geodaten]]
 
[[Kategorie: Geodaten]]

Aktuelle Version vom 13. Mai 2020, 20:38 Uhr

"Enhanced OpenStreetMap Database One" (EOSMDBOne)

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

Die Aktualisierung geschieht mit Hilfe eines Shell-Skripts und der Software Osm2pgsql. Die Daten liegen in der DB im Koordinatenreferenzsystem EPSG:900913 vor. Früher erfolgte jeden Morgen ein Import der Datei 'switzerland.osm.pbf' von Geofabrik (vielen Dank an Geofabrik für den Service!). Aktuell wird die Datenbank jede Stunde aktualisiert. EOSMDBOne gibt Datum und Zeit an, wann die Verarbeitung abgeschlossen worden ist.

EOSMDBOne wird von einigen unserer Webapplikationen verwendet, wie

EOSMDBOne ist eine GIS- und kartenorientierte Datenbank - aber noch keine Karte. Wer sich für die eigene Kartenherstellung interessiert, findet mehr dazu auf "OpenStreetMap-Daten zu Karten aufbereiten".

Datenanalysen

Für Datenanalysen mit SQL und OpenStreetMap siehe PostGIS - Tipps und Tricks und PostGIS Terminal Examples.

Schema

Das Datenbankschema 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 '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 Attributen 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

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).

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 hour (using a Linux cron job) and it takes a processing time of about 8 minutes.
  • The data source originally is OpenStreetMap but actually the download server from Geofabrik [1] 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.

See also: