[Криптография, PostgreSQL, OpenStreetMap, Геоинформационные сервисы] Использование данных OSM для анализа
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Постановка задачиВ рамках проекта Фото-Географического Атласа России (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
===========
Похожие новости:
- Опубликован Kubegres, инструментарий для развёртывания кластера PostgreSQL
- [Python, PostgreSQL, Django, SQL] SQL в DjangoORM
- [PostgreSQL, Облачные сервисы] Использование ClusterControl для аварийного восстановления PostgreSQL в гибридном облаке (перевод)
- [Информационная безопасность, Управление e-commerce, Законодательство в IT, Финансы в IT] Слежка за онлайн-покупателями становится всё более активной (перевод)
- [Высокая производительность, PostgreSQL, Администрирование баз данных, Конференции] Что нового полезно знать про базы данных?
- [PostgreSQL, SQL, Microsoft SQL Server] Как быстрее всего передавать данные с PostgreSQL на MS SQL
- [Ненормальное программирование, Python, Геоинформационные сервисы, Логические игры] Используем глубокое обучение, чтобы отгадывать страны по фотографиям в GeoGuessr (перевод)
- [Open source, DevOps, Kubernetes] Чистка GitLab Registry для Kubernetes админов
- [Системное администрирование, PostgreSQL, Администрирование баз данных] Noisia — генератор аварийных и нештатных ситуаций в PostgreSQL
- [Информационная безопасность, Криптография, Анализ и проектирование систем, Хранение данных] Элементарная гигиена и слив базы сторонников Навального
Теги для поиска: #_kriptografija (Криптография), #_postgresql, #_openstreetmap, #_geoinformatsionnye_servisy (Геоинформационные сервисы), #_osm, #_openstreetmap, #_gis, #_geoanalitika (геоаналитика), #_karty (карты), #_kriptografija (
Криптография
), #_postgresql, #_openstreetmap, #_geoinformatsionnye_servisy (
Геоинформационные сервисы
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:50
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Постановка задачиВ рамках проекта Фото-Географического Атласа России (photogeomap.ru) мы собрали ряд фотографий различных ландшафтов страны. Многие из них сделаны в достаточно труднодоступных местах. Именно эту труднодоступность на качественном уровне мы и хотим оценить для каждой точки (фотографии)/Индекс «недоступности»Характеристика, позволяющая косвенно, на качественном уровне оценить сложность попасть к точку съемки данного кадра. Поскольку не нашлось готовых решений по расчету такой характеристики. Решено было создать свою. Назовем ее – индекс «недоступности» (ИН). От чего он зависит? Очевидно, что от:
Основные нужные нам для анализа объекты расположены в таблице 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 =========== Похожие новости:
Криптография ), #_postgresql, #_openstreetmap, #_geoinformatsionnye_servisy ( Геоинформационные сервисы ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:50
Часовой пояс: UTC + 5