Probleme OSMUPDATE

Hallo ich würde gerne meinen OSM Tile Server Updaten habe hierzu OSMUPDATE uns OSMCONVERT installiert wie im WIKI beschrieben aber bekomme folgende Fehlermeldung

root@rs204837:~/planet# time ../../osmupdate -v planet-latest.osm.pbf new-planet-latest.osm.pbf --planet-url=http://planet.openstreetmap.org/redaction-period/
osmupdate Parameter: planet-latest.osm.pbf
osmupdate Parameter: new-planet-latest.osm.pbf
osmupdate Parameter: --planet-url=http://planet.openstreetmap.org/redaction-period/
osmupdate Error: Please install program osmconvert first.

Hi,
Ist osmconvert im Suchpfad?

ok scheint zu laufen :slight_smile:

Allerdings noch eine Verständnisfrage das OSM Update speilt mir ja nur die Diffs in mein bestehendes Planet File wie bekomme ich die Diffs nun in die DB um daraus Tiles zu geneieren ?

Je nach Geschmack und Anwendung entweder mit osmosis oder mit osm2pgsql. Für reines Rendern von Kacheln ist letzteres beliebter.

gibt es bei Osm2pgsql einen parameter für DIff ? Der würde mir doch mein besthenden Planet dann überbüglen und ich bruache wieder 1 Woche bis alles drin ist.

Osmosis habe ich auch schon dran gedacht aber das macht m.e nur sin bei minutlichen Updates für “ab un zu Updates” scheint mir das nicht wirklich hilfreich da ich das Replication LAG mit Osmosis nie aufholne kann wenn ich mal mehrere tage hinterher bin.

Ja. Da stehts für minütliche Updates drin, man kann aber auch stündliche oder tägliche machen. Das heisst auch nicht, dass der Rechner jede Minute am Netz hängen muss, man kann auch mal ein paar Updatezyklen zusammenkommen lassen.

Das Problem hast Du immer, falls Deine DB langsamer updatet als OSM liefert, egal ob osmosis oder osm2pgsql. Bei gängigen Rechnern passiert das aber eher nicht. Bei ein paar Wochen Lag ist natürlich neu importieren sinnvoller als massig Diffs nachziehen…

Grüße, Max

Du hast die Möglichkeit nach dem OSMconvert dir die Sachen zusammengeschrieben hat, auch dein persönliches Diff zu erzeugen, wenn du dir zuvor eine Kopie deines letzten Imports aufgehoben hast.
Ansonsten solltest du mal hier schauen: http://wiki.openstreetmap.org/wiki/DE:HowTo_minutely_hstore ist allerdings schon etwas älter.

Ok ich glaube OSMOSIS ist die richtige Wahl, habe das Package soeben installiert bekomme jedoch noch eine Jave Null Pointer Exception

SEVERE: Thread for task 1-read-replication-interval failed
java.lang.NullPointerException
        at org.openstreetmap.osmosis.core.time.DateParser.isDateInShortStandardFormat(DateParser.java:53)Jul 18, 2013 2:23:46 PM org.openstreetmap.osmosis.c$
INFO: Osmosis Version 0.40.1
Jul 18, 2013 2:23:47 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Preparing pipeline.
Jul 18, 2013 2:23:47 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Launching pipeline execution.
Jul 18, 2013 2:23:47 PM org.openstreetmap.osmosis.core.Osmosis run
INFO: Pipeline executing, waiting for completion.
Jul 18, 2013 2:23:47 PM org.openstreetmap.osmosis.core.pipeline.common.ActiveTaskManager waitForCompletion
SEVERE: Thread for task 1-read-replication-interval failed
java.lang.NullPointerException
        at org.openstreetmap.osmosis.core.time.DateParser.isDateInShortStandardFormat(DateParser.java:53)
        at org.openstreetmap.osmosis.core.time.DateParser.parse(DateParser.java:258)
        at org.openstreetmap.osmosis.replication.common.ReplicationState.<init>(ReplicationState.java:70)
        at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.runImpl(BaseReplicationDownloader.java:276)
        at org.openstreetmap.osmosis.replication.v0_6.BaseReplicationDownloader.run(BaseReplicationDownloader.java:349)
        at java.lang.Thread.run(Thread.java:679)
Jul 18, 2013 2:23:47 PM org.openstreetmap.osmosis.core.Osmosis main
SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed.
        at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146)
        at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92)
        at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:328)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:408)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:351)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:31)

Welches Programm du benötigst hängt davon ab womit du deine Datenbank bisher gefüllt hast. Wenn du nämlich deine Datenbank mit osm2pgsql aufgesetzt hast, kann osmosis gar nicht die Spalten/tabellen füllen die du brauchst. Andersrum wird es osm2pgsql nicht gelingen Daten zu aktualisieren die nicht vorhanden sind.