[Криптография, PostgreSQL, OpenStreetMap, Геоинформационные сервисы] Использование данных OSM для анализа

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
25-Апр-2021 12:30

Постановка задачиВ рамках проекта Фото-Географического Атласа России (photogeomap.ru) мы собрали ряд фотографий различных ландшафтов страны. Многие из них сделаны в достаточно труднодоступных местах.  Именно эту труднодоступность на качественном уровне мы и хотим оценить для каждой точки (фотографии)/Индекс «недоступности»Характеристика, позволяющая косвенно, на качественном уровне оценить сложность попасть к точку съемки данного кадра. Поскольку не нашлось готовых решений по расчету такой характеристики. Решено было создать свою. Назовем ее – индекс «недоступности» (ИН). От чего он зависит? Очевидно, что от:
  • удаленности от дорог доступных для транспорта
  • удаленности от пеших троп и дорог пригодных только для пешего передвижения
  • удаленности от водных путей сообщения
Источник данных для анализаЕдинственным доступным источником векторных данных для такого анализа близости нам видится OSM.   Спорные моменты и допущенияСразу опишу все допущения принятые нами
  • Все расчеты проведены с использованием данных OSM со всеми содержащимися в них огрехами и неточностями.
    На карте могут быть отображены НЕ ВСЕ тропы и не все дороги. Степень валидности существующих объектов также не обсуждалась.
  • Все расчеты расстояний проведены не в лучшей для этого проекции – но с учетом что нас интересуют довольно небольшие расстояния – искажениями пренебрежём. Тем более что в финале все количественные характеристики все равно переводятся в качественные.
  • При анализе близости от водных объектов не учитывалась их связность и судоходность. Что в общем случае конечно неверно, но мы сознательно вводим это допущение.
Подготовка данных OSM 1.        Данные OSM на территорию РФ, полученные через https://download.geofabrik.de загружены в СУБД Postgres (c ext. PostGIS).
Основные нужные нам для анализа объекты расположены в таблице planet_osm_line.  
Не забываем индексировать нужные нам поля (в случае дорог это поле highway)2.        Готовим дороги и тропы. Созданы materialize view для автодороги и тропинок из класса planet_osm_line. Дороги   - select * from planet_osm_line where highway  is not null and highway != ’track’ (выбраны все типы дорог из данных OSM вне зависимости от типа и качества покрытия) ошибки неверного назначения тегов – проигнорированы….. Тропы  - select * from planet_osm_line where highway  is not null and highway = ’track’ (выбраны тропинки) На полученных m.view  - тоже создаем индексы  на нужное поле. Работать будет легче. 3.        Готовим реки. Создаем materialize view для линейных рек  и площадных водных объектов
Теги по которым можно выбрать реки смотрим ТУТКраткий анализ что у нас есть по рекам вообще - --------------------------------
 SELECT t.waterway , count (t.waterway) as cnt FROM public.osm_rivers_l as t where t.waterway is not null group by t.waterway order by cnt desc
---------------------------------
Реки (линейные)
select * from planet_osm_line where waterway  is not null Реки (площадные)
select * from planet_osm_polygon where water  is not null Расчет удаления от точек съемки На этом этапе мы собственно считаем расстояния от наших точек (фото) до дорог, троп и рек.
Выполнить эту процедуру можно в любом настольном ГИС приложении , например в QGIS . В принципе, такой расчет можно провести в самом PostGIS, не вылезая из БД. Но я не программист и мне лень изучать и делать с нуля то, что я могу быстро за 10 мин сделать в той среде где работаю ежедневно (в GIS)
Определение расстояний от точек съемки до дорог - пишем в поле Road_dist и троп  - Track_dist считаем все сразу в километрах!  Определяем расстояние от линейных и площадных рек. Берем минимальное из пары (ближайший водные объект, неважно какой геометрии) и пишем в поле River_distИтак у нас есть поля с записанными в них расточениями. Собственно на этом использование данных OSM завершается, но не весь процесс..Методика расчетаТеперь у нас все готово, и мы начинаем считать сам ИН.  
Сначала мы переводим количественные показатели в качественные характеристики. 1. Введены градации расстояний (поля Road_cat и Track_cat)  и присвоены значения весового коэффициента для удаленности от автодорог и троп (Road_cst и Track_cst) Track_cst считается только для объектов с удаление от дорог более 5 км – иначе принимается 0до 1 до 0,5 часа пешком1от 1 до 5до 2х часа2от 5 до 10до 3х часов 4от 10 до 25до дня ходьбы6более 25более 1 дня102. Введены градации расстояний (River_cat)  и присвоены значения весового коэффициента для удаленности от рек  (River_cst)  для объектов с удаление более 10 км от любых дорог и троп , иначе принимается 0до 1 кмдо 0,5 часа пешком2от 1до 5до 2х часа4от 5 до 10до 3х часов 6более 10до дня ходьбы10 3. Вводим характеристику отражающую доступ только с акватории северных морей.
Поле Sea_cst весовой коэффициент по доступу с «северных морей» для объектов, расположенных в Арктике и на побережье северных морей (выбраны по карте визуальное – их не много). В основном все объекты приняты за 0, кроме пары десятков.с побережья «северных морей»5арктические острова10 4.        Все 4 поля  *_cst  суммированы в INDEX_IMP
смысл у него примерно такой  - чем он выше  --тем тяжелее добраться к точке.  
менее 3 - относительно легко доступная точка (можно ии приехать на машине или относительно недалеко прийти пешкомв районое первого десятка – приехать на машине и хорошо прогуляться…. второй десяток – уровень автономной экспедиции….более 30  – очень сложно  доступная точка  - только с морских судов и пр пр радости…
Собственно - все. Мы посчитали искомую характеристику и теперь можем расклассифицировать точки на карте по ней (для наглядности) или просто указать ее в атрибутах.

===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_kriptografija (Криптография), #_postgresql, #_openstreetmap, #_geoinformatsionnye_servisy (Геоинформационные сервисы), #_osm, #_openstreetmap, #_gis, #_geoanalitika (геоаналитика), #_karty (карты), #_kriptografija (
Криптография
)
, #_postgresql, #_openstreetmap, #_geoinformatsionnye_servisy (
Геоинформационные сервисы
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 10-Май 06:21
Часовой пояс: UTC + 5