Automatisierte Erzeugung poly-Files für [landuse=x] und anderes

Hallo zusammen.

Ich hätte gerne mal ein Problem.

Das aktuelle OSRM 5.11 (und wahrscheinlich alle Versionen vorher auch) routet Auto- und Fahrradfahrer und Fußgänger gnadenlos durch militärisches Gebiet, sofern die highways innerhalb nicht durch Zugangsbeschränkungen ausgeschlossen werden können.

Beispiel: https://www.openstreetmap.org/directions?engine=osrm_car&route=48.2113%2C11.5821%3B48.2090%2C11.5954#map=16/48.2098/11.5884

Einzige Zugangsbeschränkung access=no für die o.a. Route ist im Gate https://www.openstreetmap.org/node/1248612371 festgelegt, welches aber für das Routing durch die *:private praktisch wieder aufgehoben wird. In den OSRM-Profilen kann man das logisch nicht ändern, weil OSRM nicht weiss, dass dieser Weg durch “Sperrgebiet” geht. Davon abgesehen gibt es wahrscheinlich jede Menge militärische Gelände in OSM, denen an irgendeinem Zugang solche Beschränkungen fehlen.

Meine Idee ist nun, die highways innerhalb der “Sperrgebiete” vor der eigentlichen Verarbeitung durch osrm-extract zu entfernen:

  • .poly für alle landuse=military automatisiert erzeugen
  • mittels dieser erzeugten polys die innerhalb liegenden highways aus dem pbf rausfiltern

Mit welchen Tools (Ubuntu/Linux Kommandozeile only) kann man die .poly-Files für landuse:military erzeugen?
Wie wäre das weitere Vorgehen zum rausfltern der entsprechenden highways?
Kann das so überhaupt gehen oder gibts einfachere/schnellere/bessere Lösungen dafür?

OSRM 5.11 ist gesetzt, Dateiformat pbf auch, Routing ist für eine interne Anwendung - die Lösung wäre eventuell aber auch für das Routing mittels OSRM in OSM interessant - ich kann mir nicht vorstellen, dass das so gewollt ist für öffentliches Routing, Mapzen und Grashopper routen da auch nicht durch.

Anybody? Grüße,

Frank

Edit: Ist vielleicht nicht ganz so rübergekommen: Grundsätzlich sollen die *.private wie bisher zugänglich bleiben (Standardverhalten von OSRM), eben nur nicht in “Sperrgebieten”. Alle Wege innerhalb sollen überhaupt nicht routbar ein.

Und wie sollen wir dann andere davon überzeugen, dass wir alles mappen was da ist - auch wenn deren Benutzung nicht erlaubt ist?

Wenn es dir gelingt (oder gelänge), die Community von deinem Vorhaben zu überzeugen, hätte ich einen ganz einfachen Lösungweg für dich. Aber vorerst net.

Gruss
walter

Also ich hätte erst mal alle Wege innerhalb des Kasernengeländes mit access=private erfasst…

die haben nähmlich keine Zugangsbeschränkungen… ein ähnliches Problem haben wir in Südbrandenburg mit den Bergbaufolgelandschaften… Da sind auch weite Landstriche allgemein gesperrt (i.w.S. Bergsenkungsgebiete), wir haben leider nur keine lizenzrechtlich saubere Quelle, die Grenzen und damit auch die Zugangsbeschränkungen einzutragen und eine Erfassung OnTheGround ist hier extrem schwierig und zeitaufwendig, teilweise nicht machbar.

Bei Totalreservaten von NSG’s ist auch auch access=no|private angesagt.

Sven

Hmpf.

@Walter: Es geht um Routing. Ich dachte, es ist klar, dasss ich die Daten natürlich nicht aus OSM entfernen möchte, sondern lediglich lokal, damit ich meine lokale Routingmaschine mit Daten füttern kann, ohne Schüler durch Kasernen zu routen. Da brauch ich keine Community überzeugen, oder? Aber du darfst dein Wissen gerne für dich behalten - deine zur Schau gestellte Überheblichkeit geht mir grad gewaltig auf den Keks.

@Sven: Ja, das betrifft natürlich nicht nur Militärgelände. Aber ich hab grad absolut keine Lust mehr, mich in diesem Forum wegen diesem Problem auszutauschen.

Schönen Abend zusammen.

Warum? In meinen Augen sollten zunächst die betreffenen Wegeabschnitte korrekt erfasst werden… Natürlich sollte auch ein Node mit einem entsprechenden barrier-Tag ein Weiterrouting verhindern… auch wenn die Auswertung (noch) nicht soweit ist… trotzdem ist der Zugang allgemein zu den Wegen innerhalb des Kasernengeländes beschränkt… und diese Information fehlt eben an den Wegen…

Für mich ist das keine lokale, sondern eine gernerelle Geschichte.

Ach ja… Router ist nicht gleich Router…

