Osmosis - nur bestimmte Daten

Hallo,
ich möchte gerne aus einer Deutschlanddatei alle TMC-Strecken/Punkte mit osmosis herausfiltern. Das Problem, das ich habe, besteht darin, dass manche Informationen in Relations gespeichert sind. Nur die Relations herauszufiltern ist kein Problem. Aber wie komme ich an die dazugehörigen Nodes und Ways und diese wiederum mit ihren entsprechenden Nodes? Kennt da jemand einen passenden Ansatz?

Schon mal vielen Dank für Eure Mühe.

willkommen support98 :slight_smile:

da musst du denke ich den “–tag-filter” nutzen und für deine Relation etwas einbauen. Bedenke, dass andere Filter evtl. deine Relationen schon vorher rausschmeißen! Ich bin auch nicht ganz sicher, wie sich das mit der Performace verhält, da er da IMHO mehr im RAM halten muss.

Das geht nur mit rel2gpx,sofern du die ID der relation hast:
http://mr-unseld.de/?q=de/node/170

Neben der GPX-Datei wird auch eine osm-Datei erzeugt.

gruß,
ajoessen

geht das halbwegs automatisch? das sind ja tausende relationen mit noch mehr ways und nodes.

Ja, du kannst alle Relations-IDs in eine Textdatei schreiben, und alle in einem Rutsch extrahieren lassen.

Gruß,
ajoessen

Danke, das kannte ich auch noch nicht, habe mal ne Wiki Seite angelegt

muss man das Programm verstehen? wo gibt man da was ein?

Das ist ein Perl-Programm. Dazu musst du dir Active Perl installieren, und die im Text erwähnten Zusatzmodule.

Dann erstellst du dir ne Batch nach folgendem Muster:
rel2gpx.pl -i D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm -f linerel.txt -g -z

wobei die relations-IDs in der datei linerel.txt im gleichen Verzeichnis stehen.

Sofern du unter Windows arbeitest: Da muss man noch an der osm.pm rumschrauben. Linux und Windows verhalten sich da unterschiedlich, was das Öffnen von Dateien (binär oder nicht) betrifft. Leider kann ich das erst morgen klären :frowning:

Gruß,
ajoessen

Eine weiter Alternative, wenns einfach nur ums Filtern geht:
http://wiki.openstreetmap.org/wiki/DE:Osmfilter

… sofern man Linux hat, ja.

gruß,
ajoessen

Naja, das Programm liegt im Quellcode als einzelne handliche Datei vor und kann auf sehr vielen Plattform übersetzt werden.

Aber du hast Recht, unter Windows sind die meisten User gewohnt, Software fertig zubereitet als EXE zum Download vorzufinden. Ging mir früher zu Windows-Zeiten auch so. :slight_smile:
Ich kümmer mich mal um eine Binary für Windows - wie es sich gehört.

Ja, das wäre schön. Am besten gleich mit pbf-Support.

Die Fähigkeit, selber zu Kompilieren ist nun mal nicht allen Nutzern gegeben. Mapper sind ja nicht unbedingt Programmierer.

Gruß,
ajoessen

Der Vollständigkeit halber:

In ActivePerl werden Dateien standardmäßig im Textmodus geöffnet, nicht im Binärmodus wie unter Linux. Fügt man in osm.pm hinter

open ($file, “<”, $fileName) || die “can’t open osm file” ;

die Zeile

binmode ($file);

ein, dann funktioniert es.

Gruß,
ajoessen

Die Sinnhaftigkeit des PBF-Formats hat mich noch nicht überzeugt. Von all den vielen Zielen, die PBF am Anfang hatte, sind in der Praxis nur die kleineren Dateigrößen übrig geblieben. Doch wenn man das als Ziel ansetzt, gäbe es Formate, die dafür besser geeignet wären. Ich will aber die Diskussion darüber nicht in diesen Thread hängen, denn dort da sie nicht hin. :slight_smile:
Unabhängig davon will ich eine PBF-Input-Möglichkeit für osmfilter nicht ausschließen, vielleicht kommts irgendwann doch. Bis dahin kann ich nur empfehlen, das Programm osm2pbf zu verwenden - oder gleich die .osm.bz2-Datei runterzuladen.

Du hast ja völlig Recht. :slight_smile:
Habs grad unter Linux für Windows übersetzt, ist ja kein Problem.
Download: http://wiki.openstreetmap.org/wiki/DE:Osmfilter#Download

Die Verarbeitung in osmosis geht um einiges schneller als .osm oder .osm.bz2. Wenn das erst mal in deinem Porgramm eingebaut ist, wirst du nichts anderes mehr nutzen wollen :wink:

Gruß,
ajoessen

ja die Geschwindigkeit sehe ich auch als einen großen Vorteil. Ich arbeite für mein Projekt mit einer Kartenregion, die grenzüberschreitend ist und nur mit dem pbf Format bekomme ich da die anstehenden Arbeiten mit einem Durchschnittsrechner noch in akzeptabler Zeit erledigt.