Posuzování OSM dat

Zkontrolováno 2017-04-24

Tato sekce pokrývá proces kontroly kvality dat, zejména v souvislosti s řízením projektu mapování OSM, jakým je třeba ten, který vede Humanitární tým OpenStreetMap v různých zemích a projekty Open Cities v Bangladéši, Srí Lance a Nepálu. Demonstrované metody mohou být užitečné i v jiném kontextu, tam kde je kontrola kvality dat bežným úkolem.

Když se pokoušíme mapovat kompletní skupinu objektů a atributů v určité oblasti, potřebujeme nástroje na kontrolu chyb a posouzení přesnosti práce. V tomto průvodci si ukážeme několik metod kontroly dat, vysvětlíme si jednotlivé kroky této metody a důvody jejího použití. Dobře řízený projekt mapování bude zahrnovat každý z těchto tří procesů, a to jak pro vyhodnocení a opravu dat, tak pro podávání zpráv.

  • Denní kontroly
  • Opakovaný průzkum
  • SQL dotazy

Důlěžitost těchto metod posuzování narůstá s velikostí datového modelu a počtem nasbíraných objektů. Posouzení datového modelu, který zahrnuje pouze zajímavá místa (POI), by například nezabralo mnoho času a úsilí:

Data Model POIs

V našem případě si může položit tyto otázky:

  • Byly POI zmapovány ve všech lokacích?
  • Nechybí u některého POI atribut name?
  • Nechybí u některého POI atribut type?
  • Nechybí u některého POI atribut phone number?
  • Je hodnota pole name správně kapitalizována?
  • Dává phone number smysl?

Obvykle je datový model mnohem komplexnější, jako třeba v případě mapování budov. Zvažte datový model, který obsahuje toto:

Data Model Buildings

Teď si představte, že mapujete tisíce takových budov a analýza se stane více kritickou. V tomto návodu použijeme budovy jako příklad, ačkoliv stejné metody lze aplikovat i na posuzování jiných typů objektů.

Denní kontrola

Data by se měly pravidelně kontrolovat a validovat. Mělo by to být denně nebo nanejvýš týdně. Pro vedoucího týmu mapovačů je to důležitý úkol, protože diky včasnému odchycení chyb a špatných úprav, se mohou editoři poučit a dělat věci správně.

Teď si ukážeme některé z jednoduchých metod kontroly dat pomocí JOSM. Tady je několik otázek, které si klademe nad našimi daty:

  • Obsahují topologickéchyby (jakými je překrývání budov nebo nesprávná relace)?
  • Obsahují chyby v tagu (chybně zapsané, špatně použitá kombinace key-value)?
  • Jsou data kompletní, vzhledem k datovému modelu?

Pojďme si zkusit najít odpovědi na tyto otázky v JOSM. Budeme předpokládat, že zkoumáme práci ostatních, ale stejné procesy budou fungovat (a mělo by to být jednodušší) při analýze vlastní práce.

Použijeme ukázkové data z mapovacího projektu Open Cities v Dhaka. Stáhnout si je můžete odsud: dhaka_validation_example.osm

NEZKOUŠEJTE ukládat vaše změny v OpenStreetMap. Tato cvičení jsou pouze pro demonstrační účely.

Dhaka Example in JOSM

Validace dat

V prvním kroku kontroly dat si spustíme Validační nástroj v JOSM, který automaticky kontroluje načtená data, podezřelá z výskytu chyb.

  • Aktivujte nástroj kliknutím na tlačítko Validačního nástroje v levé části JOSM. (Není to nutné, pokud je už Validační panel otevřen)

Validation Tool

  • V dalším kroku se ujistěte, že není nic vybráno, kliknutím do prázdného místa v mapě. Pokud jsou některé objekty vybrané, tak Validační nástroj zkontroluje jen tyto objekty. (někdy se vám to může hodit, ale nyní potřebujeme zkontrolovat celý soubor)
  • Klikněte v panelu na tlačítko “Validovat”.

