You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
Pages: 1
#1 2016-12-14 14:47:59
- liebefrau
- Member
- Registered: 2016-12-14
- Posts: 3
Datensatz ausgeben lassen
Hallo liebe OSM Gemeinde,
wie kann man sich einen Datensatz für ganz Deutschland vollständig in einer Datei ausgeben lassen?
Beispiel: amenity = bar
Sieht in overpass-turbo.eu bei mir so aus:
[out:json][timeout:500];
// gather results
(
// query part for: “amenity=bar”
node["amenity"="bar"]({{bbox}});
way["amenity"="bar"]({{bbox}});
relation["amenity"="bar"]({{bbox}});
);
// print results
out body;
>;
out skel qt;Leider sind die Datensätze zu groß und es wird ein Timeout erzeugt.
Welche Möglichkeiten stehen mir offen? Gibt es ein anderes Tool mit dem ich die Daten direkt in eine Datei schreiben könnte?
Eine geordnete Liste würde schon reichen.
Beispiel:
ID | Name | Adresse
1 | Bla | Blastr. 2
2 | Blub | Blubstr. 3
Viele Grüße
Offline
#2 2016-12-14 17:55:44
- wambacher
- Member

- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Datensatz ausgeben lassen
Hi, und erstmal herzlich willkommen im Forum.
Leider sind die Datensätze zu groß und es wird ein Timeout erzeugt.
Das ist absolut nachvollziehbar.
Zuerst "sagst" du Overpass nicht, dass du nur Daten aus Deutschland haben willst und wenn du das machen würdest, wären das immer noch viel zu viele Daten. Dafür ist die Overpass nicht geeignet.
Ich empfehle dir die Extrakte der Geofabrik, die du herunterladen kannst: http://download.geofabrik.de/
Die Daten von Deutschland sind da übrigens 2.9 GB komprimiert und wohl das 10-fache entpackt gross.
Es wäre nett, zu wissen was du eigentlich machen willst. Dann könnnen wir dir gezielter helfen.
Gruss
walter
Offline
#3 2016-12-14 17:58:37
- Harald Hartmann
- Member

- From: 98667 Schönbrunn
- Registered: 2014-04-02
- Posts: 3,123
- Website
Re: Datensatz ausgeben lassen
Welche Möglichkeiten stehen mir offen? Gibt es ein anderes Tool mit dem ich die Daten direkt in eine Datei schreiben könnte?
z.B. osmfilter
Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD
Offline
#4 2016-12-14 22:23:18
- liebefrau
- Member
- Registered: 2016-12-14
- Posts: 3
Re: Datensatz ausgeben lassen
Vielen Dank für eure Antworten.
Also mein Ziel wäre es eine Tabelle mit Name und Strasse einer bestimmten amenity zu erhalten, als Beispiel wäre es hier amenity = bar.
Den Datensatz habe ich mir heruntergeladen und osmfilter auch, leider noch nicht wirklich den Befehl herausgefunden wie ich es anwenden kann.
Kann ich mir aussuchen welches Format ich als Output bekomme? json, xml oder sql wären mir lieb ![]()
Offline
#5 2016-12-15 00:53:44
- projecter63
- Member
- Registered: 2011-07-07
- Posts: 77
Re: Datensatz ausgeben lassen
N'Abend,
zur grafischen Anzeige via overpass-turbo etwa so: http://overpass-turbo.eu/s/kEQ; das liefert dann das json-Format ...
Für ["amenity"="bar"] zeigt die Abfrage derzeit in Deutschland ca. 8.275 nodes und knapp 500 ways bei einer auf max. 100 s erhöhten Rechenzeitzuweisung. Diese Abfrage allerdings bitte NUR für die "gelegentliche Anwendung" und NICHT für den Einbau in einer App mit einer Vielzahl identischer Abfragen täglich verwenden ...
Für die Ausgabe im xml-Format kannst Du z.B. die automatische Reparatur nutzen (--> Export --> JOSM --> Abfrage reparieren) und 'schwupp': zwei Zeilen werden geändert und kommentiert - die Änderungen sind so leicht nachvollziehbar ...
Für die Ausgabe der gewünschten Tabelle kannst Du folgende Abfrage nutzen: http://overpass-turbo.eu/s/kFc - hier als Ausgabe im csv-Format. Wenn Du einzelne Spalten nicht brauchst, dann diese einfach aus dem Header werfen - genau so leicht lassen sich auch weitere Spalten mit anderen tags einfügen ...
Grüße Rainer
Offline
#6 2016-12-15 07:14:43
- fx99
- Member
- From: Baden-Württemberg
- Registered: 2009-06-02
- Posts: 1,930
Re: Datensatz ausgeben lassen
set STATE=germany
set KEY=amenity
set VALUE=bar
set WGETPATH=
%WGETPATH%\wget.exe http://download.geofabrik.de/north-america/canada/%STATE%-latest.osm.pbf
osmconvert64.exe %STATE%-latest.osm.pbf -o=%STATE%.o5m
osmfilter %STATE%.o5m --keep="%KEY%=%VALUE%" --drop-version --drop-author >%STATE%_%VALUE%.osm
pauseMit oben stehender Windows Kommandosequenz erhälst Du alle amenity=bar in Deutschland als OSM XML Datei.
Du musst nur noch Deinen Pfad zu wget eintragen.
Wenn Du statt Germany ein kleines Bundesland einträgst, lässt sich das Ganze schneller testen.
Offline
#7 2016-12-15 07:55:38
- Harald Hartmann
- Member

