Dafür reicht wahrscheinlich sogar 1 GB Hauptspeicher, ohne dass es deswegen langsamer läuft.
Trotzdem ist der Weg mit der Overpass-API wirklich bequem. Weiß aber nicht, wie lange dort die Abfrage der ganzen Liste dauert.
Die osmconvert-Zeile lässt sich noch verkürzen:
–drop-author ist in --drop-version schon drin.
–hash-memory ist vermutlich nicht notwendig, so hohe Objekt-IDs gibt es bei der Input-Datei noch nicht.
–emulate-osmosis hat nur bei XML-Ausgabe-Format Auswirkungen.
–out-o5m ist überflüssig, wenn man -o= verwendet.
Beispiel:
osmconvert --drop-version --max-objects=1000000000 --all-to-nodes germany.osm.pbf -o=germany-Z.o5m
Die osmfilter-Zeile könnte man ein bisschen verkürzen, weil es ja sowieso nur Node-Objekte gibt. Einen Vorteil hat das aber nicht.
Was aber eher ungünstig ist: die defaultmäßig auf XML eingestellte Ausgabe wird umgeleitet in eine Datei, die mit o5m endet. In dieser Datei landen dann aber vermutlich .osm-formatierte Daten, also als XML. osmfilter hat keine Chance, den Dateinamen des Ziels zu erfahren und sich entsprechend anzupassen. Besser wäre es, auch hier -o= zu verwenden:
osmfilter --keep="amenity=restaurant" germany-Z.o5m -o=germany-R.o5m
osmconvert germany-R.o5m --csv-separator="," --csv="@id @lon @lat name cuisine addr:city addr:postcode addr:street addr:housenumber phone email website contact:phone contact:email contact:website" --csv-headline -o=restauant.csv
Bitte nicht als Genörgel verstehen! Ich wunder mich eh immer, wie gut du dich mit diesen Programmen auskennst und wie leicht du solche Toolchains zusammenbaust.
Schönen Abend
Markus