
Saya akan memberi tahu Anda tentang proyek "Peta Kecelakaan" - peta kecelakaan interaktif di Rusia. Peta tersebut menyederhanakan analisis kecelakaan dan membantu menemukan penyebab sebenarnya dari kecelakaan. Bagaimana ide itu datang, di mana mereka mengambil data dan mengapa mereka membuka kode sumber.
Pada 2018, 19088 orang tewas dalam kecelakaan di jalan-jalan Rusia
Angka tersebut menurun setiap tahun, tetapi masih jauh lebih besar daripada di negara maju, di mana lebih banyak perhatian diberikan pada masalah kematian di jalan. Contoh yang bagus adalah program keselamatan jalan Swedia Vision Zero.
Prinsip dasar dari program ini adalah tidak dapat diterimanya kecelakaan fatal. Prinsip ini juga disebut prinsip "nol toleransi", yang menurutnya tidak mungkin memperlakukan kematian di jalan sebagai kejahatan yang tak terhindarkan terkait dengan motorisasi. - wikipediaTahun lalu, Yayasan Ilya Varlamov dan Maxim Katz Urban Projects meluncurkan kampanye
Zero Deaths di Moskow. Idenya adalah bahwa pada prinsipnya tidak ada yang harus mati dalam kecelakaan. Dan jika orang mati, itu bukan kesalahan korban, tetapi terutama perancang, pembangun atau kota. Penting untuk memahami setiap kecelakaan, menemukan penyebab sistem dan secara bertahap menghilangkannya. Sejauh ini, departemen kota tidak serius melakukan ini.
Oleh karena itu, musim panas lalu, bersama dengan aktivis kota dan wakil kotamadya Moskow, kami bingung dengan pembuatan alat yang akan memungkinkan kami untuk melakukan analisis spasial terperinci tentang kecelakaan lalu lintas: menemukan persimpangan berbahaya, mempelajari statistik lokal di jalan-jalan dan kota, dan mengidentifikasi faktor utama dan penyebab kecelakaan. Pada waktu itu, proyek yang tersedia untuk umum seperti itu tidak ada.
Buka data kecelakaan
Kami sangat beruntung dengan data terbuka. Pada habr sudah menulis
posting bagus bekerja dengan mereka. Perhatian seperti itu sepenuhnya dibenarkan - ini adalah salah satu data yang paling terperinci dan menarik yang kini diungkapkan oleh negara. Mengkoordinasikan, cuaca, tahun pembuatan dan tahun mobil, pelanggaran aturan, jenis kelamin peserta dan banyak lagi. Dan ini semua untuk masing-masing lebih dari 600 ribu kecelakaan.
Dalam hal ini, kami khawatir tentang layanan
stat.gibdd.ru itu sendiri . Meskipun data terperinci di bawah tenda, ini berbeda karena sangat tidak nyaman untuk digunakan. Itu lebih mirip situs pejabat: perbandingan dengan APPG (periode yang sama tahun lalu), detail hanya untuk unit administrasi, kecelakaan ditampilkan dalam daftar.

Antarmuka dan fungsi seperti itu sama sekali tidak cocok untuk orang, melainkan dibuat untuk laporan resmi.
Pembuatan Portal
Peran penting dalam penciptaan kerangka acuan dimainkan oleh orang-orang yang benar-benar menghadapi masalah ini - deputi, aktivis, kaum urbanis. Berkat mereka, saya berhasil memahami apa yang sebenarnya dibutuhkan. Kami menyetujui anggaran awal kecil 30 ribu rubel dan mulai melakukannya.
Bekerja dengan data dimulai dengan fakta bahwa saya menulis parser sederhana daerah dan kecelakaan dari situs portal polisi lalu lintas. Kami berpegang teguh pada API mereka, yang memberikan data ke layanan itu sendiri, dan menurunkannya ke diri kami sendiri. Seperti yang saya tulis di atas, ada posting tentang topik ini di hub, dan kode sumber parser kami dapat ditemukan di
repositori .
Masalah utama adalah geocoding, karena banyak kecelakaan memiliki koordinat yang salah. Koordinat sangat berbeda dari alamat. Misalnya, di Makhachkala, 90% kecelakaan di jalan umumnya di luar kota, dan di Barnaul, sebagian dari kecelakaan itu hanya terjadi di hutan.

Pada awalnya, kami menggunakan Yandex.Geocoder, tetapi keterbatasan dan penolakan mereka untuk berbagi layanan bahkan untuk proyek nirlaba membuat kami menemukan solusi lain. Sebagai hasilnya, kami mengatur tugas kami ke hackathon proyek sosial PublicData, di mana orang-orang membuat keputusan adat mereka, yang tidak hanya menemukan alamat terdekat, tetapi juga jalan terdekat.