- From: 98667 Schönbrunn
- Registered: 2014-04-02
- Posts: 3,123
- Website
Re: Datensatz ausgeben lassen
north-america/kanada müsste aus dem Pfad noch raus, bzw. durch europe ersetzt werden.
Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD
Offline
#8 2016-12-15 09:27:58
- chris66
- Member

- From: Germany
- Registered: 2009-05-24
- Posts: 10,128
Re: Datensatz ausgeben lassen
und osmfilter auch, leider noch nicht wirklich den Befehl herausgefunden wie ich es anwenden kann.
Kann ich mir aussuchen welches Format ich als Output bekomme? json, xml oder sql wären mir lieb
osmfilter liefert primär im osm Format, was nichts anders als xml ist.
Mapper aus dem Münsterland.
Offline
#9 2016-12-15 15:29:25
- liebefrau
- Member
- Registered: 2016-12-14
- Posts: 3
Re: Datensatz ausgeben lassen
set STATE=germany set KEY=amenity set VALUE=bar set WGETPATH= %WGETPATH%\wget.exe http://download.geofabrik.de/north-america/canada/%STATE%-latest.osm.pbf osmconvert64.exe %STATE%-latest.osm.pbf -o=%STATE%.o5m osmfilter %STATE%.o5m --keep="%KEY%=%VALUE%" --drop-version --drop-author >%STATE%_%VALUE%.osm pauseMit oben stehender Windows Kommandosequenz erhälst Du alle amenity=bar in Deutschland als OSM XML Datei.
Du musst nur noch Deinen Pfad zu wget eintragen.
Wenn Du statt Germany ein kleines Bundesland einträgst, lässt sich das Ganze schneller testen.
Cool Danke ![]()
WGETPATH muss einfach nur der Path für die wget exe rein oder?
Wie sieht der Code denn in Linux aus? Sollte doch eigentlich kaum ein unterschied sein oder?
Ich bekomme auf Linux leider den osmfilter nicht zum laufen
Danke auch an projecter63,
habe die amenity durch restaurant ersetzt und dann geht er leider in die Knie.
Offline
#10 2016-12-15 17:19:15
- chris66
- Member

- From: Germany
- Registered: 2009-05-24
- Posts: 10,128
Re: Datensatz ausgeben lassen
Wie sieht der Code denn in Linux aus? Sollte doch eigentlich kaum ein unterschied sein oder?
Ja, unter Linux sollte es sehr ähnlich aussehen.
Mapper aus dem Münsterland.
Offline
#11 2016-12-15 17:42:03
- fx99
- Member
- From: Baden-Württemberg
- Registered: 2009-06-02
- Posts: 1,930
Re: Datensatz ausgeben lassen
Wie sieht der Code denn in Linux aus? Sollte doch eigentlich kaum ein unterschied sein oder?
Ich bekomme auf Linux leider den osmfilter nicht zum laufen
%...% durch ${...} ersetzen, dann sollte das im wesentlichen auch unter UNIX laufen.
Hast Du das LINUX Binaray von osmfilter heruntergeladen?
Offline
#12 2016-12-15 20:04:52
- Marqqs
- Member
- Registered: 2011-01-01
- Posts: 724
Re: Datensatz ausgeben lassen
Ich bekomme auf Linux leider den osmfilter nicht zum laufen
Probier mal:
sudo apt-get install osmctoolsUnd dann:
osmconvert germany.pbf -o=germany.o5m
osmfilter germany.o5m --keep="amenity=bar" --ignore-dependencies -o=bar.osmoder, falls die CSV lieber ist:
osmconvert germany.pbf -o=germany.o5m
osmfilter germany.o5m --keep="amenity=bar" --ignore-dependencies -o=bar.o5m
osmconvert bar.o5m --csv="name addr:city addr:street addr:housenumber" -o=bar.csvHab die Kommandos jetzt nicht ausprobiert, ich hoffe einfach, dass sie irgendwie funktionieren. ;-)
Näheres hier:
https://wiki.openstreetmap.org/wiki/DE:osmconvert
https://wiki.openstreetmap.org/wiki/DE:osmfilter
Offline
#13 2016-12-15 20:10:03
- Marqqs
- Member
- Registered: 2011-01-01
- Posts: 724
Re: Datensatz ausgeben lassen
Nachtrag:
Vorher müsstest du natürlich die Deutschland-Datei von Geofabrik herunterladen, aber das hat Walter ja schon empfohlen.
wget http://download.geofabrik.de/europe/germany-latest.osm.pbf -O germany.pbfOffline
#14 2016-12-15 20:39:21
- chris66
- Member

- From: Germany
- Registered: 2009-05-24
- Posts: 10,128
Re: Datensatz ausgeben lassen
Und die all-to-nodes Option könnte noch hilfreich sein zur Umwandlung von Flächen-POIs in richtige Punkte (nodes). ![]()
Mapper aus dem Münsterland.
Offline
#15 2016-12-16 15:19:11
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: Datensatz ausgeben lassen
habe die amenity durch restaurant ersetzt und dann geht er leider in die Knie.
Könnte evtl. daran liegen, dass der Browser beim Anzeigen der Ergebnisse etwas überfordert ist. Mit >50MB Ergebnis bietet es sich an, das Ergebnis stattdessen über Export -> ""Rohdaten direkt von Overpass API" als File abzulegen.
Alternativ: http://overpass-turbo.eu/s/kHp liefert nach ein paar Minuten alle Restaurant in .de im PBF Format. Auch hierfür auf "Export" -> "Rohdaten direkt von Overpass API" klicken. Das sollte ein 7.8 MB großes PBF liefern.
Last edited by mmd (2016-12-16 15:19:47)
Offline
Pages: 1