
Ich erzähle Ihnen von dem Projekt "Unfallkarte" - einer interaktiven Unfallkarte in Russland. Die Karte vereinfacht die Analyse von Unfällen und hilft, die tatsächlichen Unfallursachen zu finden. Wie ist die Idee entstanden, woher haben sie die Daten genommen und warum haben sie den Quellcode geöffnet?
Im Jahr 2018 starben 19088 Menschen bei Verkehrsunfällen auf russischen Straßen
Die Zahl nimmt jedes Jahr ab, ist aber immer noch viel größer als in Industrieländern, in denen dem Problem der Sterblichkeit auf den Straßen viel mehr Aufmerksamkeit geschenkt wird. Ein gutes Beispiel ist das schwedische Verkehrssicherheitsprogramm Vision Zero.
Das Grundprinzip des Programms ist die Unzulässigkeit tödlicher Unfälle. Dieses Prinzip wird auch als "Null-Toleranz-Prinzip" bezeichnet. Demnach ist es unmöglich, Todesfälle auf der Straße als unvermeidliches Übel im Zusammenhang mit der Motorisierung zu behandeln. - WikipediaIm vergangenen Jahr starteten die Ilya Varlamov und die Maxim Katz Urban Projects Foundation die
Zero Deaths- Kampagne in Moskau. Die Idee ist, dass im Prinzip niemand bei einem Unfall sterben sollte. Und wenn Menschen sterben, ist es nicht die Schuld des Opfers, sondern vor allem der Designer, Bauherren oder der Stadt. Es ist notwendig, jeden Unfall zu verstehen, die Systemursachen zu finden und sie schrittweise zu beseitigen. Bisher tun die städtischen Abteilungen dies nicht ernsthaft.
Daher waren wir letzten Sommer zusammen mit Stadtaktivisten und Moskauer Abgeordneten verwirrt, als wir ein Tool entwickelten, mit dem wir eine detaillierte räumliche Analyse von Unfällen durchführen konnten: gefährliche Kreuzungen finden, lokale Statistiken über Straßen und Städte untersuchen und die Hauptfaktoren und Unfallursachen identifizieren. Zu diesem Zeitpunkt gab es ein solches öffentlich zugängliches Projekt noch nicht.
Unfalldaten öffnen
Wir hatten großes Glück mit offenen Daten. On a habr hat schon
gute Beiträge zur Arbeit mit ihnen geschrieben. Diese Aufmerksamkeit ist völlig gerechtfertigt - dies ist eine der detailliertesten und interessantesten Daten, die der Staat jetzt veröffentlicht. Koordinaten, Wetter, Marke und Baujahr, Verstoß gegen die Regeln, Geschlecht der Teilnehmer und vieles mehr. Und das alles für jeden von mehr als 600.000 Unfällen.
In diesem Fall machten wir uns Sorgen um den Dienst
stat.gibdd.ru . Trotz der detaillierten Daten unter der Haube unterscheidet es sich darin, dass die Verwendung sehr unpraktisch ist. Es sieht eher nach einer Website für Beamte aus: Ein Vergleich mit der APPG (im gleichen Zeitraum des Vorjahres), Details nur zu Verwaltungseinheiten, Unfälle werden in einer Liste angezeigt.

Eine solche Schnittstelle und Funktionalität ist überhaupt nicht für Menschen geeignet, sondern für offizielle Berichte geschaffen.
Portalerstellung
Eine wichtige Rolle bei der Erstellung des Mandats spielten Menschen, die wirklich auf diese Probleme stoßen - Abgeordnete, Aktivisten, Urbanisten. Dank ihnen konnte ich verstehen, was wirklich gebraucht wurde. Wir einigten uns auf ein kleines Startbudget von 30.000 Rubel und begannen damit.
Die Arbeit mit den Daten begann mit der Tatsache, dass ich einen einfachen Parser für Regionen und Unfälle von der Website des Verkehrspolizeiportals geschrieben habe. Wir haben uns an ihre API geklammert, die dem Service selbst Daten zur Verfügung stellte, und diese an uns selbst entladen. Wie ich oben geschrieben habe, gibt es Beiträge zu diesem Thema auf dem Hub, und der Quellcode unseres Parsers befindet sich im
Repository .
Das Hauptproblem war die Geokodierung, da viele der Unfälle falsche Koordinaten hatten. Die Koordinaten unterschieden sich stark von den Adressen. In Makhachkala beispielsweise ereigneten sich 90% der Verkehrsunfälle im Allgemeinen außerhalb der Stadt, und in Barnaul ging ein Teil des Unfalls einfach in den Wald.

Am Anfang haben wir Yandex.Geocoder verwendet, aber ihre Einschränkungen und die Weigerung, den Service auch für ein gemeinnütziges Projekt zu teilen, haben uns veranlasst, eine andere Lösung zu finden. Aus diesem Grund haben wir uns dem Hackathon der sozialen Projekte PublicData gestellt, bei dem die Jungs ihre individuelle Entscheidung getroffen haben, bei der nicht nur die nächste Adresse, sondern auch die nächste Straße gefunden wird.

