TROBDB
Aus Geoinformation HSR
Version vom 13. November 2013, 09:21 Uhr von Stefan (Diskussion | Beiträge)
Projekt "Traffic Obstruction Database und Webservice"
Website (inkl. DB, Webservice/API) für Verkehrshindernisse. Traffic Obstruction Database (TROBDB). Teil des BLUgis-Projekts.
Definition/Abgrenzung: Unter Verkehrshindernisse (engl.: "Traffic Obstructions", Driving Bans) verstehen wir hier temporäre Fahrverbote oder temporär gesperrte Strassen u.a. wegen Baustellen oder Veranstaltungen, die geplant und angekündigt sind. Staus oder andere Echtzeitinformationen gehören nicht dazu.
Inhaltsverzeichnis
Spezifikation
User Szenarien:
- Als BLUgis/Regio144-Vertreter möchte ich von der TROBDB eine (speziell zugeschnittene und aufbereitete) Verkehrshindernisse-Datei täglich abholen.
- Als Web-Benutzer (u.a. Behörden, Regio144, Privatpersonen) möchte ich Verkehrshindernisse über einen Webclient von Hand auf der TROBDB-Karte erfassen (mit Login).
- Als Webapp-Entwickler möchte ich schweizweite Verkehrshindernisse als Datei (möglichst) frei herunterladen. (Lösungsvorschlag http://repository.opendata.ch ?)
- Als Webapp-Entwickler möchte ich ausgewählte Verkehrshindernisse von der TROBDB über einen Webservice/API (möglichst) frei lesen können.
- Als Webapp-Entwickler (u.a. BLUgis/Regio144) möchte ich - zur Veröffentlichung freigegebene - Verkehrshindernisse über einen Webservice/API der TROBDB hochladen/schreiben können (mit Login).
Verwendung der Daten:
- Rettungsdienst (BLUgis/Regio144) (Abholung von DB täglich)
- Forschungsarbeit tourpl (Abholung von DB täglich, jeweils ca. 03:00)
- Web (öffentlich, wenn implementiert) als ganzer Datensatz ("Opendata")
- Web (öffentlich, wenn implementiert) als Webkarte und als Webservice ("Opendata")
Hinweis:
- Die konsolidierten Daten werden spätestens jeweils um ca. 11h und 16h aktualisiert.
Datenquellen
- Verkehrszentrale des Bundes (Baustellen, Pässe, Tunnelzufahrten und andere Verkehrssperrungen). Die Daten werden jeweils vor 11h und vor 16h von truckinfo.ch abgeholt.
- Stadt Zürich, Baustellen, als Download-Service.
- (geplant: Rettungsdienst BLUgis/Regio144)
Entwurf - Technologien
- DB: PostgreSQL/PostGIS
- Webserver: Apache
- Webservice: Python, Flask
- Web App: Javascript (Bootstrap, jQuery), Django-CMS?
- Web Map: Leaflet
Datenstruktur
"Traffic Obstruction DB":
- "trobdb_line":
geometry: Linestring NOT_NULL -- gesperrte Richtung, d.h. Reihenfolge der Stüzpunkte relevant!) id_ref: integer NULL -- id der Quell-Datenbank (und dort UNIQUE NOT_NULL) title: varchar(100) NOT_NULL description: text NUL_NULL traffic_obstruction_start: date/datetime NOT_NULL traffic_obstruction_end: date/datetime NOT_NULL traffic_obstruction_string: text NULL -- Intervall-Zeitangaben (vgl. Bemerkungen) emergency: boolean NULL -- Rettungs-Fz können trotzdem durchfahren direction: (0..1) ENUM(as_is, reverse) NULL -- Default: NULL = "both directions" sysdate: datetime NOT_NULL -- Datum der Erfassung dieser Info issued: datetime NULL -- Datum von demjenigen, von wo die Meldung kam issuer_name: (0..1) text NULL -- Name derjenigen, von wo die Meldung kam file_ref: URL NULL -- relative_path_to_file, allowed formats: PDF, JPG, PNG, GIF osm_way_id: biginteger NULL -- OSM way id vom Matching (nur bei trobdb_line) osm_way_type: string NULL -- Wert des highway-Tags, z.B. motorway, footway (nur bei trobdb_line) osm_way_oneway: boolean NULL -- Einbahnstrasse (nur bei trobdb_line)
- "trobdb_area":
geometry: Polygon -- gesperrte Fläche, z.B. bei Dorfkern-Sperrungen ... -- ditto wie "trobdb_line"
- "trobdb_poi":
geometry: Point -- gesperrter Punkt, z.B. Pässe/Tunnel/Autoverlade ... -- ditto wie "trobdb_line"
Bemerkungen:
- Intervall-Zeitangaben ("Behinderungszeiten", Öffnungszeiten, Betriebszeiten):
- Definition OSM: http://wiki.openstreetmap.org/wiki/DE:Key:opening_hours
- Demo (inkl. Source Code): http://robin.de.marissa.hostorama.ch/osm/opening_hours.js/demo.html