Validate Button

  • Měl by se zobrazit seznam varování:

Validation Results

  • Objeví se také nová vrstva, zobrazující umístění chyb. Prozatím si tuto vrstvu skryjeme.

Validation Layer

Podívejme se na některá varování. Vidíme tam čtyři varování “Crossing buildings”. Toto varování znamená, že se budovy v některém místě překrývají. Vyberte první položku v seznamu, klikněte na ni pravým tlačítkem a vyberte “Zoom to problem.” (Přiblížit problém)

Validation Zoom to Problem

Taktéž klikněte na tlačítko “Vybrat” v spodní části Validačního okna, čímž vyberete čáry, kterých se to týká. Zjistíte, že u těchto dvou je problém:

Validation Selected Ways

  • Tuto chybu bychom bez validačního nástroje nikdy neodhalili. Pokud se přiblížíte velmi blizko, zjistíte malý přesah mezi budovami, což je topologická chyba, protože budovy se většinou nepřekrývají. Opraví se to přesunem prostředního bodu. Pokud se budovy dotýkají, což asi ano, střední bod může být připojený k čáře.
  • Jakmile je chyba opravena, znovu spusťte Validační nástroj a toto varování ze seznamu zmizí.

Tato metoda automatické kontroly dat je efektivním způsobem opravy topologických chyb, zejména těch, kterých si člověk těžko povšimne. V tomto seznamu vidíte, že dalším varováním může být “Building inside building” (Budova uvnitř budovy), což je obdobná chyba.

K dalším varováním patří například “Crossing waterway/highway,” (Křížení vodní cesty / silnice) nejsou nutně chyby. Jen to ukazuje, že validační nástroj je dobrý při hledání možných chyb, ale vyžaduje, aby se někdo podíval, zda jde o chybu důležitou nebo ne.

Validation Crossing Ways

Podívejme se na varování pod “Similarly named ways” (Podobné názvy cest), kde je chyba, která není topologická. Klikněte na “Vybrat” pro zobrazení dvou cest, kterých se to týká.

Validation Select Crossing Ways

Víte, kde je chyba? Máme tady dva různé segmenty silnice, které ve skutečnosti tvoří jednu silnici, avšak mají mírně odlišné názvy - “road” má různou velikost prvního písmene. Vypadá to, že by měly mít stejný název a v tomto případě je správně “Road”.

Využití vyhledávání v JOSM

Vyhledávání v JOSM je mocný pomocník při kontrole dat. Umožňuje zadat vyhledávací podmínky, známé též jako dotazy a vybrat tak pouze požadované funkce.

  • Vyhledávací funkci najdete v Upravit -> Hledat nebo zmáčkněte CTRL+F.

JOSM Menu Search

  • Můžete zde zadat mnoho různých dotazů, detaily a příklady vidíte v samotném vyhledávacím okně a také kliknutím na tlačítko “Nápověda”.
  • Teď si můžeme zkusit vybrat všechny budovy. Skoro každé budově je přiřazen tag building=yes a některé mají i building=construction. To znamená, že můžeme použít dotaz, který vypadá takto:

    building = yes OR building=construction

  • Tímto příkazem vyberete všechny budovy, pokud všichni zadali u budov správný tag, můžeme také použít zástupný znak, díky kterému se vyberou všechny objekty s hodnotou key building.

JOSM Search String

  • Všechny budovy budou vybrány.

Je to skvělé, ale jak nám to pomůže při kontrole dat? Když teď jsou vybrány všechny objekty jednoho typu, můžeme hledat nesprávné tagy.

  • Podívejte se do okna Značky (Properties) - jsou tam všechny tagy pro všechny vybrané objekty. Všechny sdílejí stejné klíče (keys), ale protože každý objekt má jiné hodnoty, tak jsou označeny jako <různé> (different).

JOSM Search Properties

  • Klikněte na tag building:use a poté na “Upravit.” (Edit)

