Tool zum Ids in OSM-Dateien neu nummerieren

Gibt es ein Tool, mit dem man die IDs der nodes/ways/relations in OSM-Dateien von 1 beginnend neu durchnummerieren kann?

Also aus

<node id="17"...
<node id="300"...
<way id="27"...
  <nd ref="17"...
  <nd ref="300"...

soll

<node id="1"...
<node id="2"...
<way id="1"...
  <nd ref="1"...
  <nd ref="2"...

werden.

Hintergrund: Diverse osmium-Befehle geben bei meinem Rechner derzeit den Geist auf, weil die 4GB Hauptspeicher für die immer größer werdenden IDs nicht mehr ausreichen. Insbesondere tags-filter. Da ich die IDs letztendlich nicht brauche, könnte man mit so einem Renumber-Programm osmium wieder nutzen ohne auf andere Programme umsteigen zu müssen. (Man könnte natürlich auch dem Rechner mehr RAM spendieren, aber das möchte ich derzeit nicht.)

Meinst du sowas wie osmium-renumber?

Ja, genau. Da hätte man auch selber drauf kommen können… Sieht auch so aus, als hätte das Tool das Problem mit dem RAM nicht… :slight_smile:

Leider doch auch: Wendet man es auf ganz Deutschland an, krascht es ebenfalls nach etwa 40% des Fortschritts… :slightly_frowning_face:

Vielleicht hat ja @Jochen_Topf eine Idee.

Osmium ist mit einem Fokus auf kurze Laufzeit geschrieben. Daher sind 4 GB für Deutschland zu wenig. Man müsste das osmium-renumber so umschreiben, dass es seinen Cache auf die Festplatte/SSD ablegt. Gerade im Fall von Festplatte, aber auch bei SSDs wird das zu heftig(sten) bzw. starken Geschwindigkeitseinbußen führen. Kauf dir halt mehr RAM oder miete dir irgendwo einen (virtuellen) Server in der Cloud und sei nicht so geizig.

Mir ist klar, dass osmium den Fokus auf kurze Laufzeit bei genügend RAM gesetzt hat. Ich hätte das an Jochens Stelle vermutlich genauso gemacht. Wenn man täglich mit riesigen Datenmengen umgehen muss und Rechner mit Hauptspeicher im Terrabyte-Bereich zur Verfügung hat, ist das genau das richtige. Und dass er diese Programme mit uns teilt ist klasse. Keine Frage, Jochen hat (nicht nur) da super Arbeit geleistet.

Mit Geiz hat das nichts zu tun. Es ist eher meine Lebensphilosophie, mit dem auszukommen, was da ist. Man verbrät ja schon auch Ressourcen, wenn man immer wieder neues kauft, nur weil das, was man hat, gerade nicht ideal ist. Und mit meinem Computer bin ich bislang sehr zufrieden, auch wenn er halt nur 4 GB hat.

Lange Zeit hatte osmium auf meinem Rechner gut funktioniert, jetzt geht es halt so peu a peu nicht mehr. Und anders, als Jochen, habe ich die Zeit um Daten auch mal auf Festplatte auszulagern. Statt osmium extract, was sich schon vor einiger Zeit verabschiedet hat, verwende ich seither osmconvert. Das ließ sich gut ersetzen. Für tags-filter habe ich bislang keine Alternative gefunden und dachte, mit einem Renumber wäre osmium noch verwendbar. Aber renumber scheint problematischer zu sein, als tags-filter. Dann muss ich da halt nach einer anderen Lösung suchen, was evtl. heißt, dass ich tags-filter nochmal selber schreibe, wobei die überschüssigen node-ids in einer Festplattendatei gespeichert werden. Mal sehen.

PS: Beim Implementieren bin ich über osmfilter gestolpert… Das ist im Wesentlichen das, was ich brauche. :slight_smile: