How can I export only Autobahn and Bundestraßen in OSM Germany

Mal als kleiner Zwischenstand. Ich habe die Route verfolgt und konnte feststellen das wie man im Bild sehen kann bis zu den Grünen Kreuzen die Routen wunderbar funktionieren. Sobald aber einer der roten Kreuze der naheste Node ist schlagen die Routen fehl.

Das erste was mir aufgefallen ist war das v.clean die Attribut länge auf 255 begrenzt hat und weil other_tags teilweise länger ist wurde das abgeschnitten, das hab ich aber gefixed und leider sind die Knoten immer noch nicht nutzbar. Ich habe die Attribut tabelle durchgeschaut und konnte keine nennenswerten Unterschiede feststellen. Ich verstehe leider nicht warum die Knoten die in diesem Fall sogar auf der selben Linie liegen nur zur hälfte befahrbar sind :confused:

es gibt in den Daten weltweit keinerlei highway=roundabout und 58k =mini_roundabout von denen aber nur 0 als ways gemappt sind: Search results | OpenStreetMap Taginfo

Tritt der Fehler auch auf wenn du nur genau diese Linie geladen hast?

Kann einer der OSM-Routing-Experten dazu was sagen, ob es eventuell besser ist, mit osmfilter und osmconvert zu arbeiten? @woodpeck

Ich experimentiere grade ein bisschen.

  1. Diese Overpass Turbo-Abfrage: overpass turbo nehmen, Daten als GeoJSON exportieren
  2. Dann mit dem Tool “Network Analysis - Shortest Path point to point” und diesen Parametern:

{ 'DEFAULT_DIRECTION' : 2, 'DEFAULT_SPEED' : 50, 'DIRECTION_FIELD' : '', 'END_POINT' : '1537041.938479,6889073.855695 [EPSG:3857]', 'INPUT' : 'C:/........./osm-strassen-berlin-forum.geojson', 'OUTPUT' : 'TEMPORARY_OUTPUT', 'POINT_TOLERANCE' : None, 'SPEED_FIELD' : '', 'START_POINT' : '1532005.145630,6890379.930349 [EPSG:3857]', 'STRATEGY' : 0, 'TOLERANCE' : 0, 'VALUE_BACKWARD' : '', 'VALUE_BOTH' : '', 'VALUE_FORWARD' : '' } (da hab ich nur Start- und Endpunkt gesetzt, alles andere default gelassen) gerechnet. Klappt wunderbar:

Ich danke euch allen für die Hilfe, ich konnte das Problem mithilfe eines Kollegen der sich mit GIS gut auskennt lösen. Ich kann zwar nicht genau sagen warum es davor nicht geklappt hat oder was ich falsch gemacht haben aber folgendes war die Lösung:

Ich habe meine Daten über dieses Colab Script runtergeladen und so hat das wunderbar funktioniert alles:

%%capture

!pip install osmnx geopandas
import osmnx as ox
import geopandas as gpd
import pandas as pd
# Straßen in Deutschland herunterladen (Autobahnen und Bundesstraßen)
all_roads = ox.graph_from_place(
    "Germany",
    network_type="drive",
    custom_filter='["highway"~"motorway|trunk|primary"]',
    simplify=True
)
# Knoten (nodes) extrahieren
gdf_nodes = ox.graph_to_gdfs(all_roads, edges=False, nodes=True)

# Kanten (edges) extrahieren
gdf_edges = ox.graph_to_gdfs(all_roads, edges=True, nodes=False)
# Den Tag `maxspeed` aus den Kanten entfernen (falls vorhanden)
if "maxspeed" in gdf_edges.columns:
    gdf_edges = gdf_edges.drop(columns=["maxspeed"])
# Knoten als GeoJSON speichern
gdf_nodes.to_file("knoten.geojson", driver="GeoJSON")

# Kanten als GeoJSON speichern
gdf_edges.to_file("strassen.geojson", driver="GeoJSON")
# Einen Typ-Tag für Knoten und Kanten hinzufügen
gdf_nodes["type"] = "node"
gdf_edges["type"] = "edge"

# GeoDataFrames kombinieren
gdf_combined = pd.concat([gdf_nodes, gdf_edges], ignore_index=True)
# GeoJSON-Datei speichern
gdf_combined.to_file("autobahn_und_bundesstrassen_deutschland.geojson", driver="GeoJSON")

Darüber hab ich jetzt Autobahn und Bundesstraßen in Deutschland und meine Routen funktionieren alle.

Nochmal danke für die Hilfe und viel Erfolg bei all euren Projekten.

2 Likes