BRouter meidet (korrekterweise) das Kasernengelände…

http://h2096617.stratoserver.net/brouter-web/#zoom=15&lat=48.20499&lon=11.58257&layer=OpenStreetMap&lonlats=11.583248,48.210733|11.595565,48.20881&nogos=&profile=car-test&alternativeidx=0&format=geojson

Sven

Hallo Frank,

Der extract-Befehl des Osmium-Tools unterstützt auch OSM-Polygone als Ausschneidepolygone. Das Tool sei dir empfohlen, weil es effizienter als osmconvert (mit O5M-Format) ist.

Das Osmium-Tool kann jedoch nur Ways verwerfen, die vollständig außerhalb des auszuschneidenden Bereichs liegen. Wenn du die Ways tatsächlich abschneiden möchtest, musst du dir unter Inspiration des Osmium-Tools selbst ein C+±Programm auf Basis der Osmium-Bibliothek schreiben, das eine PBF-Datei einliest, die Ways direkt wieder rausschreibt, die unverändert bleiben sollen, und die Ways korrigiert, die die Grenze schneiden. Wie das Erzeugen von OSM-Objekten mit der libosmium-Bibliothek geht, ist im Manual erklärt.

Bei weiteren Fragen zu Osmium sei dir die Dev-Mailingliste empfohlen, weil sich dort die Leute rumtreiben, die dir eher helfen können.

Hinweis: Im obigen Text ist mit Osmium stets die Version 2.x der Bibliothek gemeint (auch libosmium genannt).

Viele Grüße

Michael

dann bin ich mal etwas überheblich und stelle deine Aussage hier nochmals hin:

Dass bei mir bei dieser Aussage alle Alarmglocken klingeln, kann mir wohl niemand verübeln. Speziell weil dieses Handeln bereits mehrfach vorgekommen ist (natürlich nicht von dir).
Formuliere deine Fragen/Aussagen bitte so, dass man sie nicht missverstehen kann, dann regt sich auch niemand drüber auf.

ok, das Entfernen kritischer Wege aus bestimmten Routen ist eine ganz andere Sache.

Das gibt sich wieder :wink:

Mein technischer Tip: wähle das Sperrgebiet aus (entweder das beschreibende Polygon oder auch das Outer einer eventuellen Relation) - hauptsache geschlossener Ring.
Dann in JOSM “Auswählen/alles innerhalb” und schon hast du alles drinnen ausgewählt. muttu nur noch die Ways mit “Suchen, type:way” und dann " innerhalb der Auswahl suchen" filtern.
Brauchst du wirklich ein Poly-File, dann nur den Outer Ring auswählen, mit copy/paste in eine neue Ebene kopieren und diese dann als poly-File speichern.

Beide Methoden brauchen Plugins: 1. müsste utilsplugin2 sein und die 2. Methode den poly-Plugin

Gruss
walter

Vielen Dank an alle Beteiligten (auch die, die per PM geantwortet haben), die sich des Problems angenommen haben.

Netzwolf hat mir ein schönes Ausschneide-Poly erstellt und zukommen lassen, mit dem (fast) alles innerhalb militärischer Gebiete (landuse=military) aus dem vorhandenen pfb mittels Standard osmium-Aufruf entfernt wird.

Fast heisst, dass Objekte, die nicht komplett innerhalb dieser Areas liegen, nicht entfernt werden, wie nakaner schon schrieb. Nunja, da muß ich mich wohl oder übel tatsächlich damit beschäftigen.

Bzw. bin ich am testen, ob die osmium-strategy “simple” statt default “complete_ways” das von mir gewünschte Ergebnis zumindest annähernd erzielt. Für die KFZ-Profile hab ich auf den ersten Blick schon mal sehr gute Ergebnisse bekommen.

Grüße, Frank

Tja, und dieser Freund hier http://www.openstreetmap.org/way/31810873 ist dann nicht mehr im Routing drin.
Edit: ah, Glück gehabt, das Ding ragt im Osten noch raus… Hoffen wir mal, dass der Way nie gesplittet wird. :slight_smile:

Baumholder… Netter Truppenübungsplatz.

Ja, ich sehe ein, das die Idee des stumpfen Rausstanzen nicht zielführend ist - gerade dein Beispiel zeigt das. Ich lass das Thema mal ein paar Tage ruhen, vielleicht fällt mir was anderes ein…

Vielleicht einfach alle höherklassigen Straßen (>= tertiary oder mit ref) drinlassen?
Alternativ könnte man an dem Beispiel auch hinterfragen, ob die Straße wirklich “innerhalb” des Sperrgebietes verläuft. Dann sollte jemand die Außengrenze des Gebietes korrigieren.

Es gibt übrigens auch Truppenübungsplätze die man außerhalb der Übungszeiten offiziell betreten darf. Aber ob so etwas vom einem Router berücksichtigt werden sollte?