Создаём свою карту ДТП: различия между версиями
Trolleway (обсуждение | вклад) Нет описания правки |
Trolleway (обсуждение | вклад) |
||
Строка 23: | Строка 23: | ||
===Скрипт детектирования перекрёстков в данных Openstreetmap=== | ===Скрипт детектирования перекрёстков в данных Openstreetmap=== | ||
В OSM нет тега для перекрёстка, но их можно получить, взяв те точки, в которых пересекается несколько веев (более двух). Для пробы этот скрипт написан на питоновских биндингах GDAL, и Москву он считает за ночь. Вероятно в PostGIS этот же алгоритм можно сделать более быстрым. | В OSM нет тега для перекрёстка, но их можно получить, взяв те точки, в которых пересекается несколько веев (более двух). Для пробы этот скрипт написан на питоновских биндингах GDAL, и Москву он считает за ночь. Вероятно в PostGIS этот же алгоритм можно сделать более быстрым. | ||
Если вы работаете на Windows или Mac OS, то установите NextGIS QGIS, найдите и запустите в меню программ "NextGIS command prompt". | |||
Если вы работаете на Linux, то установите GDAL с питоновскими биндингами. | |||
Проверяем, что биндинги работают. Выполняем эту команду - она не должна выводить ничего. | |||
<syntaxhighlight lang="python"> | |||
python -c "import gdal" | |||
</syntaxhighlight> | |||
Клонируем скрипт | Клонируем скрипт | ||
Строка 30: | Строка 38: | ||
cd data_processing_scripts/nextgis_extracts_detect_crossings | cd data_processing_scripts/nextgis_extracts_detect_crossings | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Создаём перекрестки== | ==Создаём перекрестки== |
Версия от 10:09, 4 апреля 2018
Загружаем исходные данные
Источник данных: http://stat.gibdd.ru
Находим код региона.
Указываем диапазон дат.
Запускаем скрипт извлечения данных, по годам.
Результат: пачка XML с карточками ДТП.
Преобразовываем в табличный вид
С XML работать не удобно, поэтому используем следующий скрипт для преобразования XML в CSV.
Результат: CSV файл со всеми данными по ДТП.
Находим пересечения
Источник данных: http://data.nextgis.com Совсем свежие данные стоят 200-300р, старые можно скачать бесплатно. Так или иначе получаем свой регион. Нам нужен только один слой: highway-lines.shp (дорожная сеть).
Находим все пересечения и считаем в каждом количество примыканий, определяем таким образом Х-образные пересечения (у них это значение >= 4). Но можете оставить и другие, если нужно.
Скрипт детектирования перекрёстков в данных Openstreetmap
В OSM нет тега для перекрёстка, но их можно получить, взяв те точки, в которых пересекается несколько веев (более двух). Для пробы этот скрипт написан на питоновских биндингах GDAL, и Москву он считает за ночь. Вероятно в PostGIS этот же алгоритм можно сделать более быстрым.
Если вы работаете на Windows или Mac OS, то установите NextGIS QGIS, найдите и запустите в меню программ "NextGIS command prompt". Если вы работаете на Linux, то установите GDAL с питоновскими биндингами.
Проверяем, что биндинги работают. Выполняем эту команду - она не должна выводить ничего.
python -c "import gdal"
Клонируем скрипт
git clone https://github.com/nextgis/data_processing_scripts.git
cd data_processing_scripts/nextgis_extracts_detect_crossings
Создаём перекрестки
Перекресток - зона определенного радиуса вокруг пересечения (буферная зона).
Перекрестки получаются путем построения буферных зон вокруг пересечений. Соединенные при этом зоны - объединяются в единый объект.