Neben Osmosis bietet u.a. das Programm http://wiki.openstreetmap.org/wiki/Osmfilter die einfache Möglichkeit, aus einer originären OSM-Datei für ein bestimmtes Gebiet ganz bestimmte Elemente herauszufiltern.
So kann man beispielsweise aus Datenextrakten für ganze Bundesländer oder gar ganze Staaten (herunterladbar von geofabrik.de oder cloudmade.com etc.) nur jene Elemente belassen, die man sich mal näher anschauen möchte.
(Zwar kann man bestimmte OSM-Elemente auch aus einer Datenbank abfragen, aber hier soll gezeigt werden, wie es ohne geht.)
Die Ergebnisdateien schrumpfen unter Umständen so weit zusammen, dass man die verbliebenen Daten auch in JOSM oder Merkaartor laden kann. Hier gewinnt man dann eine Überblick über Art, Anordnung und Verteilung der gefilterten Objekte.
Anhand von einigen Beispielen und Arbeitsschritten soll dies gezeigt werden:
OSM-Rohdaten von einem bestimmten Gebiet laden und entpacken. (osmfilter kann derzeit noch keine PBF-Dateien verarbeiten, deshalb bitte dan gepackte osm-Dateien wählen oder vorhandene pbf umwandeln in osm.)
aktuellste osmfilter-Version von der o.g. Wikiseite laden.
Aufrufen von osmfilter über die Kommandozeile. Linux-Nutzer dürften wissen wie das geht, für wißbegierige Windows-Nutzer z.B. unter XP: Start-Menü wählen → Ausführen … → cmd → dann mittels “cd”-Kommando zum Pfad wechseln, wo osmfilter.exe und die osm-Datei liegt.
Aufruf des Programms wie folgt: osmfilter -v quell.osm --drop-history —drop-author --keep=“boundary=administrative” >ergebnis.osm
Eine osm-Datei mit allen Elementen, welche irgendwo ein Merkmal boundary=administrative haben, sollte nun erstellt worden sein. Auch mal die Dateigröße beachten.
Laden dieser lokalen Datei in JOSM, dazu das Anzeigefenster “Liste aller Relationen” (graues Zahnrad am linken Rand) öffnen.
Diese Liste kann man nun nach Belieben durchforsten.
Dabei fielen mir z.B. in Niedersachsen folgende Relationen auf:
Dransfeld: 1399074 und 1401831
Schladen: 1432663 und 1432653
Suderburg: 1460233 und 1460236
Velpke: 1446655 und 1446631
Es sind stets eine größere und eine kleinere Grenzrelation, welche aber BEIDE ein admin_level=8 haben. Das kann ja nicht so ganz stimmen. Müsste die größere Relation dann nicht admin_level=7 bekommen und im Namen angepasst werden? Ggf. Abgleich mit entsprechenden Artikeln zu den Gemeinden in Wikipedia?
Gibt es sowas auch in weiteren Bundesländern?
Wer hat weitere Ideen für Parameter via osmfilter?
z.B. --keep=“boundary=postal_code” oder --keep=“place=” oder --keep=“postal_code=” --keep=“amenity=fuel”
Ich würd gern aus eigenen Versuchen noch etwas beisteuern:
Fürs Filtern ist das Format “.o5m” deutlich besser geeignet als “.osm”. Vorschlag für den Download mit gleichzeitiger Format-Umwandlung (Linux):
Für Windows gibts das praktische Programm “wget” ebenfalls (z.B. hier: http://www.heise.de/software/download/wget/3073). Man kann also auch dort komplett über die Kommandozeile arbeiten. Natürlich kann man stattdessen auch die Datei bayern.osm.pbf per Browser runterladen und danach mit dem primitiven GUI von osmconvert ins .o5m-Format umwandeln (Doppelklick auf osmconvert).
So, nach allgemeinder Informationsgewinnung bei wikipedia und dem für uns nutzbaren Gemeindeverzeichnis von destatis.de sieht es so aus, dass es sich bei den oben genannten “doppelten” Relationen bei den jeweils größeren Gebieten um die entsprechenden Samtgemeinden handelt, welche dann auch gleichnamige Mitgliedsgemeinden haben.
Die kleineren Mitgliedsgemeinden haben aber alle einen eigenständigen amtl. Gemeindeschlüssel, somit ist bei denen auch admin_level=8 richtig.
Daraus folgert, dass bei den größeren Grenzrelationen nicht gleichzeitig auch admin_level=8 gesetzt sein darf, hier muss meiner Meinung nach =7 gesetzt werden.
Falls keine Gegenstimmen kommen, werde ich dies so für die Relationen
Dransfeld: 1401831
Schladen: 1432653
Suderburg: 1460236
Velpke: 1446631 ändern.
Frage für die weiteren Bundesländer in Dt.:
Gibt es weitere Relationen mit name= oder name_prefix=“Samtgemeinde” oder “Einheitsgemeinde” o.ä. UND dem admin_level=8 ???
… weiter gehts mit 4 reinen PLZ-Relationen (1457145, 1457144, 1457146, 1457143), an denen war auch admin_level=8 getaggt, obwohl es für die Gemeindegrenzen eigene Grenzrelationen mit admin_level= gab.
War auch relativ gut zu sehen in der Relationsliste von JOSM.
Hätte ja nicht gedacht, dass es in den Grenzrelationen noch so viel aufzuräumen gibt … und ich hab “nur” Niedersachsen am Wickel …
Fehler in den Grenzrelationen kann man auch durch eine grafische Auswertung wie beim OSM-Inspector bekommen.
Dabei störten mich bei den bisher bekannten Online-Tools folgendes:
der OSM-Inspector von geofabrik.de kann zwar in der Ansicht “Boundaries” auch Grenzpolygone mit boundary=administrative darstellen, allerdings ohne “genauere” Wahlmöglichkeiten für adminlevel=5 und höher.
Eine eigene Darstelleung einer gefilterten OSM-Datei mittels z.B. Maperitive klappt zwar auch irgendwie, aber die Rules sind mir noch ein bisschen zu unverständlich.
Habe jetzt aber eine weitere Möglichkeit gefunden, generell OSM-Daten nach eigenen Regeln (auch für größere Gebiete!) zu rendern, ohne größere Klimmzüge zu machen:
Niedersachsen-Extrakt von der Geofabrik herunterladen,
mittels Osmfilter (siehe oben im Thread) --keep=“boundary=administrative” Daten auf das wesentliche schrumpfen,
den Regelsatz aus dem Wiki als Textdatei lokal abspeichern,
in JOSM bei der Einstellung zum Mappaint Style diese Textdatei laden und dann nur diesen Stil im zu aktivierenden Auswahlmenü wählen.
In dem Beispielbild zeigen die wenigen dunkelblauen Gebiete demnach Fehler in den Relationen an, da sich gleichwertige Daten überlagern.
Aus lauter Langeweile hab ich ja doch mal versucht, die gesamte Germany.osm.pbf von einem Geofabrik.de-Mirror zu laden und via osmfilter nur das zu behalten, was
boundary=administrative UND ( admin_level=6 ODER admin_level=7 ODER admin_level=8 ) ist …
… die Ergebnisdatei ist als reines OSM-XML immerhin über 152Megabytes groß.
Trotzdem ist es dann auf einigermaßen tauglichen PCs möglich, diese Datei in JOSM reinzuladen, allerdings erst nach entsprechender Speicherzuweisung via -Xmx1500M Parameter beim JOSM-Aufruf.
Vorher hab ich in JOSM die MapCSS-Vorlage aus dem oben genannten Wiki-Artikel eingebunden und ausgewählt.
Bei Erfolg sieht man dann die gesamte Bundesrepublik nach Landkreisen, Samtgemeinden und Einzelgemeinden. Zoomen und Ziehen der Karte in JOSM ist natürlich etwas zäh, also immer etwas Geduld haben. Und wegen der transparenten Färbung der Gebiete lassen sich dann doch vereinzelt ein paar logische Mappingfehler erkennen.
z.B. folgende Relationen mit entsprechender ID:
Miesterhorst 1285603 versus Gardelegen 1285598 vs Hottendorf 1285620
Nach Recherche in Wikipedia gab es wohl in 2011 eine Eingemeindung vom Miesterhorst und Hottendorf nach Gardelegen!
Wie sollte man hier die OSM-Daten berichtigen? admin_level auf 9 und den AGS löschen?