JOSM Search Properties Edit

  • TADY OPATRNĚ! Když upravíte hodnotu a kliknete na OK, změníte tento tag u všech vybraných budov. A to by bylo hodně špatně.
  • Místo toho klikněte na rozbalovací menu vedle Hodnoty (Value).

JOSM Search Properties Edit 2

  • Všimněte si, že všechny hodnoty tučně mají vedle sebe číslo v závorce. Udává počet vybraných objektů, které mají tento tag.

Můžeme to porovnat s tagy OpenStreetMap, které byly mapovány v našem datovém modelu a hledat v nich chyby. Tento tag například reprezentuje budovu. Dříve v projektu Open Cities Dhaka (z něhož tato data pochází) panovala nejistota ohledně toho, zda má být označena budova se smíšeným využitím building:use=multipurpose nebo building:use=mixed. Protože bývalá značka byla dříve používána v jiných zemích, tak byla zvolena. Vidíme však, že jedna z budov byla označena jako mixed (smíšená). Musíme to opravit. (Další zjevnou chybou jsou tři různé výrazy pro garage, ale to tady teď řešit nebudeme.)

  • Objekt s tagem building:use=mixed nemůžeme změnit z toho místa, protože máme vybrány stovky objektů. K opravení chyby, ji nedříve bude potřeba najít. Jak? Hádáte správně - pomocí Vyhledávacího nástroje.
  • Klikněte na “Cancel” pro zavření dialogového okna. Pamatujte, potvrzení OK může být nebezpečné.
  • Znovu otevřete Vyhledávání a vložte následující dotaz: “building:use”=mixed
  • Nezapomeňte na uvozovky, protože dvojtečka (:) má ve vyhledávání také svůj význam. Tím se vybere jedna budova, která obsahuje tuto značku. Hodnota by se měla opravit na multipurpose.

Pamatujte, pokud procházíte tento návod, NEZKOUŠEJTE uložit vaše úpravy do OpenStreetMap. Tyto příklady jsou pouze pro demonstrační účely.

Opětovný průzkum

Při řízení projektu, jakým je podrobný průzkum budov, by měla existovat další metoda kontroly kvality a to jak pro zlepšení práce, tak pro podávání zpráv o přesnosti na konci projektu.

Pokud při průzkumu oblasti spolupracuje více týmů, pak je běžné, že jeden nebo více týmů nepodá naprosto uspokojivý výkon. Dokonce i týmy, které jinak vykonávají efektivní a přesnou práci, mohou někdy udělat chyby. Představte si týmy, které zmapují 100 budov denně - je pravděpodobné, že malé procento atributů, které nasbírají, nemusí být správné.

Dobrý projekt tedy bude zahrnovat proces opětovné kontroly některé provedené práce, opravu chyb, určení mapovacích týmů, které podávají uspokojivý výkon a výpočet přibližného procenta chyb pro závěrečnou zprávu.

Opětovný průzkum každé budovy v cílové oblasti samozřejmě nemá smysl, ale 5-10% budov by mělo být přezkoumáno. Oblasti k přezkoumání by měly být vybrány z různých míst, aby byly porovnány i průzkumné týmy. Průzkumné týmy mohou zkontrolovat práci jiných týmů, nebo pokud je to možné, mohou provádět hodnocení zkušenější manažeři. Je běžnou praxí, že manažeři jeden den v týdnu věnují kontrole cílové oblasti.

Oprava chyb

Co udělat, když najdete nějaké chyby?

Pokud se vyskytne malé množství chyb (méně než 5% budov), měly by být problémy předloženy původnímu mapovacímu týmu, aby si jich byl vědom a nemusel je znovu opakovat. Data by měla být opravena v OpenStreetMap a výsledek opakovaného průzkumu by měl být zaznamenán.

Pokud existuje mnoho chyb, možná bude třeba podniknout datší kroky. Průzkumný tým je potřeba vhodným způsobem oslovit a jím mapované oblasti bude nejspíš potřeba znovu prozkoumat, podle toho, jak nepřesná data byla. Nepřesnost větší než 10% je považována za nepřijatelné množství.

