GEOINT. Просторовий аналіз відкритих даних у середовищі ГІС: православ’я і консюмеризм

У 2020 році світ побачила фотокнига Orthodox Chic, автори якої фіксують феномен пострадянської релігійної архітектури, осмислюючи його соціальний, історичний та політичний контексти. Окрім високої концентрації пост- та метаіронії, дане видання прикметне тим, що має хороші риси тренувального посібника для тих, хто прагне увірватися у світ геопросторової розвідки. На сторінках цієї книги містяться численні фотографії православних сакральних об’єктів по всій території України, більшість з яких, попри їх візуальну виразність, не так вже й просто геолокувати.

На сторінках фотокниги наявна концептуальна світлина одного з київських православних храмів. Поруч із культовою спорудою знаходиться один із закладів мережі McDonald's. Таким чином, задачу з пошуку зазначеного храму, можна було б звести до банального візуального перегляду околиць кожного з кількох десятків київських ресторанів McDonald's у Google Maps. Проте, давайте залишимо такий підхід тим, хто знає кількість дерев у кожній прифронтовій лісопосадці від Вугледару до Бахмуту краще, ніж назви вулиць у власному місті. Натомість ми скористаємося даними з OpenStreetMap та інструментами просторового аналізу в середовищі програми ArcGIS Desktop.

Примітка. Відверто кажучи, знаючи назву храму або застосувавши “пошук по картинці” у Google, ви без проблем зможете знайти точне місцерозташування споруди. Проте, суто з навчальною метою, уявімо, що нас спіткали обставини непереборної сили, які не дають нам можливості скористатися усіма можливостями інтернету.

Храм у Києві. Фотографія Саші Курмаза

Підготовка робочого середовища

Будемо вважати, що ArcGIS Desktop ви вже придбали (або чесно вкрали) і встановили на свій комп’ютер, тож одразу перейдемо до завантаження відкритих даних (до речі, якщо ви є прихильником open-source програмного забезпечення, то в якості альтернативи ArcGIS Desktop можна використати QGIS). Існує кілька варіантів експорту просторових даних з OpenStreetMap. Напевно найпростішим способом є завантаження просторових даних на всю територію України звідси у форматі shapefile.

У завантаженому архіві міститься близько двох десятків shape-файлів. Нас цікавлять насамперед ті, у яких місться інформація про будівлі та т.зв. “місця інтересу”, а саме: gis_osm_buildings_a_free_1 (полігональні будівлі), gis_osm_pois_free_1 (точкові “місця інтересу”) та gis_osm_pois_a_free_1 (полігональні “місця інтересу”). Крім того, нам стане у нагоді shape-файл gis_osm_places_a_free_1 із полігонами населених різних географічних об’єктів, зокрема населених пунктів.

Вищезазначені shape-файли містять величезну кількість об’єктів, проте нам потрібні лише ті, які перебувають на території міста Київ. Для того, щоб визначити, які це об’єкти, потрібно здійснити просторову вибірку (Select by Location).

Передусім потрібно виділити полігон Києва у shape-файлі gis_osm_places_a_free_1.

Далі необхідно на вкладці Selection обрати пункт Select by Location. У розділі Target layer потрібно обрати шари, об’єкти у яких ми обиратимемо, а у полі Source layer - шар яким ми обиратимемо об’єкти. Обов’язково, потрібно поставити галочку у пункті Use selected features, інакше ми оберемо об’єкти не полігоном Києва, а усіма полігонами, що містяться у даному шарі. Після натискання кнопки “ОК”, програма здійснить просторову вибірку.

Після цього, для зручності роботи з виділеними файлами, їх варто експортувати у окремі shape-файли з індексом “_kyiv”. Таким чином, ми отримаємо три shape-файли: gis_osm_pois_free_1_kyiv, gis_osm_buildings_a_free_1_kyiv, gis_osm_pois_a_free_1_kyiv.

Робота з даними

Після підготовки даних, наше завдання полягає у пошуку всіх ресторанів мережі McDonald's та церков у місті Київ. На перший погляд, це тривіальна задача, але тут на нас чекає одна з головних проблем відкритих даних - неконсистентність*.

*Хоча, звісно, неправильно стверджувати, що цей недолік притаманний лише відкритим даним з OpenStreetMap, оскільки чимало баз даних ведуться без дотримання “правил хорошого тону”.

З пошуком ресторанів мережі McDonald's, загалом, проблем виникнути не повинно. Достатньо відсортувати по алфавіту дані у атрибутивному полі “name” в атрибутивній таблиці кожного shape-файлу і виділити усі об’єкти з текстом “McDonald's”.