Orang-orang mengambil alamat sebagai koordinat utama, dan jika geo-point lebih dari 300 meter dari protokol, algoritma tidak akan memperhitungkannya. Algoritma adalah bahwa kita mengambil geo-point bangunan dan memproyeksikannya ke jalan, kita melakukan hal yang sama dengan geo-point dari protokol. Di antara dua poin yang dihasilkan, gambarkan segmen. Bagian tengah segmen ini akan menjadi titik yang kita butuhkan.
Selanjutnya, kami menggunakan tumpukan postgresql + django + djangorestframework. Data bersifat hierarkis, jadi kami harus membuat tabel tambahan untuk nilai-nilai yang kami rencanakan filter.
Di ujung depan, kami merencanakan peta interaktif dengan filter dan statistik yang dihitung secara otomatis. Tugas utama adalah untuk memastikan bahwa peta tidak menggantung dengan banyak objek (di Moskow lebih dari 30 ribu). Hasilnya adalah aplikasi ReactJS dengan add-on dari leaflet. Ini memuat dari API sekaligus semua kecelakaan suatu wilayah atau kota, tetapi hanya menunjukkan pada peta yang jatuh di layar. Ini membuat pemuatan halaman awal cukup lama, tetapi menyediakan pemfilteran cepat dan penghitungan ulang statistik, dan tidak memungkinkan peta melambat. Selain itu, beberapa saat kemudian kami menambahkan lapisan termal yang diaktifkan pada skala tertentu dan dengan terlalu banyak kecelakaan. Pada awalnya kami hanya memiliki peta Moskow.
Pada tahap pertama, kami menolak versi seluler, karena akan sulit untuk menempatkan fungsi-fungsi utama di sana, dan kisah pengguna utama bekerja dengan peta memerlukan perendaman untuk analisis, dan bukan sesuatu yang akan dilakukan orang saat bepergian.
Kami memilih filter sesuai dengan kepentingannya untuk analisis: jenis kecelakaan, tanggal, jalan, pelanggaran lalu lintas, infrastruktur di sekitarnya.

Kami juga menyederhanakan kartu kecelakaan secara signifikan dan memperbaikinya dengan bantuan warna, ikon, panorama.

Hasil
Selama enam bulan, proyek ini dikunjungi oleh sedikit lebih dari
30 ribu orang yang melihat situs sekitar 100 ribu kali. Sekarang peta berkembang bersama dengan aktivis di daerah, yang berbicara tentang masalah kecelakaan menggunakan contoh peta kota dan wilayah mereka. Mereka berkomunikasi dengan media regional dan berbicara tentang masalah di blog mereka:
Kirov di “Peta Kecelakaan Jalan”. 7 jalan teratas kota di mana kecelakaan paling banyak terjadi ,
Vladimir pada peta kecelakaan jalan orang ,
"Perlu dipandu oleh keselamatan orang": di wilayah Nizhny Novgorod membuat peta kecelakaan jalan .
Kami juga menerima umpan balik individu pada proyek. Misalnya, Urban Projects Foundation secara aktif menggunakan portal kami untuk melakukan penelitian di persimpangan berbahaya. Di Kirov Urban Forum, proyek kami disebut sebagai argumen untuk merevisi kebijakan perkotaan. Kami sangat senang bahwa kami setidaknya dapat mempengaruhi masalah.
Kode sumber
Jika Anda mengunjungi situs web proyek, Anda seharusnya memperhatikan bahwa proyek tersebut masih memiliki banyak masalah, di antaranya:
- tidak semua wilayah ditambahkan
- tidak ada versi seluler
- Anda tidak dapat membagikan statistik situs / hitungan tertentu di situs tertentu
Untuk melibatkan lebih banyak orang dalam proyek, kami membuka
kode sumber proyek. Ada instruksi tentang cara meningkatkan proyek, cara mengunduh data dan tugas, penyelesaian yang dapat Anda bantu proyek.
Dalam waktu dekat, kami akan memperbaiki bug kecil dan menyelesaikan proyek.
Saat ini di peta: Moskow, St. Petersburg, Kazan, Nizhny Novgorod, Krasnodar, Yaroslavl, Kirov, Vladimir, Cheboksary dan wilayah mereka.
Jika proyek membantu menyelamatkan setidaknya satu kehidupan dari 20 ribu ini, maka semua ini tidak sia-sia. Anda juga memiliki kesempatan untuk menyelamatkan beberapa nyawa. Kami akan sangat senang jika Anda:
Terima kasih kepada semua orang yang berpartisipasi dalam penciptaan proyek, dan terutama kepada Alexei Radchenko, Anastasia Romashkevich, Anton Chernykh c13, Alexander Popovtsev, Anna Kirichenko, Konstantin Nabatchikov, Vladislav Prud, Maxim Nikityuk.