|
Перевірка даних OSM
Цей розділ охоплює процеси перевірки якості даних, особливо в контексті керованого проєкту мапінгу в OSM, наприклад, тих, що здійснюються Humanitarian OpenStreetMap Team у різних країнах та проєктами Open Cities у Бангладеш, Шрі-Ланці та Непалі. Продемонстровані методи можуть бути корисними і в інших контекстах, коли перевірка якості даних є регулярним завданням. Коли ми намагаємось мапити всі об’єкти та їх властивості на визначеній території, нам потрібно переконатись у відсутності помилок та мати методики для оцінки якості роботи. У цім посібнику ми розглянемо кілька методів перевірки даних, пояснивши кроки кожного етапу та причину, що стоїть за кожним з них.
Ці методи перевірки набувають все більшого значення, оскільки модель даних зростає, а кількість зібраних об’єктів стає досить великою. Наприклад, не знадобиться багато часу та зусиль для оцінки моделі даних, яка включає лише точкових об’єктів (POI): В цьому випадку питаннями на які треба відповісти будуть:
Однак, як правило, модель даних набагато складніша, як і у випадку з мапінгом будівель. Розглянемо модель даних, яка включає в себе: Можливо ви вже замапили не одну тисячу будівель, що мали багато різних атрибутів, тож їх перевірка є важливою. Тут ми будемо використовувати будівлі як приклад, але цей метод також можна застосовувати й для інших типів об’єктів. Щоденні перевіркиПеревірка даних на щоденній основі – є наріжним методом оцінки їх якості. Її бажано проводити, як зазначено, кожного дня, але не рідше ніж раз на тиждень. Для керівника команди маперів це є важливим завданням, оскільки своєчасне виявлення помилок допомагає їх найскорішому виправленню, та дозволяє внести зміни в процес та звернути увагу маперів на них. Розглянемо кілька методів перевірки даних з використанням JOSM. Ось деякі питання на які ми маємо знайти відповідь щодо даних:
Спробуймо відповісти на ці питання користуючись JOSM. Вважатимемо, що ми перевіряємо роботу інших, але ті ж принципи добре працюють (і є можливо простішими), коли ми перевіряємо власну роботу. Будемо використовувати тренувальні дані з проєкту Open Cities для міста Дака (Dhaka). Завантажте собі для подальшої роботи файл: dhaka_validation_example.osm НЕ НАМАГАЙТЕСЬ завантажити ваші зміни до OpenStreetMap. Ці дані лише для демонстрації процесу перевірки. Перевірка данихПершим кроком перевірки буде використання вбудованих в JOSM інструментів перевірки даних, які дозволяють в автоматичному режимі знаходити потенційні помилки. Ці інструменти особливо корисні для пошуку помилок топології, але можуть не спрацювати для пошуку помилок в теґах.
Переглянемо кілька попереджень. Ви можете побачити що у нас чотири випадки перетину контурів будинків попередження “Crossing buildings”. Це означає, що десь контури будинків перекривають друг друга. Виділіть перший елемент в списку, клацніть правою кнопкою миші та оберіть “Zoom to problem”. Натисніть кнопку “Вибрати” (“Select”) у вікні Валідатора, щоб підсвітити підозрілі об’єкти. Ми побачимо що проблема з цими двома контурами:
Цей метод автоматичної перевірки даних є ефективним способом виправлення помилок топології, особливо тих, які важко помітити людині. В переліку попереджень можна також побачити інші повідомлення, наприклад “Будівля в середині будівлі” (“Building inside building”), що є результатом подібної помилки. Ще інші попередження, такі як “Перетин доріг/водних шляхів” (“Crossing waterway/highway”) – не завжди є помилками. Це свідчить, що інструменти перевірки добре працюють для пошуку потенційних помилок, але для вирішення того чи є ці помилки критичними потрібен певний досвід. Розглянемо попередження “Лінії зі схожими назвами” (“Similarly named ways”) – це вже не пов’язано з топологічними помилками. Натисніть “Вибрати” (“Select”) для виділення двох ліній, щодо яких є сумніви. Чи ви можете сказати в чому помилка? Тут у нас два відрізки дороги, які насправді є частинами однієї дороги, але мають невелику відмінність в назві – слово “road” в одного з відрізків написане з великої літери, а в іншого з маленької. Зрозуміло що вони мають називатись однаково, в цьому випадку треба писати “road” з великої літери для обох відрізків. Використання пошуку в JOSMПошук у JOSM – це потужний спосіб перегляду даних. Він дозволяє вам використовувати пошукові запити, щоб вибрати лише потрібні вам об’єкти.
Чудово, яле як це може нам допомогти в перевірці даних? Що ж, тепер коли ми маємо виділеним однотипні дані, ми можемо перевірити їх на правильність заповнення
Ми можемо порівняти їх з теґами OpenStreetMap, які були використані в нашій моделі даних, та шукати помилки. Наприклад, цим теґом позначається для яких цілей використовується будівля. Раніше в проєкті Open Cities Dhaka, звідки ми взяли ці дані, не було узгоджено яким чином позначати будинки які мають багатоцільове призначення: building:use=multipurpose чи building:use=mixed. Оскільки перший теґ вже використовувався в інших країнах, було вирішено дотримуватись такої практики. Однак, ми бачимо, що один із будинків позначено як mixed. Нам треба це виправити. (Інший наочна помилка – три різних варіанти для гаражів [garage], але ми не будемо робити виправлення прямо зараз).
Пам’ятайте, якщо ви намагаєтесь повторювати всі дії з цих настанов, НЕ НАМАГАЙТЕСЬ завантажити ваші зміни до OpenStreetMap. Ці вправи надано лише для демонстрації можливостей. Повторне осбтеженняПри керуванні таким проєктом, як додавання будівель, повинен бути додатковий метод контролю якості, як для поліпшення роботи, так і для звітування про точність в кінці проєкту. Якщо в проєкті беруть участь кілька команд маперів, ймовірно що не всі вони працюють з однаковим рівнем якості. Навіть найкраща команда може припускатись помилок. Уявіть що кожна команда додає на мапу по 100 будинків кожного дня і досить можливо, що невеликий відсоток атрибутів, які вони внесли, можуть бути не точними. Таким чином, хороший проєкт буде містити процес повторної перевірки деяких виконаних робіт, виправлення помилок, визначення того, які групи маперів працюють з прийнятним рівнем якості, а також оцінювання відсотку помилок для підсумкового звіту. Звісно, немає потреби в повторному досліджені всіх будинків на території проєкту, але 5-10% мають бути перевірені. Місця для перевірки треба обирати випадково, але так щоб можна було порівняти роботу різних команд. Команди можуть перевірити роботу друг друга, а за можливості це можна доручити найбільш досвідченим маперам. Поширеною практикою є витрачання менеджерами одного з днів тижня на часткову перевірку території проєкту. Виправлення помилокЩо треба робити під час виявлення помилок? Якщо відсоток помилок є порівняно не великим (не більше 5% всіх будівель), про проблему треба сповістити команду що виконувала завдання, щоб вони самотужки виправили помилки та не робили їх в майбутньому. Виправлення мають бути збережені в OpenStreetMap, а результати перевірки записані. Якщо виявлено вищий рівень помилок, мають бути застосовані більш рішучі заходи. Про це треба відповідним чином повідомити виконавців, а територію, можливо, доведеться перевірити повністю, в залежності від критичності виявлених помилок. Відсоток помилок вищий за 10% скоріш за все є не прийнятним. Звітування про точністьНаступним завданням повторного обстеження є можливість звітувати про точність даних, що було створено по закінченню проєкту. Користувачам даних було б цікаво знати про ваші метрики та методологію, якою ви користувались для оцінки якості даних. Додавши цей процес, як частину вашої методології перегляду роботи, ви зможете чітко пояснити, як ви оцінювали якість даних, та надати чіткі цифри, які показують ймовірний відсоток помилок, що містяться у ваших даних. Наприклад, уявимо, що ми керуємо проєктом, який має на меті замапити 1000 будівель. Тож ми вирішуємо додати 10%, або 100 будівель, випадковим чином вибраних із цільової області. Ми починаємо і виявляємо, що зі 100 будинків, які ми перевірили, шість мають високий рівень помилок. Скажімо, ми визначаємо що це помилка, якщо більше ніж один атрибут вказаний невірно. Повторна перевірка має проводитись під час всього перебігу проєкту. Уявімо, що ми чекаємо закінчення проєкту і після перевірки виявляємо, що 40 зі 100 будинків додані з помилками! Це може означати невдачу всього проєкту. Краще виловити грубі помилки якнайшвидше, щоб надалі їх не припускатись. SQL запитиМабуть, найкращим інструментом аналізу буде виконання SQL запитів в системі GIS, наприклад, Quantum GIS. Це схоже на пошук даних в JOSM, але QGIS пропонує більш потужні інструменти для аналізу, хоча налаштування може зайняти трохи більше часу. Використання JOSM – це швидкий, звичайний спосіб перевірити дані на основні помилки, тоді як запит у QGIS краще підходить для пошуку відсутніх даних або неправильних атрибутів. Тут ми припустимо, що ви дещо знайомі з GIS, і зосередимось на побудові запитів, які можуть допомогти вам перевірити дані OpenStreetMap. Для вправ нижче, ми знову будемо використовувати дані проєкту Open Cities Dhaka, які ви можете отримати завантаживши файл: dhaka_sql.zip. Підготовка данихРозпакуйте архів та відкрийте два шейп-файли в QGIS. Ми почнемо з вирізання лише будівель в межах проєкту, щоб зробити наші запити простішими.
“building” != NULL AND “source” = ‘Open Cities Dhaka Survey’
Робота із запитами SQLТепер ми можемо робити запити до шару з будинками для пошуку можливих помилок. Подумаємо про деякі речі, про які ми могли б запитати. Модель даних цього проєкту має наступні атрибути, які слід зазначати для кожної будівлі - це:
Візьміть до уваги, що в шейп-файлі довжина назви параметрів обмежена 10 символами. То які питання ми маємо поставити? Які ймовірні помилки ми можемо знайти? Найпоширенішою помилкою є випадок, коли будинок додано в дані, але не всі поля з інформацією про нього заповнено. Тож спочатку ми перевіримо чи є у нас будинки з неповними параметрами. Звісно, для деяких параметрів, таких як name та start_date (рік зведення), припустимо мати пусті значення, не кожен будинок має назву та не для всіх з ним нам відомо, коли їх побудували. Але інші параметри мають бути заповнені. Спробуємо створити потрібний запит:
“building_c” = NULL OR “building_s” = NULL OR “building_l” = NULL OR “building_m” = NULL OR “vertical_i” = NULL OR “soft_store” = NULL OR “building_u” = NULL
Які ще запити можуть бути корисні? Ну, ви також можете перевірити наявність атрибутів, які не містяться у вашій схемі даних. Ми робили це в розділі Пошук в JOSM. За допомогою запиту можна знайти всі будівлі, атрибути яких не входять у вашу модель даних. Ви можете також використовувати запити для пошуку аномалій в даних, які не обов’язково є помилками. Наприклад, якщо ми відкриємо вікно фільтра для створення запитів та оберемо поле building_l, клацнемо “All” для перегляду всіх його значень, ми побачимо, що серед значень від 1 до 20 (це кількість поверхів, значення теґу building:levels) є 51. У нас є небезпідставні сумніви, що тут може височити 51 поверховий хмарочос, тож ми можемо з’ясувати де знаходиться цей об’єкт та зробити помітку для маперів щоб перевірити його ще раз. Запити можуть бути ефективним інструментом, що дозволяє нам шукати помилки в даних. В поєднанні з іншими можливостями QGIS вони можуть допомогти у створені мапи для подальшого процесу перевірки та уточнення даних. ПідсумкиВ цій частині настанов ми пройшлись по різним методам оцінки якості даних, які ми можемо застосовувати під виконання проєкту та виконали кілька вправ, щоб отримати досвід в перевірці даних OSM. Під час підготовки проєкту, або навіть для власного використання, ці методи можуть стати в пригоді.
Чи був цей розділ корисним?
Дайте нам знати та допоможіть нам покращити цей посібник!
|