А от із сакральними спорудами ситуація значно цікавіша, оскільки їхні назви могли вноситися у OpenStreetMap довільним чином і просте сортування по алфавіту не є ефективним (не кажучи вже про те, що невідомо чим керувалися користувачі, які вносили інформацію про об’єкти, коли визначали те, що ті чи інші споруди є саме церквами, а не каплицями або соборами). Проте є й хороша новина, напротивагу ресторанам, нам не доведеться вишукувати культові споруди у кількох shape-файлах, оскільки всі вони представлені у gis_osm_buildings_a_free_1_kyiv.

Назви культових споруд є вельми неоднорідними, зокрема у атрибутивній таблиці зустрічаються такі записи як: “Десятинна церква”, “Собор Різдва Христового”, “Храм Святого Миколая”, “Церква Всіх Святих” тощо. Тут у нагоді міг би стати атрибут “type”, який містить інформацію про тип споруди, але у багатьох випадках він не заповнений і відповідно, якби ми користувалися виключно ним при сортуванні даних, частина об’єктів залишилась би поза вибіркою**.

**Якби даний атрибут заповнювався б як слід, то для вибірки сакральних споруд нам достатньо було б виділити об’єкти з такими значеннями атрибуту “type”: “cathedral”, “chapel”, “church” та “temple”.

Таким чином, серед інших об’єктів, сакральні споруди можна відібрати двома способами:
- примітивним - здійснити ручний відбір потрібних об’єктів;
- оптимальним - побудувати SQL-запит.

З примітивним підходом все зрозуміло - шукаємо вручну об’єкти, що містять ключові слова та/або необхідне функціональне призначення (атрибут “type”), виділяємо їх і робимо так допоки не дійдемо до кінця атрибутивної таблиці. Такий варіант відбору об’єктів вимагає уважності і трохи (або не трохи) вільного часу.

У свою чергу, оптимальний підхід передбачає застосування атрибутивної вибірки (вікно Select by Attributes на вкладці Selection), за допомогою якої можна виділити усі об’єкти, в яких атрибут “name” містить ключові слова для пошуку сакральних споруд у шарі gis_osm_buildings_a_free_1_kyiv. Крім того, вибірка повинна містити об’єкти, у яких атрибут type” дорівнює “cathedral”, “chapel”, “church” або “temple”. Це дозволить відібрати не лише культові споруди з відповідними назвами, а й ті культові споруди, що не містять назв взагалі або ж мають назви, які не містять ключових слів. SQL-запит для вирішення поставленої задачі має такий вигляд:

"name" LIKE '%церква%' OR "name" LIKE '%храм%' OR "name" LIKE '%собор%' OR "name" LIKE '%каплиця%' OR "name" LIKE '%Церква%' OR "name" LIKE '%Храм%' OR "name" LIKE '%Собор%' OR "name" LIKE '%Каплиця%' OR "type" = 'cathedral' OR "type" = 'chapel' OR "type" = 'church' OR "type" = 'temple'

До речі, вибірку можна спробувати вдосконалити додавши різні варіанти відмінювання ключових слів або ж доповнити перелік словами перекладеними на російську мову***.

***На жаль, подекуди зустрічаються записи російською мовою. Наприклад, замість слова “церква” може бути записано “церковь”.

