2011. szeptember 1., csütörtök

dxf poligonizálása python script segítségével

Korábban írtam egy jegyzetet miként lehet postgis segítségével poligont létrehozni dxf állományból, azonban óriási hibát vétettem, hogy a helyrajzi szám pontfelhőjét nem megfelelő adattípusban kérdeztem le, így a kerekítés miatt 'elmászkáltak' a hrsz pontok, ezért most újraírtam pythonban az egész folyamatot. 
Érdekes, de autocad -> shp konvertálója is ugyanezt a hibát produkálja.
Feladat pontosan az volt, hogy poligonizálni kellett a 2010 dec 31-i KUVET dxf állományokat településenként beleírva a hrsz-t és településnevet, majd a szakaszmérnökségek + 10 km puffer zónáját érintő településeket le kellett válogatni és átmásolni az adott szakaszmérnökség könyvtárába. 

A feladatot gdal/ogr és shapely python apija segítségével oldottam meg. (szerettem volna arcgisscriptinggel, hogy változatos legyen, de 292 dxf Describe-olása után elszáll egy runtime error üres alert ablakkal...) . 
Létrehoztam egy metódus fájlt, egy irányító fájlt és egy egyesítő fájlt, amelyek az alábbi linkekről letölthetőek.


A lényeg a kuvet_iranyito.py  48. sorában, illetve a kuvet.py hrsz_hozzafuz metódusában van. A poligonizálást shapely (geos) könyvtár hajtja végre:
>>>poligonok=list(polygonize(dxf_fhatar))
Mostani KUVET adataink nagyon jók, de a korábbiaknál kellene figyelni azokra az esetekre, ahol a egy réteg nem adja ki az összes poligont (pl amikor még volt zartkert és error réteg:)). Ekkor tovább kellene tisztítani az input shapely listát, illetve a hrsz_hozzafuz metodusban is figyelni, hogy nem válogat le egyező poligonokat (pl ha két hrsz pont csak egy poligonba esik), illetve, hogy minden hrsz kapjon poligont magának.


Egyébként:  http://www.gdi2011.hu/ Lehet kienni az Esrit a vagyonából jeee:P

Nincsenek megjegyzések:

Megjegyzés küldése