DE:Osmupdate

From OpenStreetMap Wiki
Jump to navigation Jump to search
Osmupdate
Lizenz: GNU Affero General Public License v3
Plattformen: Windows und Linux
Version: 0.9 (2018-05-30)
Quellcode: https://gitlab.com/osm-c-tools/osmctools
Programmiersprache: C

Osmupdate lädt OSM-Changefiles herunter und verbindet sie. Dies ermöglicht es, für jede Zeitspanne ein passendes Changefile zu erstellen und OSM-Dateien in regelmäßigen oder auch unregelmäßigen Abständen zu aktualisieren.

Osmupdate zu benutzen ist nicht die einzige Möglichkeit, OSM-Dateien zu aktualisieren. In den meisten Fällen kann man dies auch mit anderen Programmen, zum Beispiel mit Osmosis erledigen. Osmupdate ist ein kleines, schnelles Programm, das ausschließlich für diese Aufgabe entwickelt wurde. Es bietet einige Funktionen, die Osmosis nicht besitzt, umgekehrt fehlen ihm aber auch viele Funktionen, die Osmosis bietet.

Anwendungsfälle

  • Du möchtest eine lokale PostgreSQL-Datenbank aktuell halten und minütlich mit den OpenStreetMap-Servern synchronisieren.
    • Benutze nicht osmupdate. Osmupdate kann keine Datenbanken aktualisieren. Benutze stattdessen Osmosis oder osm2pgsql.
  • Du möchtest eine OSM-Datei eines kleinen Gebietes alle paar Wochen aktualisieren.
    • Benutze nicht osmupdate. Lade jedes Mal einen neuen Auszug herunter.
  • Du hast eine alte planet.osm-Datei gefunden und möchtest sie aktualisieren.
    • Benutze nicht osmupdate. Lade eine neue planet.osm-Datei herunter.
  • Du hast eine OSM-Datei einer größeren Region und möchtest sie alle paar Stunden, jeden Tage oder jede Wochen aktualisieren.
    • Benutze osmupdate.

Download

Diese Downloads sind erhältlich:

Wie üblich: Gewährleistung ausgeschlossen, so weit wie gesetzlich zulässig.

Voraussetzungen

Osmupdate nutzt folgende Hilfsprogramme, die auf dem System verfügbar sein müssen:

Benutzung

OSM-Datei aktualisieren

Veraltete OSM-Dateien können aktualisiert werden und als neue Datei ausgegeben werden. Unterstützt werden .o5m, .o5m.gz, .osm, .osm.gz und .pbf. Aus Sicherheitsgründen wird die alte Datei nicht gelöscht.

Beispiele:

./osmupdate old_file.o5m new_file.o5m
./osmupdate old_file.o5m.gz new_file.o5m.gz
./osmupdate old_file.osm new_file.osm
./osmupdate old_file.osm.gz new_file.osm.gz
./osmupdate old_file.pbf new_file.pbf

Wenn die alte OSM-Datei keinen Zeitstempel enthält, kann dieser manuell angegeben werden.

./osmupdate old_file.osm 2011-02-15T23:30:00Z new_file.osm

Ansonsten versucht das Programm den Zeitstempel der alten Datei automatisch auszulesen.

Hinweis: Es wird nicht empfohlen, große .osm-formatierte Dateien zu aktualisieren, da dies Stunden oder sogar Tage dauern kann. Besser eignen sich die Formate .pbf und .o5m (etwas schneller) für diesen Zweck.

Changefiles erstellen

Es ist möglich, die veralteten Daten nicht direkt zu aktualisieren, sondern ein Changefile für diese zu erstellen. Dieses kann dann zum Aktualisieren der alten Daten verwendet werden. Außerdem können Osmosis oder osm2pgsql hiermit Datenbanken aktualisieren.

Beispiele:

./osmupdate alte_datei.o5m change_file.o5c
./osmupdate alte_datei.osm change_file.osc
./osmupdate 2011-02-15T23:30:00Z change_file.o5c
./osmupdate 2011-02-15T23:30:00Z change_file.osc.gz