Рухаємося далі. Для зручності подальшої обробки просторових даних потрібно експортувати виділені об’єкти у окремі shape-файли з індексами “_mcdnlds” (для закладів мережі McDonald's) та “_temple” (для сакральних споруд). У результаті, утворяться такі shape-файли: gis_osm_buildings_a_free_1_kyiv_temple, gis_osm_pois_free_1_kyiv_mcdnlds, gis_osm_pois_a_free_1_kyiv_mcdnlds, gis_osm_buildings_a_free_1_kyiv_mcdnlds.

Геообробка просторових даних*

*Варто зауважити, що наведений далі спосіб геообробки просторових даних не є єдиним правильним і для вирішення задачі з пошуку “того самого храму біля МакДональдзу” можуть застосовуватися й інші інструменти або ж їх комбінації.

Успішно виконавши попередні кроки, ми матимемо справу виключно з розташованими у Києві ресторанами мережі McDonald’s та київськими храмами.

Як видно зі світлини на початку статті, церква і ресторан швидкого харчування знаходяться на невеликій відстані один від одного. Можна припустити, що дана відстань складає не більше 100 метрів.

Відштовхуючись від цього, ми відіб’ємо від кожного з об’єктів буфер із радіусом 100 метрів. Для того, щоб це зробити потрібно скористатися інструментом геооброки Buffer (вкладка Geoprocessing).

Щоб скористатися цим інструментом, на вхід (Input Features) треба подати shape-файл із об’єктами від яких потрібно відбити буфери. У полі Output Feature Class необхідно вказати назву shape-файлу із згенерованими полігональними буферами (для зручності назву можна лишити такою ж як і у вхідного файлу, але додати до неї індекс “_buffer”). Далі потрібно вказати радіус буферів і одиниці вимірювання (“100” і “Метри”, відповідно).

Послідовно відбивши буфери від об’єктів у кожному з чотирьох класів даних, з метою спрощення, нам потрібно об’єднати буфери, які ми відбили від ресторанів мережі McDonald’s у один shape-файл. Для цього ми скористаємося інструментом Merge (вкладка Geoprocessing).

На вхід потрібно подати три shape-файли із буферами відбитими від ресторанів швидкого харчування. Вихідний shape-файл можна назвати mcdnlds_buffer_merged.

І ось ми на порозі кульмінації. У нас є буфери відбиті від сакральних об’єктів і ресторанів мережі McDonald’s. Тепер нам залишається знайти їх перетини і переглянути кожен з них. Один із перетинів буде відповідати місцезнаходженню церкви, яку зображено на світлині.

Згенеровані буфери: зеленого кольору - від ресторанів мережі McDonald’s; фіолетового кольору - від сакральних споруд.

Для того, щоб виявити перетини буферів, нам потрібно скористатися інструментом Intersect (вкладка Geoprocessing). На вхід потрібно подати shape-файли з буферами. Значення параметра Output Type повинно дорівнювати “INPUT” (утворені перетини матимуть полігональну геометрію).

У результаті, в створеному shape-файлі mcdnlds_temple_buffer_intersect, ми отримали шість унікальних перетинів буферів сакральних споруд та ресторанів. Таким чином, нам потрібно переглянути кожен із варіантів і обрати серед них той, ситуація на якому відповідатиме наведеному нижче зображенню.

Аналіз виявлених результатів

Варіант 1. Володимирський собор
(бульв. Тараса Шевченка, 20; 50.44499, 30.50859).

Варіант 2. Храм на честь великомученика Георгія Побідоносця
(пл. Привокзальна, 1; 50.43811, 30.48623).

Варіант 3. Церква Різдва Христового
(вул. Петра Сагайдачного, 2; 50.45906, 30.52515).

Варіант 4. Храм на честь апостола і євангеліста Іоанна Богослова
(вул. Михайла Гришка, 1; 50.39657, 30.63041).

Варіант 5. Православна церква Церква ікони Божої Матері Рятувальниця потопаючих УПЦ
(вул. Євгена Сверстюка, 5Б; 50.45076, 30.59925).

Варіант 6. Храм Святого Апостола і Євангеліста Марка
(вул. Оноре де Бальзака, 2А; 50.49705, 30.57637).

Зважаючи на зовнішній вигляд сакральних споруд, шуканим об’єктом однозначно є варіант під номером шість. Додатковим свідченням цього є знімок із Google Street View.

А ось як виглядають характерні риси світлини на супутниковому знімку:

Висновки

Підбиваючи підсумки, варто почати з того, що оперуючи відкритими просторовими даними з OpenStreetMap у середовищі ArcGIS Desktop, нам вдалося звести до мінімуму можливі варіанти місцезнаходження “того самого храму біля МакДональдзу”, у результаті чого, завдання з пошуку об’єктів на фотографії було виконано доволі швидко. Такий підхід дає змогу суттєво зменшити кількість ручної роботи, проте він повністю залежить від наявності та якості відкритих геопросторових даних. У той час як, обласні центри та великі міста досить гарно, подекуди навіть надмірно, закартографовані на OpenStreetMap, у селах та селищах інколи навіть не нанесені будівлі та не вказані назви вулиць. Таким чином, ми можемо стверджувати, що попри всі переваги, описаний у статті спосіб пошуку просторових об’єктів не є універсальним, однак він може стати у нагоді при вирішенні окремих задач із геолокування.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
murasaki
murasaki@murasaki

106Прочитань
2Автори
2Читачі
На Друкарні з 26 серпня

Вам також сподобається

Коментарі (4)

навіть не знав, що все це так скадно(відносно), гадав воно все через гугл-мапс робиться. дякую

Вам також сподобається