Zdravim,

kdysi v lete jsem tady psal [1], jak zkousim importovat adresy a obrysy budov z
katastralni mapy CUZK. Protoze jsem nemel prilis casu, tak jsem
program pro import
nedotahnul do konce. Ted jsem se k tomu vratil a do celkem pouzitelne
podoby odelal aspon
import adresnich bodu.

Rozpoznavani obrysu budov se mi nepodarilo udelat natolik spolehlive,
aby slo nejak
rozumne pouzivat, takze to prozatim odkladam.

Import jsem vyzkousel na uzemi ORP Broumov [2], jedna se asi o cca 40
obci / mestskych
casti na 31 katastralnich uzemich - cca 270km2.

Vysledky jsou nasledujici:
Broumovsko      - 3500 adresnich bodu (nalezena jednoznacna shoda mezi KM
a databazi MVCR)
                - 170 bodu z KM, ke kterym se nepodarilo nalezt zaznam v 
databazi adres
                - 300 adres, ke kterym se nepodarilo najit bod v KM

Broumov - 800
                - 24
                - 200

Mesto Broumov uvadim zvlast, protoze na jednom katastralnim uzemi jsou
4 mestske casti
takze je potreba najit hranice mestkych casti rucne (napr. podle
ulic). Navic se mi zda,
ze je "neco shnileho" v databazi adres pro Broumov. Nevim, kde by
mohlo byt 200 budov pro
tech 200 adresnich bodu bez polohy. To se pri rucni kontrole snad
prehlednout neda.

Castou chybou je, ze v KM je uvedeno cislo evidencni a databazi adres
cislo popisne. Na
Broumovsku je to cca 50 pripadu. Pokud se podari zjistt, jaky zdroj je
pravdivy, tak neni
problem tyto chyby napravit.

Ja jsem uploudoval pouze ty adresni body, pro ktere byla nalezena
jendoznacna shoda.
Jestli uplodovat i ty body, ke ktery se nepodarilo najit adresu v
databazi MVCR (treba s
tagem FIXME) zalezi na dohode. Jaky je na to vas nazor? Stalo by za to
uchovavat nekde i
seznam adres, ke kterym se nepodarilo najit bod v KM?


Pokud chcete import vyzkouset sami, tak ctete dal.

Pro provedeni importu je potreba
1) balicek programu ode me - lkabrt.aspone.cz/osm/cuzk.zip
   (potreba je .NET framework 3.5)
   pokud si nekdo chce prohlednou zdrojove kody
lkabrt.aspone.cz/osm/cuzk-source.zip
2) databaze adresnich bodu [3]
3) zakreslene katastralni uzemi v OSM souboru (pouzil jsem vyrez z
vektorizovne mapy od
    hanoje [4], kam jsem rucne doplnil relace a nazvy katastralnich uzemi)
4) trochu casu - jak vaseho, tak vaseho pocitace :-)

Postup
1) stazeni katastralni mapy (staci definicni body budov) - program
tile-downloader.exe

parametry programu:
-north, -south, -east, -west    - definuje oblast ke stazeni
-addressPoints                  - stahne definicni body budov
-map                            - stahne katastralni mapu
-output                         - adresar pro ulozeni stazenych souboru

priklad:
tile-downloader.exe -north 50.6647 -west 16.0285 -south 50.4902 -east 16.4517 -
addressPoints -output data/broumovsko


2) nalezeni a rozpoznani adresnich bodu - program tile-processor.exe

parametry programu:
-tiles                          - adresar se stazenymi soubory
-output                         - soubor pro ulozeni vysledku

priklad:
tile-processor.exe -tiles data/broumovsko -output data/broumovsko.csv

Vystupem programu je CSV soubor se souradnicemi adresnich bodu a
jejich popisem, tak jak
ho rozpoznalo OCR

3) vytvoreni XML souboru, ktery definuje prirazeni mezi katastralnim
uzemim a obci / casti
obce z databaze adresnich bodu

Prirazeni muze byt (podle toho, co jsem odpozoroval) 1:N nebo N:1 tzn.
jedno katastralni
uzemi muze tvorit vice casti obce nebo jedna obec / cast obce muze byt
tvorena vice
katastralnimi uzemimi

format souboru je nasledujici:
<project>
  <territory name="Meziměstí">
    <district country-region="Královéhradecký kraj" region="Broumov"
town="Meziměstí"  townDistrict="Meziměstí" />
  </territory>
  <territory name="Starostín">
    <district country-region="Královéhradecký kraj" region="Broumov"
town="Meziměstí" townDistrict="Meziměstí" />
  </territory>

  <territory name="Trutnov">
    <district country-region="Královéhradecký kraj" region="Trutnov"
town="Trutnov" townDistrict="Dolní předměstí" />
    <district country-region="Královéhradecký kraj" region="Trutnov"
town="Trutnov" townDistrict="Dolní Staré město" />
  </territory>

  <territory name="Jívka">
    <district country-region="Královéhradecký kraj" region="Trutnov"
town="Jívka" />
  </territory>
</project>

atribut name u elementu territory odpovida nazvu katastralniho uzemi z OSM
atributy elementu district definuji oblast / cast obce z databaze [2]
country-region                  -kraj
region                          -oblast
town                            -obec
townDistrict                    -cast


4)Prirazeni adres z databaze bodum z mapy - program merge-cuzk-db.exe

parametry:
-addressesDB                    - XML soubor s databazi adres [2]
-territories                    - OSM soubor s definovanymi katasrtalnimi 
uzemimi
-addressPoints                  - CSV soubor z bodu 2)
-mappings                       - XML soubor z bodu 3)
-output                         - definuje umisteni a jmeno souboru 
([path]/[output-

filename-prefix])

priklad:
merge-cuzk-db.exe -mappings ms.map -territories borders.osm
-addressPoints ms.csv -
addressesDB adresy.xml -output output/ms

vystupem progamu jsou 3 soubory:
[output-filename-prefix]-matched.osm            - obsahuje body, kterym se 
podarilo

jednoznacne priradit adresu
[output-filename-prefix]-unmatched.osm          - obsahuje body, kterym se 
nepodarilo

jednoznacne priradit adresu
[output-filename-prefix]-unmatched-ap.txt       - obsahuje seznam adres, kterym 
se

nepodarilo priradit zadny bod

5)Docisteni dat
Data v souboru ...-matched.osm by mela byt v poradku, soubor obsahuje
pouze adresni body,
kterym se podarilo jednoznacne priradit adresu.

Soubor ...-unmatched.osm je treba rucne zkontrolovat, obsahuje body,
ke kterym se
nepodarilo najit v databazi adresu. Vetsina z techto bodu jsou budovy
bez c.p./c.e. (napr.
garaze, ktere jsou na mape blizko, popisky se prekryvaji a ocr si s
tim nedokaze poradit).
Jak se vyporadat s nekonzistenci dat v KM a databazi adres je, jak uz
jsem psal, otazkou
diskuze.

Soubor ...-unmatches-ap.txt - seznam adres z databaze MVCR, ke kterym
se nepodarilo najit
zadny bod na mape.

6) Docisteno, zkontrolovano - hura uplodovat na server :-)

Lukas

[1] http://lists.openstreetmap.org/pipermail/talk-cz/2009-June/003318.html
[2] http://www.openstreetmap.org/?lat=50.5956&lon=16.2606&zoom=12&layers=B000FTF
[3] http://aplikace.mvcr.cz/adresa/adresy.zip
[4] http://osm.templ.net/kucr.osm.bz2

_______________________________________________
Talk-cz mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-cz

Odpovedet emailem