Dodání zprávy o přesnosti mapování

Druhým cílem opětovné kontroly je předání zpravy o přesnosti dat po uzavření projektu. Uživatelé dat budou chtít znát vaše metriky a metodiky hodnocení kvality dat.

Zahrnutím tohoto procesu do své metodiky kontroly budete moci jasně vysvětlit, jak jste hodnotili kvalitu dat a poskytnout ověřená čísla, která představují přibližné procento chyb obsažených v datech z průzkumu.

Představme si například, že řídíme projekt, který mapuje 1000 budov. Rozhodli jsme se tedy namapovat 10% z nich, nebo 100 budov, náhodně vybraných z cílové oblasti. Jdeme ven a zjistíme, že ze 100 budov, které jsme znovu prozkoumali, šest z nich má vysokou míru nepřesnosti. Řekněme, že definujeme nepřesnost tím, že máme více než jeden atribut nesprávný. Šest procent průzkumu je tedy špatně - můžeme tyto chyby opravit, ale je potřeba myslet na to, že šest procent nepřesnosti je pravděpodobně ve všech 1000 budovách. To by mělo být hlášeno jako pravděpodobná chyba na konci projektu.

Kontrola by měla být prováděna v průběhu celého projektu. Představte si, že jsme v tomto příkladu čekali až do konce a 40 ze 100 budov bylo špatných! Mohlo by to zničit celý projekt. Je lepší zachytit chyby včas a opravit je dřív, než se projevý ve velkém měřítku.

SQL dotazy

Pravděpodobně nejlepším analytickým nástrojem bude spuštění SQL dotazů v systému GIS, jako je Quantum GIS. Je to podobné vyhledávání dat v JOSM, ale nabízí výkonnější analýzu, i když nastavení může trvat trochu déle. Použití JOSM je rychlý a pravidelný způsob, jak zkontrolovat základní chyby, zatímco dotazování v QGIS je vhodnější pro nalezení chybějících dat nebo nesprávných atributů.

Budeme předpokládat, že o GIS něco málo víte a zaměříme se na vytváření dotazů, které vám pomohou zkontrolovat data OpenStreetMap. Pro níže uvedená cvičení znovu použijeme data z projektu Open Cities Dhaka, které můžete stáhnout v balíku dhaka_sql.zip. OpenStreetMap data byla exportována pomocí HOT Export Tool (export.hotosm.org) a hranice cílové oblasti byly definovány na počátku projektu.

Příprava dat

Rozbalte balík souborů a načtěte dva shapefile do QGIS. Začneme tím, že si v oblasti projektu vyčleníme pouze budovy, abychom později naše dotazy zjednodušili.

  • Nejprve si vybereme pouze polygony v cílové oblasti. K tomu použijeme Spatial Query Plugin. Pokud ho již nemáte nainstalovaný, jděte do Plugins -> Manage a Install Plugins, kde jej vyhledáte a nainstalujete.
  • Poté Vector -> Spatial Query -> Spatial Query.
  • V nastavení vyberte funkce z planet_osm_polygon které jsou uvnitř target_area.

QGIS Spatial Query

  • Potvrďte pomocí Apply. Budou vybrány pouze polygony uvnitř cílové oblasti.

QGIS Map Image

  • Pravým tlačítkem klikněte na vrstvu a uložte výběr jako nový shapefile. Přidejte ji do projektu.

QGIS Save Selection As

  • Dále nastavíme filtr pro polygony, které jsou budovy a byly vytvořeny vrámci projektu.
  • Pravý klik na planet_osm_polygon a poté vyberte “Filter…”
  • Vložte následující dotaz:

“building” != NULL AND “source” = ‘Open Cities Dhaka Survey’

  • Klikněte na OK. Filtrováním dat pomocí tohoto dotazu si zobrazíte pouze polygony, které mají něco ve sloupci building. Vyřadí se tím taktéž budovy, které nemají zdrojový tag přidružený k projektu.
  • Tato data uložte jako nový shapefile. Tento soubor poté využijeme pro naše SQL dotazy.

