dtpstat/dtp-stat-archive

г. Сочи - неверная геопозиция многих ДТП (в море, за границей)

bender-spb opened this issue · 5 comments

Для г. Сочи многие ДТП неверно отображаются в Черном море или за границей РФ
https://dtp-stat.ru/krasnodarskii-krai_sochi/

image

image

Можно попробовать рассмотреть эту проблему системно и в рамках проверки качества данных автоматически находить ДТП за границами выбранной области (города, в данном случае) и ДТП которые отображаются "на воде"

Видно что есть некая системная ошибка (линия ДТП в море идущая вдоль побережья). Возможно причина в следующем:

изначально координаты были записаны в формате градусы, минуты и секунды:
43°40'10" 39°37'28"

однако в базе ГИБДД они хранятся (без должного преобразования) в виде десятичной дроби градусов :
43.4010 39.3728

На примере ДТП 177173280:
Координаты из базы: 43.4010 39.3728
Координаты какими они должны быть: 43°40'10" 39°37'28" (= 43.670209 39.6244261)
Это довольно точно соответствует указаной точке в карточке ДТП: 160,6км трассы А-147 между 160км и 161км.

Пример 2: ДТП 171724807
Координаты из базы 43,5526 39,185
Координаты какими они должны быть: 43°55'26" 39°18'50" (=43.9238889 39.3117002)
106,85 км трассы А-147

ustnv commented

Спасибо за разбор, есть идеи как такие координаты выискивать среди всех?

К сожалению, пока не вижу способа легко и достоверно идентифицировать их алгоритмически.

Варианты, в какую сторону можно копать:

  1. Мы можем точно не подозревать такую ошибку если координаты очевидно записаны как десятичная дробь. А именно 45.X5Y7 когда X или Y =6, 7, 8, 9
  2. Кажется, что для каждого конкретного города можно найти функцию (например, прямую на карте) отделяющую "ложные" координаты от не ложных. Имея на руках это уравнение можно алгоритмически выделить такие ложные координаты для конкретного города:
    image

В итоге на данном этапе мне кажется полезным добавить фичу "Отметить ДТП как с потенциально неверными координатами".
Что бы в дальнейшем массово работать с такими ДТП. И подсвечивать в UI

Пример 1: пользователь в UI видит что ДТП явно в неправильном месте и "отмечает" его (или несколько ДТП сразу). Возможно будет полезно так же ввести/хранить "преполагаемые актуальные координаты" (которые часто ясны по адресу или километру трассы)

Пример 2: пишем и запускаем скрипт который как-то определяет "возможно неверные" координаты ДТП и помечает такие ДТП в БД для дальнейшего разбора.

ustnv commented

Закрываю эту задачу, можно продолжить обсуждение тут - https://github.com/tadata-ru/dtp-stat/issues/6