Download Gesamtdatenbestand einer Stadt für speziell Auswertungen

Liebes Admin-Team,
wir überprüfen gerade, welche Straßen mit Schutzstreifen in Mainz für einen Verkehrsversuch mit breiten Schutzstreifen und schmaler Kernfahrbahn (wie in unseren Nachbarländern) in Frage kommt. Dafür möchten wir gern die im Portal erfassten Überholvorgänge für ganze (!) Straßenzüge auswerten, um festzustellen, in welcher Straße besonders häufig zu eng überholt wird. Wir haben uns ein Programm für diese Auswertung geschrieben, aber dafür benötigen wir eine csv-Datei mit dem Download aller Messwerte für die Stadt Mainz oder eines entsprechenden Kartenausschnitts. Aus dieser Datei filtern wir dann an Hand der Geodaten die Überholvorgänge für eine Straße von Anfang bis Ende bzw. für die Länge des Schutzstreifens.
Könntet ihr mir die Daten für Mainz zur Verfügung stellen?

Hallo

Auch wenn ich kein Admin bin.
https://portal.openbikesensor.org/export
Geografischer Bereich: 8.1783,49.9458,8.3317,50.0247
dann als json speichern - zum beispiel mainz.json
Dann diesen code ausführen, macht aus dem json ein csv. bitte checke den code, bevor den laufen lässt - auch wenn ich bestimmt keine bösen absichten habe.

python3 -c "
import json, csv

with open('mainz.json') as f:
    data = json.load(f)
 
with open('mainz.csv', 'w', newline='') as f:
    fieldnames = ['longitude', 'latitude', 'distance_overtaker', 'distance_stationary', 
                  'direction', 'way_id', 'course', 'speed', 'time', 'zone']
    w = csv.DictWriter(f, fieldnames=fieldnames)
    w.writeheader()
    
    for feature in data['features']:
        row = {
            'longitude': feature['geometry']['coordinates'][0],
            'latitude': feature['geometry']['coordinates'][1],
            **feature['properties']
        }
        w.writerows([row])
print(f\"Fertig: {len(data['features'])} Einträge nach mainz.csv exportiert\")
"

Und wenn du dann sie Segmente der gewünchten Strassenzüge kennst hast du die Daten.

Beispiel

1215384566

longitude latitude distance_overtaker distance_stationary direction way_id course speed time zone

8.2314406 50.016313 1.1300000000000000 1.02 1 1215384566 2.4006211481701600 2.888888888888890 2024-03-28T13:50:44+0000 urban
8.2314732 50.0163479 1.16 0.67 1 1215384566 2.3401838868321000 5.166666666666670 2024-06-25T14:55:27+0000 urban
8.2305923 50.0169984 1.1400000000000000 2.56 -1 1215384566 5.433049391167160 4.333333333333330 2025-08-25T10:58:20+0000 urban

Moderator edit: codeblock als Codeblock formatiert, damit die quotes nicht kaputt gehen

1 „Gefällt mir“

Mit @dgg s Codebeispiel kann man sich den export (den jeder unter „export“ selbst erstellen kann) nach csv konvertieren. Voraussetzung ist, dass ein Python 3 installiert ist. Für die mehrfache Verwendung kann man auch den Code von import bis exportiert\") in einer Datei converter.py ablegen, die \ vor den " in der letzten Zeile entfernen, und bei Bedarf als python script ausführen. (z.B. unter Windows mit py -3 converter.py)

Wenn euer Auswertungscode eh in Python sein sollte, könntet ihr natürlich auch direkt json von dort einlesen (auch andere Sprachen, mit denen man solche Auswertungen macht, haben oft die Möglichkeit, json direkt zu lesen, z.b. in R oder Matlab oder SAS oder excel ).

1 „Gefällt mir“

Vielen Dank euch beiden!

Nachdem ein Kollege mir beim Aufbereiten der Daten geholfen hat, stellt sich die Frage, ob in der erzeugten Excel-Datei in der Spalte „distance_overtaker“ nur bestätigte Überholvorgänge enthalten sind. Die Spalte „confirmed“, die in den Rohdaten des obs die Überholvorgänge kennzeichnet, fehlt im Export der Daten aus der Portalkarte. Wir fragen deshalb vorsichtshalber nochmal nach.

Ja, distance_overtaker enthält nur bestätigte Überholvorgänge.