QGIS Map Image 2

SQL dotazy

Spustíme dotazy nad vrstvou budov a zkusíme nalézt chyby. Podívejme se na některé věci, na které bychom se mohli dotázat. Z datového modelu u tohoto projektu lze vyčíst atributy, které by měly být shromážděny pro každou budovu - jsou to:

  • name
  • building
  • building:levels
  • building:use
  • building:vertical_irregularity
  • building:soft_storey
  • building:material
  • building:structure
  • start_date
  • building:condition

Všimněte si, že v shapefile jsou tyto názvy atributů zkráceny, protože názvy sloupců jsou omezeny na 10 znaků.

Jaké otázky tedy chceme položit? Jaké chyby jsou pravděpodobné? Jednou z běžných chyb je, že budova byla zmapována, ale ne všechny atributy byly shromážděny. Chceme tedy spustit dotaz, který ukáže všechny budovy, které nemají kompletní sadu atributů. U některých atributů, jako je name a start_date (rok výstavby), samozřejmě nevadí, pokud jsou prázdné, protože ne každá budova má jméno a někdy je rok výstavby neznámý. Ale ostatní atributy by měly být vždy shromážděny.

Pojďme si takový dotaz vytvořit:

  • Klikněte pravým tlačítkem na vrstvu budov (vrstvu, kterou jsme vytvořili v předchozí části) a klikněte na „Filtrovat …“ Tím se otevře tvůrce dotazů. Zde můžeme psát složité dotazy pro zobrazení pouze vybraných dat.
  • Můžete si vytvořit svůj vlastní dotaz dvojitým kliknutím na pole, operátory a hodnoty, nebo můžete zkopírovat následující dotaz:

“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

  • Klikněte na „Test“ a tento dotaz vám vrátí 125 objektů. To znamená, že z přibližně 3500 budov, které byly zmapovány, 125 z nich chybí jeden nebo více těchto atributů.

QGIS Query Result

  • Klepnutím na OK zobrazíte pouze ty budovy, které splňují podmínky v dotazu.

QGIS Map Image 3

  • Tyto budovy lze poté podrobněji prozkoumat a zjistit, které atributy chybí a zda je potřeba je znovu prozkoumat. Potom je možné použít QGIS k vytvoření mapy, kterou by průzkumný tým mohl vzít a přidat chybějící atributy budovy.

Jaké další dotazy by mohly být užitečné? Můžete také chtít zkontrolovat atributy, které nejsou obsaženy ve vašem datovém schématu. Udělali jsme to v sekci vyhledávání v JOSM. Pomocí dotazu můžete najít všechny budovy, jejichž atributy nejsou zahrnuty ve vašem datovém modelu.

Lze to také využít při hledání anomálií, které jsou pravděpodobné, ale nemusí znamenat chybu. Pokud například spustíme tvůrce dotazů, vybereme building_l a klikneme na „All“, načtete všechny možné hodnoty atributů, vidíme, že většina budov má číslo mezi 1 a 20 (Tento atribut je building:levels, počet podlaží v budově). Ale je tam také číslo 51. Ale nevypadá to, že se v této oblasti bude tyčit 51patrová budova, tak si ji můžeme zobrazit a přidat si k ní poznámku, abychom to zkontrolovali s mapovači.

Dotazování může být účinným způsobem, jak hledat možné chyby v sadě dat. V kombinaci s dalšími funkcemi QGIS může být využito k vytváření map, které lze použít při kontrole dat v oblasti.

Shrnutí

V tomto tutoriálu jsme prošli několik účinných metod pro udržování kvality dat během plnění projektu a provedli několik praktických cvičení, při kterých jsme si procvičili kontrolu OSM dat. Při organizaci mapovacího projektu nebo dokonce při posuzování dat v oblasti pro osobní potřebu se tyto metody mohou hodit.