Die Jungs haben die Adresse als Prioritätskoordinate genommen, und wenn der Geopunkt mehr als 300 Meter vom Protokoll entfernt ist, wird dies vom Algorithmus nicht berücksichtigt. Der Algorithmus besteht darin, dass wir den Geopunkt des Gebäudes nehmen und auf die Straße projizieren. Dasselbe tun wir mit dem Geopunkt aus dem Protokoll. Zeichnen Sie zwischen den beiden resultierenden Punkten ein Segment. Die Mitte dieses Segments wird der Punkt sein, den wir brauchen.
Als nächstes haben wir den Stapel postgresql + django + djangorestframework verwendet. Die Daten waren hierarchisch, daher mussten wir zusätzliche Tabellen für die Werte erstellen, für die wir Filter geplant haben.
Am Frontend haben wir eine interaktive Karte mit Filtern und automatisch berechneten Statistiken geplant. Die Hauptaufgabe bestand darin, sicherzustellen, dass die Karte nicht mit so vielen Objekten hängt (in Moskau sind es mehr als 30.000). Das Ergebnis ist eine ReactJS-Anwendung mit einem Add-On aus der Broschüre. Es lädt sofort alle Unfälle einer Region oder Stadt aus der API, zeigt jedoch auf der Karte nur diejenigen an, die auf den Bildschirm fallen. Dadurch wurde das Laden der Startseite ziemlich lang, es wurden jedoch schnelle Filter- und Nachzählungsstatistiken bereitgestellt, und die Karte konnte nicht langsamer werden. Zusätzlich haben wir wenig später eine thermische Schicht hinzugefügt, die in einem bestimmten Maßstab und mit zu vielen Unfällen aktiviert wird. Am Anfang hatten wir nur eine Karte von Moskau.
In der ersten Phase haben wir die mobile Version abgelehnt, da es schwierig sein wird, die Hauptfunktionen dort zu platzieren, und wichtige Benutzergeschichten für die Arbeit mit der Karte ein Eintauchen in die Analyse erfordern und nicht etwas, das die Leute unterwegs tun werden.
Wir haben Filter nach ihrer Bedeutung für die Analyse ausgewählt: Arten von Unfällen, Daten, Straßen, Verkehrsverstöße, umgebende Infrastruktur.

Wir haben die Unfallkarte auch erheblich vereinfacht und mithilfe von Farben, Symbolen und Panoramen verbessert.

Ergebnis
Sechs Monate lang wurde das Projekt von etwas mehr als
30.000 Menschen besucht , die die Website etwa 100.000 Mal besuchten. Jetzt entwickelt sich die Karte zusammen mit Aktivisten in den Regionen, die am Beispiel einer Karte ihrer Stadt und Region über die Probleme eines Unfalls sprechen. Sie kommunizieren mit regionalen Medien und sprechen in ihren Blogs über das Problem:
Kirov auf der „Road Accident Map“. Die Top 7 Straßen der Stadt, auf denen die meisten Unfälle passiert sind ,
Vladimir auf der Verkehrsunfallkarte der Menschen: "Es ist notwendig, sich von der Sicherheit der Menschen leiten zu lassen": In der Region Nischni Nowgorod wurde eine Verkehrsunfallkarte erstellt .
Wir erhalten auch individuelles Feedback zum Projekt. Beispielsweise nutzt die Urban Projects Foundation unser Portal aktiv, um nach gefährlichen Kreuzungen zu suchen. Auf dem Kirov Urban Forum wurde unser Projekt als Argument für die Überarbeitung der Stadtpolitik erwähnt. Wir freuen uns sehr, dass wir das Problem zumindest beeinflussen können.
Quellcode
Wenn Sie auf die Projektwebsite gegangen sind, sollten Sie bemerkt haben, dass das Projekt immer noch viele Probleme hat, von denen:
- Nicht alle Regionen hinzugefügt
- keine mobile Version
- Sie können keine bestimmte Site / Count-Statistik für eine bestimmte Site freigeben
Um mehr Personen in das Projekt einzubeziehen, haben wir den
Quellcode des Projekts geöffnet. Es gibt Anweisungen zum Auslösen eines Projekts, zum Herunterladen von Daten und Aufgaben und zum Lösen, mit denen Sie dem Projekt helfen können.
In naher Zukunft werden wir kleine Fehler beheben und das Projekt abschließen.
Derzeit auf der Karte: Moskau, St. Petersburg, Kasan, Nischni Nowgorod, Krasnodar, Jaroslawl, Kirow, Wladimir, Tscheboksary und ihre Regionen.
Wenn das Projekt dazu beiträgt, mindestens ein Leben von diesen 20.000 zu retten, war dies alles nicht umsonst. Sie haben auch die Möglichkeit, mehrere Leben zu retten. Wir freuen uns sehr, wenn Sie:
Vielen Dank an alle, die an der Erstellung des Projekts beteiligt waren, insbesondere an Alexei Radchenko, Anastasia Romashkevich, Anton Chernykh c13 , Alexander Popovtsev, Anna Kirichenko, Konstantin Nabatchikov, Vladislav Prud und Maxim Nikityuk.