osmfilter 1.2 released. Neu: and, or, =, !=, <, >, <=, >=, Klammern

Die ehemals in Nürnberg ansässige Firma Dauer hat mal 962er mit 400 Stundenkilometer mit Straßenzulassung gebaut.
http://static.pagenstecher.de/uploads/4/47/475/4758/2307-307.jpg

Da Vmax proportional zur 3. Potenz der Leistung ist, wirst Du für 600 km/h schon einen Raketen"motor" (oder ähnliches) brauchen,
womit man wohl dann nicht mehr “durch den TÜV” kommt :wink:

Erwischt. Es lang an einer statischen Feldinitialisierung. Habs geändert in eine dynamische, nun ist die Datei wieder vernünftig klein.

EDIT:
Nun doch wieder als statische Initialisierung. Mir ist nämlich aufgefallen, dass der Compiler bei “” (Leerstring) unter Windows sinnvoll dynamisch initialisiert hat, unter Linux aber nicht. Mit {0} klappts unter beiden Betriebssystemen. Dabei müssten “” und {0} eigentlich gleich behandelt werden - jedenfalls, soweit ich das verstehe. Zusammenfassend: Für die übergroße Binary unter Linux ist der Compiler verantwortlich gewesen. Das Problem ist jetzt gelöst, und kellerma braucht nun doch keine externe Festplatte für sein Netbook. :wink:

Also, bei den dann notwendigen Beschleunigungswerten, um an der Toilette zu starten und dann rechtzeitig vorm Kinderspielplatz zum Stehen zu kommen, möchte ich nur ungern im Auto sitzen.

http://www.openstreetmap.org/browse/way/57818304

Für population funktiert die neue Funktion super, vielen Dank.

Bei Einheiten wäre es vermutlich notwendig, mit regular Expressions zu arbeiten.
Diese Funktion benötige ich jedoch eher bei mkgmap und im Moment weniger bei osmfilter.
Leider hat mkgmap einige Probleme mit Platzhaltern (* darf nicht in der obersten Ebene verwendet werden), hier ist osmfilter bereits deutlich weiter.

Habe ich das richtig verstanden, dass der Default-Operator OR ist und mit Angabe voll “all” auf AND geändert werden kann.
Neu hinzugekommen ist nun die Möglichkeit, OR bzw. AND auch explizit anzugeben, und damit den Default-Operator zu overrulen.

Walter

yep, seh’ ich auch so.
Man kann auch mischen, wie Markus zu Beginn des threads gezeigt hat
–keep=" ( … or … ) and ( … or … ) "

Richtig. Das mit dem “all” ist nur noch beim Tags-Filter relevant (–keep-tags). Beim Objektfilter (–keep) ist es ein Relikt, das aus Kompatibilitätsgründen trotzdem noch unterstützt wird. “all” sollte nicht mit dem neuen Syntax gemischt werden. Beispiel:

all highway=primary oneway=yes

funktioniert zwar noch, heute würde man aber schreiben:

highway=primary and oneway=yes

Auch richtig, aber beim Objekt-Filter ebenfalls ein Relikt ist, dass man “or” weglassen kann. Es ist zwar bis jetzt nicht zwingend notwendig, aber es erleichtert die Lesbarkeit, wenn man es dazu schreibt. Bitte dran denken, “and” geht vor “or” so wie “Punkt” vor “Strich”.

(EDIT: Mir ist grad aufgefallen, dass --help hier keine klare Aussage liefert, weil der alte Syntax ebenfalls beschrieben wird. Ich änder das.)

Zu den Klammern: die können beliebig verwendet und auch geschachtelt werden. Wichtig ist nur, sie immer mit einem Leerzeichen von allem Übrigen zu trennen.

Ein Tipp für die Performance:
osmfilter bricht die Auswertung immer dann ab, sobald das Ergebnis eindeutig ist. Wenn also im obigen Beispiel die untersuchte Straße eine “secondary” ist, wird gar nicht mehr geprüft, ob sie eine Einbahnstraße ist oder nicht, weil das Ergebnis der Prüfung ja schon feststeht. Für diejenigen, die mit Operatoren && und || unter Linux vertraut sind, ist das nichts Neues. Beispiel:

name=Ohmstraße and highway=residential

läuft etwas schneller durch als

highway=residential and name=Ohmstraße

weil es deutlich mehr residentials als Ohmstraßen gibt.
Das ist aber nur für die Leute wichtig, die wirklich das Letzte rausholen wollen oder extrem große Datenmengen verarbeiten müssen.

Generelle Frage:
Sind bei euren Tests noch Fehler aufgetreten, oder kann ich es wagen, die Testversion als reguläre Version online zu stellen?

Meinen Segen hast Du :wink:

Danke. :slight_smile:
Somit erledigt. Wiki hab ich auch ein bisschen überarbeitet.

Danke euch allen für die Vorschläge und Tests!

kann man irgendwie nach Values suchen, die Sonderzeichen bspw ein Leerzeichen beinhalten oder gar ein * sind?
Bspw das geht nicht
/usr/local/bin/osmfilter64 german.o5m --keep=“highway=footway; cycleway” >dirty1_highways.osm
so auch nicht
/usr/local/bin/osmfilter64 german.o5m --keep=“highway=‘footway; cycleway’” >dirty1_highways.osm

Hi Thomas

versuche es mal mit /usr/local/bin/osmfilter64 german.o5m --keep=“highway=footway;\ cycleway” >dirty1_highways.osm

also mit \ vor dem Blank

ohne Gewähr aber ein Test sollte ja schnell gehen.

Gruss
walter

Oh please, have a nice look at the even nicer wiki:

BTW
I even know the creator of that particular example :wink:

Toll, aber manche Sachen kenn ich auch, ohne ins wiki zu schauen. :wink:
Gruss
Walter