Ahoj,
chtěl jsem se zeptat, co je zač "Detekce z fotek" na
http://osm.fit.vutbr.cz/OsmHiCheck/
Ptám se proto, že jsem nějakou dobu strávil na způsobem detekce v datech
(spíše ve fotografiích) zcela chybějících rozcestníků. Dám to sem jen do
zápisu, protože by se to mohlo třeba hodit, nebo někoho jiného by něco
napadlo.
Způsob jak najít chybějící rozcestník je celkem jednoduchý. Porovnat
naši mapu s nějakou turistickou a najít ty, které nám chybí, vypravit se
tam a zmapovat. Jenže já mám rád věci strojově zpracované a tak jsem
vymyslel následující systém, který využívá naše fotky. Krok 1: rozepsat
každý rozcestník do XML, krok 2: projít každý rozcestník a zjistit,
jestli jeho cíle (položky na tabulkách) existují jako samostatné
rozcestníky, pokud ne, tak vypsat.
Krok 2 je celkem jednoduchý, je to nějaké XQuery, které má pro formát
XML, který jsem stanovil takovouhle podobu:
for $dest in timy/tim/cil order by number($dest/@vzdalenost) let $match
:= timy/tim/jmeno[lower-case(text()) eq lower-case($dest/@jmeno)] let
$malt := timy/tim/alt[lower-case(text()) eq lower-case($dest/@jmeno)]
return if (not($match) and not($malt)) then concat($dest/@jmeno,'
',$dest/@vzdalenost,' km od ',$dest/parent::*/jmeno/text(),',
',$dest/parent::*/@id,'
') else null
Samotné XML vypadá takhle:
<timy>
<tim cislo="761" id="PJ761" oblast="PJ">
<jmeno>Neslívský ryb. (rozc.)</jmeno>
<alt>Neslívský rybník (rozc.)</alt>
<cil vzdalenost="0.5" jmeno="Neslívský rybník"/>
<cil vzdalenost="2.5" jmeno="Potoky (háj.)"/>
<cil vzdalenost="16.5" jmeno="Mirošov (nám.)"/>
<cil vzdalenost="1" jmeno="Pod Lopatou"/>
<cil vzdalenost="7.5" jmeno="Nezvěstice (ŽST)"/>
<cil jmeno="Hádek háj. (rozc.)" vzdalenost="1"/>
<cil jmeno="Zvoníčkovna (NPR)" vzdalenost="4"/>
<cil jmeno="Kornatice (ŽST)" vzdalenost="8"/>
<cil jmeno="Hádecký potok" vzdalenost="1"/>
<cil jmeno="Lopata zříc. (rozc.)" vzdalenost="1.8"/>
<cil jmeno="Lopata (zříc.)" vzdalenost="2"/>
</tim>
<tim cislo="750" id="PJ750" oblast="PJ">
<jmeno>Lopata (zříc.)</jmeno>
</tim>
<tim cislo="641" id="PJ641" oblast="PJ">
<jmeno>Pod Lopatou, rozcestí</jmeno>
<alt>Pod Lopatou (rozc.)</alt>
<cil jmeno="Kozel (kemp)" vzdalenost="3"/>
<cil jmeno="Šťáhlavy (ŽST)" vzdalenost="5"/>
<cil jmeno="Šťáhlavy (nám.)" vzdalenost="6"/>
<cil jmeno="Varta" vzdalenost="4"/>
<cil jmeno="Nezvěstice (ŽST)" vzdalenost="5.5"/>
<cil jmeno="Hádecký potok" vzdalenost="0.5"/>
<cil jmeno="Zvoníčkovna (NPR)" vzdalenost="5.5"/>
<cil jmeno="Kornatice (ŽST)" vzdalenost="9.5"/>
<cil jmeno="Lopata (zříc.)" vzdalenost="0.3"/>
<cil jmeno="Mirošov (nám.)" vzdalenost="9"/>
<cil jmeno="Strašice (U Libuše)" vzdalenost="20.5"/>
<cil jmeno="Neslívský rybník (rozc.)" vzdalenost="1"/>
<cil jmeno="Potoky (háj.)" vzdalenost="3.5"/>
<cil jmeno="Rokycany (ŽST)" vzdalenost="11"/>
<cil jmeno="Lopata zříc. (rozc.)" vzdalenost="0.3"/>
<cil jmeno="Lopata (zříc.)" vzdalenost="0.5"/>
</tim>
<tim cislo="642" id="PJ642" oblast="PJ">
<jmeno>Lopata zříc. (odb.)</jmeno>
<alt>Lopata zříc. (rozc.)</alt>
<cil jmeno="Hádek háj. (rozc.)" vzdalenost="0.7"/>
<cil jmeno="Mirošov (nám.)" vzdalenost="8.5"/>
<cil jmeno="Strašice" vzdalenost="20"/>
<cil jmeno="Pod Lopatou" vzdalenost="0.3"/>
<cil jmeno="Šťáhlavy (ŽST)" vzdalenost="5.5"/>
<cil jmeno="Šťáhlavy (nám.)" vzdalenost="6.5"/>
<cil jmeno="Pod Lopatou" vzdalenost="0.3"/>
<cil jmeno="Zvoníčkovna (NPR)" vzdalenost="5.8"/>
<cil jmeno="Kornatice (ŽST)" vzdalenost="9.8"/>
</tim>
</timy>
A výsledek dotazu vypadá třeba takhle:
Pod Lopatou 0.3 km od Lopata zříc. (odb.), PJ642
Hádecký potok 0.5 km od Pod Lopatou, rozcestí, PJ641
Hádek (háj.) 1 km od Hádek (hájovna,rozc.), PJ763
Pod Lopatou 1 km od Neslívský ryb. (rozc.), PJ761
Hádecký potok 1 km od Neslívský ryb. (rozc.), PJ761
Hádek háj. 1.5 km od Zvoníčkovna (NPR), PJ644
Pod Lopatou 1.5 km od Neslívský rybník, PJ678
...
A říká, který rozcestník chybí a který na něj odkazuje, aby se snadno
určila přibližná poloha. Třeba položka vzdálenost není nutná, ani ten
ref není důležitý. Problém je, kde získat přepis těch tabulek. Kostra je
daná OSM daty, kdy víme, jak se rozcestník jmenuje. Ale potřebujeme také
odkaz na sousední rozcestníky, které nám v datech třeba chybí. Proto je
třeba z fotek získat destinace. Ručně opisovat, to šílenost (pro jednoho
člověka), proto jsem tuhle cestu jako celek zavrhl. Nicméně, když jsem
viděl "detekce z fotek" tak mi svitla naděje na strojové čtení :) proto
se ptám. A jak říkám, dávám to do zápisu, aby moje celkem
několikahodinová práce úplně nezapadla.
Na závěr jen dodám, že nevím kolik procent všech rozcestníků (KČT) nám
chybí, a jestli to má vůbec cenu, ale programování zdar!
Honza, http://osm.paws.cz
_______________________________________________
Talk-cz mailing list
Talk-cz@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-cz