Geografische Grenzen verwenden

Im folgenden Beispiel, möchten wir eine OSM-Datei aktualisieren, die nur Europa enthält. Planet-Changefiles enthalten jedoch die ganze Welt, so dass viele unnötige Daten hinzugefügt werden würden. Mit dem Argument -B= kann eine Polygon-Datei angegeben werden, sodass nur die Daten innerhalb dieses Polygons verwendet werden.

 ./osmupdate europe_old.o5m europe_new.o5m -B=europe.poly

Außerdem steht das Argument -b= zur Verfügung, um einen rechteckigen Kartenausschnitt (Bounding-Box) zu definieren.

Ein effektiverer Weg, regionale OSM-Dateien zu aktualisieren, besteht darin, an Stelle von Planet-Changefiles regionale Changefiles zu verwenden. Dazu muss die Internetadresse für die jeweilige Quelle vorgegeben werden (siehe weiter unten). Die Angabe des Grenzpolygons erübrigt sich dadurch.

Siehe auch: osmconvert

Changefile-Kategorien begrenzen

Wenn man eine OSM-Datei nur einmal am Tag oder seltener aktualisiert, kann es nützlich sein, die Changefile-Kategiorie auf daily (täglich) zu beschränken. Das verhindert, dass Changefiles der Kategorie minutely (minütlich) oder hourly (stündlich) verwendet werden und spart daher Traffic. Benutze hierfür folgende Option:

--day

Um eine Datei alle paar Stunden zu aktualisieren, braucht man keine Changefiles der Kategorie minutely (minütlich). Daher sollte man folgende Option benutzen, um nur hourly (stündlich) und daily (täglich) zu verwenden:

--hour --day

Temporäre Dateien behalten

Eine andere Möglichkeit, den Netzwerkverkehr zu reduzieren, ist, lokale Kopien jeder heruntergeladenen Datei zu speichern. Dies ist insbesondere beim Verarbeiten von sich zeitlich überschneidenden Changefiles sinnvoll.

--keep-tempfiles

Ausführliche Ausgabe

osmupdate gibt während der Abarbeitung sehr wenige Hinweise aus. Sollte der Verdacht bestehen, dass etwas schief läuft, kann die Ausgabe ausführlicher gestaltet werden durch:

-v

Datenquelle

Normalerweise holt lädt osmupdate die Änderungsdateien von https://planet.openstreetmap.org/replication/. Falls andere Quellen genutzt werden sollen, zum Beispiel der Fork, FOSM, ein regionales Update-Repositorium oder die während des Lizenzwechsels verfügbaren Daten, muss die Option --base-url= verwendet werden. Oft ist auch die Angabe von --base-url-suffix=-replicate als URL-Suffix notwendig. Beispiele:

--base-url=mirror
--base-url=http://planet.fosm.org/planet/ --base-url-suffix=-replicate
--base-url=https://planet.openstreetmap.org/ --base-url-suffix=-replicate
--base-url=https://planet.openstreetmap.org/redaction-period/ --base-url-suffix=-replicate
--base-url=download.geofabrik.de/europe/germany/bremen-updates

Benchmarks

updating the whole planet

Hardware: 16 GB RAM, 7200 rpm Disk, Quelldatei: ohne Zeitstempel, 14 Tage alte Planet-Datei.

time ./osmupdate planet-latest.o5m new-planet-latest.o5m --planet-url=https://planet.openstreetmap.org/redaction-period/
real	31m12.246s
user	13m45.716s
sys	0m57.056s

Hardware: Core i7 2600, 16GB RAM, RAID6, Quelldatei: pbf, ohne Zeitstempel, 3 Tage alte Planet-Datei.

time ./osmupdate32 -v planet-latest.osm.pbf planet-latest2.osm.pbf
real    52m52.208s
user    43m39.028s
sys     0m43.891s

Bitte ergänzt hier eure Benchmark-Ergebnisse.

Bekannte Probleme