|
|
Převodník vektorových dat mezi souřadnicovými systémy S-JTSK a WGS-84Martin Krempl AbstractSight work deal with transformation vector data among system of coordinates S-JTSK a WGS-84. In exordium are brief described systems of coordinates used on territory CR. In further part is effected inquiry status quo of applications for transformation vector data. Further is described data format Shape-file a DXF. Follows brief action statement and control of program Tranďák 1.0. Lastly they are state results sense transformation, which were effected for check rightness of transformation and further there are state suggestions for the next improvement of application. AbstraktPředložená práce pojednává o transformaci vektorových dat mezi souřadnicovými systémy S-JTSK a WGS-84. V úvodní části jsou stručně popsány souřadnicové systémy používané na území ČR V další části je proveden průzkum současného stavu aplikací pro transformaci vektorových dat. Dále je popsána struktura datových formátů Shape-file a DXF. Následuje stručný popis činnosti a ovládání programu Tranďák 1.0. Na závěr jsou uvedeny výsledky testovacích transformací pro ověření správnosti transformace a dále jsou uvedeny návrhy pro další vývoj této aplikace. ÚvodV různých vědních oborech (také v GIS) je třeba k určení polohy objektů reálného světa v prostoru znát jednu, dvě, popřípadě tři souřadnice. Tyto souřadnice jsou vždy vztaženy k určitému souřadnicovému systému ať už je lineární 1D, rovinný 2D nebo prostorový 3D. Postupným vývojem kartografie, geodézie, dálkového průzkumu Země a jiných věd zabývajících se sledováním a zobrazováním objektů a jevů na povrchu Země došlo k vytvoření mnoha souřadnicových systémů (dále jen SS). Existují SS lokální a globální. Lokální SS byly navrhnuty tak, že svou přesností vyhovují určitému omezenému území. S rozvojem kosmické geodézie začaly vznikat globální souřadné systémy, které jsou použitelné pro celý povrch planety. Jejich univerzálnost použití pro celou planetu je velkou výhodou, jelikož si můžeme zobrazit 2 body, které jsou na opačných stranách Zeměkoule v jednom SS a můžeme tak zkoumat jejich vzájemnou polohu. Použití globálních SS se tedy z tohoto hlediska jeví vhodnější, z historické kontinuity se však hlavně používají lokální SS. Na území ČR se používají následující souřadnicové systémy: · Světový geodetický referenční systém 1984 (WGS-84) · Evropský terestrický referenční systém (ETRS) · Souřadnicový systém Jednotné trigonometrické sítě katastrální (S-JTSK) · Souřadnicový systém 1942 (S-42) Potřeba transformace mezi SS nastane obvykle ve dvou případech: · Když pořizujeme nová data. Ty jsou uloženy v SS, se kterým daná aplikace nebo technologie pracuje. Pokud je chceme zobrazit v jiném SS musíme je transformovat. · Data již máme a chceme je nějakým způsobem upravit. Jestliže pro tuto editaci použijeme aplikaci nebo technologii, která nepracuje se SS, ve kterém jsou naše data georeferencovaná, potom je musíme transformovat do jiného SS. Jedním z příkladů je GPS – Global Position System - systém pro určování polohy. Technologie GPS je mimo jiné využívaná v rámci mobilních geoinformačních technologii MGIT a používá globální SS WGS-84. Výše uvedenou problematikou druhého případu použití transformací se zabývá právě tato bakalářská práce, jejímž cílem bylo vytvoření programu, který bude transformovat data mezi souřadnicovými systémy používanými v ČR. Data pro transformaci mohou být v běžně používaných vektorových formátech (ESRI Shape File, DXF). Souřadnicové systémyObsah této kapitoly je převzat a upraven z Diplomové práce Markéty Hanzlové [2]. Podle zákona (116/1995 Sb. ze dne 19.dubna 1995) schváleného parlamentem jsou na území České republiky platné tyto souřadnicové systémy: · Světový geodetický referenční systém 1984 (WGS-84) · Evropský terestrický referenční systém (ETRS) · Souřadnicový systém Jednotné trigonometrické sítě katastrální (S-JTSK) · Souřadnicový systém 1942 (S-42) WGS-84 je systém globální (navržen tak, aby vyhovoval celé Zeměkouli). ETRS je systém kontinentální (navržen pro Evropu a přizpůsoben deskové tektonice). Systémy S-JTSK a S-42 jsou systémy rovinné, lokální. Můj program provádí transformace mezi souřadnými systémy S-JTSK, WGS-84, S-42. Světový geodetický referenční systémS rozvojem metod kosmické geodézie bylo možno od počátku 60. let 20. století budovat globální geodetické sítě kontinentálního nebo celosvětového rozsahu. Jsou to hlavně metody dynamické kosmické geodézie, které umožňují – na základě aplikace teorie pohybu umělých družic Země – „přístup“ ke geocentru a tedy budování geocentrických (absolutních) souřadnicových systémů. Souřadnicový systém WGS–84 je definován souborem pozemních stanic a polohami družic systému GPS – Navstar (Global Positioning System – Navigation System using Time and Ranging). Okamžité polohy družic, tak jak jsou vysílány z tzv. palubních efemeridách, mají však přesnost řádově nižší než je přesnost souřadnic stanic definujících systém. WGS-84 je založen na Mercatorovým univerzálním konformním válcovým zobrazením (6° poledníkové pásy). Souřadnice se vyjadřují jak v zeměpisných souřadnicích (j - zeměpisná šířka, l - zeměpisná délka, H – elipsoidická výška ), tak i v pravoúhlých souřadnicích (X,Y,Z). Systému byl přiřazen elipsoid WGS84, ale s oblibou jsou za jeho parametry využity parametry elipsoidu GRS80. Souřadnicový systém Jednotné trigonometrické sítě katastrálníAutorem tohoto „konformního kuželového zobrazení v obecné poloze“ je ing. Josef Křovák. Zeměpisná šířka a délka v S-JTSK je charakterizována na Besselově elipsoidu. Při převodu sférických souřadnic na rovinné se používá Gaussova koule. Rovinné souřadnice S-JTSK se zapisují (y, x)S-JTSK, osa x je orientovaná k jihu a osa y na západ. Obr č. 1 Orientace os rovinných souřadnic S-JTSK
Geodetický souřadný systém S-42Základem tohoto systému je Gaussovo konformní válcové zobrazení, založeno na Krasovského elipsoidu, rozděleného na 6-ti stupňové (někdy 3 stupňové) poledníkové pásy. Každý pás je zvlášť promítnut do roviny a má svou vlastní pravoúhlou souřadnou soustavu. Kladný směr osy x směřuje k severu, osy y k východu. Základní poledník greenwichský je osovým poledníkem pásu, který je označen jako 0.pás. V 6-ti stupňových pásech je pro naši republiku osovým poledníkem a osou x poledník 15° v.d.. Poledníkové pásy jsou vertikálně rozděleny na 4 stupňové vrstvy označované písmeny abecedy od A do Z směrem od rovníku k pólům. Naše republika se nachází v mapovém listu M33 s měřítkem 1 : 1 000 000. Obr č. 2 Rozdíl mezi 3° a 6° pásy
Aby se rozpoznalo i podle rovinných souřadnic, ve kterém bod leží, přidávají se k pořadnicím y různé konstanty. Pro 3° pásy: l = 0° je Y = y + 500 000m l = 3° je Y = y + 1 500 000m l = 6° je Y = y + 2 500 000m l = 9° je Y = y + 3 500 000m l = 12° je Y = y + 4 500 000m l = 15° je Y = y + 5 500 000m l = 18° je Y = y + 6 500 000m l = 21° je Y = y + 7 500 000m První číslo udává poledníkový pás a konstanta 500 km zaručí, že pořadnice y neklesne pod „tisící kilometr“, tj. nezmění se číslo pásu. Pro 6° pásy: l = 3° je Y = y + 1 500 000m l = 9° je Y = y + 2 500 000m l = 15° je Y = y + 3 500 000m l = 21° je Y = y + 4 500 000m Současné aplikace pro transformaci souřadnicPrůzkum současného stavu vybraných aplikací v oblasti transformace vektorových dat. Tyto aplikace je možno rozdělit na dvě skupiny: · Převod bodů čtených z klávesnice, ASCII (Američan Standard Code for Information Interchange, DBF (Database File) souboru, atd. (Transform 1.0) · Transformace celého souboru vektorových či rastrových dat (TransMap 2.0, GeoMedia Proffesional, Topol) o On fly – transformace se provede pouze na obrazovce, zdrojová data se nemění. o Přímým zápisem transformovaných dat na harddisk. TransMap 2.0TransMap 2.0 je aplikace pro prostorové transformace geografických dat mezi souřadnicovými systémy běžně používanými v České republice. Ve verzi 2.0 existuje jako samostatná aplikace, ve verzi 1.0 existuje jako extenze programu ArcView 3.X a je volně ke stažení na stránkách firmy ArcData. Přehled funkcí aplikace TransMap 2.0 · Převody geografických dat ve formátu ESRI Shape-file mezi souřadnicovými systémy používanými v ČR. · Podporované souřadnicové systémy S-42, S-JTSK a WGS84. · Možnost dávkového převodu všech geografických dat obsažených v adresáři. · Výběry mapových listů pomocí prostorových a atributových dotazů. · Obsahuje klady základních, topografických a státních map pro celou ČR a klad mapových listů pro Prahu v měřítku 1:2000. · Lze jednoduše rozšířit o vlastní klady mapových listů Zdroj informací: http://www.arcdata.cz GeoMedia ProffesionalTato aplikace využívá tzv. On-fly transformaci, kdy si uživatel vybere v jakém souřadnicovém systému chce data zobrazit a program toto provede pouze na obrazovce. Data uložená např. na pevném disku, která zobrazujeme zůstávají ponechány bez transformace. Zdroj informací: Help aplikace GeoMedia 6. TopolPomocí příkazu souřadný systém se vyvolá dialogové okno, ve kterém se nastavuje souřadnicový systém, který bude aplikace používat. K dispozici jsou tyto souřadnicové systémy: · JTSK · Matematický model · Gauss-Kruger Po potvrzení dialogového okna se všechny otevřené bloky a rastry uzavřou, protože souřadnicové systémy nemají mezi sebou žádnou vazbu a neexistuje možnost transformace pořízených dat z jednoho systému do druhého. Zdroj informací: Help aplikace Topol. TransformJe aplikace pro převod naměřených WGS-84 souřadnic s elipsoidickou výškou do systému JTSK s nadmořskými výškami. Tento program využívá transformační software prof. Jana. Je možné transformovat souřadnice z různých protokolů většiny výrobců GPS techniky. Vlastníkem programu je Geodetické centrum, Pardubice. Zdroj informací: http://www.geoserver.cz/gcentrum TransForm 1.0V roce 2001 v rámci své diplomové práce vytvořila ing. Markéta Hanzlová tuto aplikaci, která provádí transformaci mezi systémy S-JTSK, WGS-84, S-42, ETRS-89. Souřadnice se zadávají buď ručně a nebo je program dokáže načíst ze znakového souboru. Zdroj informací: [2] Hanzlová, Markéta: Diplomová práce.
Popis vektorových datových formátů Shape-File a DXFJedním z velmi rozšířených vektorových datových formátů používaných v GIS je ESRI Shape file. Formát DXF (Drawing Interchange File Format) je vektorový výměnný formát. Tento datový formát je používán CAD systémy, setkáváme se sním však také při práci s GIS aplikacemi. ESRI Shape-fileShape soubor je datový formát vytvořený společností ESRI – Environmental System Research Institute. Základní vlastnosti: · Binární formát · Obsahuje netopologické geometrické a atributové informace o objektech v prostoru · Geometrické informace jsou uloženy v sadě vektorových souřadnic · Protože v Shape-file nejsou definovány procesy zajištující informace o topologii dat, mají výhodu oproti jiným formátům v rychlejším vykreslování a snadnější editaci · Zvládá překrývající se objekty nebo objekty, které nejsou spojité · Obvykle zabírají méně místa na disku a jsou jednoduší pro čtení i zápis Shape-file mohou být vytvořeny těmito 4 hlavními metodami: · Z jiných datových formátů exportem použitím aplikací: ARC/INFO®, PC ARC/INFO®, Spatial Database EngineTM (SDETM), ArcView® GIS · Digitalizací použitím nástrojů ArcView® GIS · Programováním – použitím jazyků AvenueTM(ArcView GIS), MapObjectsTM, ARC Macro Language (AMLTM) (ARC/INFO), Simple Macro Language (SMLTM) (PC ARC/INFO) · Vytvořením vlastního programu a zápisem přímo do Shape formátu dle jeho specifikací Shape-file se skládá ze tří základních souborů: · Hlavní soubor s příponou SHP popisuje tvar entity seznamem jejích vrcholů · Indexový soubor s příponou SHX · Atributový soubor s příponou DBF uchovává informace o atributové složce dat formou databázové tabulky Numerické typy v Shape-file: · Integer – 32 bitové celé číslo (4 bytes) · Double – 64 bitové číslo s plovoucí desetinou čárkou (8 bytes) V Shape-file se vyskytují dvě varianty bitového pořadí: · Little Endian Byte Order – klasické bitové pořadí, používá se u počítačů třídy PC, binární číslo se čte zleva doprava. · Big Endian Byte Order – bitové pořadí využívající procesy Motorola® nebo Sun®, binární číslo se čte zprava doleva Více informací o převodu mezi těmito dvěma způsoby ukládání je v sekci popisující činnost programu. Tabulka č. 1 Seznam entit vyskytujících se v Shape-file
Null Shape Je entita, která neobsahuje žádné prostorové informace (prázdná entita). Multi Shape Je zvlášt vyčleněná entita. Skládá se z určitého počtu povrchů. Tyto povrchy mohou být různých tvarů (trojúhelník, polygon…). Bod Základní entita. Z bodů se skládají všechny geometrické prvky zobrazené v ShapeFile. Prostorově je určen souřadnicemi X,Y. Multibod Je to sada několika bodů, které jsou vymezeny definovanou hranicí a tvoří jednu entitu. Polylinie Je to uspořádaná sada vrcholů, skládající se z jedné nebo více částí. Jedna část je spojená sekvence dvou nebo více bodů. Jednotlivé části mohou nebo nemusí být na sebe napojeny, mohou se protínat. Polygon Skládá se z jednoho nebo více prstenců (kruhů). Prstenec je spojená sekvence 4 nebo více bodů, které tvoří uzavřenou smyčku, která však v žádné části neprotíná sama sebe. 3D Shape Jsou zde definovány stejné entity jako ve 2D Shape, s tím rozdílem, že každý bod obsahuje ještě navíc Z souřadnici. Measured Shape Tyto entity obsahují jednu přídavnou informaci – Measured, což je vlastně další souřadnice, kterou lze uchovat. Tato hodnota je primárně určena k tomu, aby například poloha nějaké události mohla být udána pomocí označení linie a vzdálenosti na ní (např.: nehoda na 20 km dálnice D5). Je ale možno tuto 4. souřadnici využít jakkoliv jinak. Organizace hlavního souboruHlavní soubor obsahuje hlavičku, která má vždycky konstantní délku (100 bajtů). Potom následuje sekce (může být různě dlouhá), která uchovává prostorové informace o všech tvarech obsažených v Shape-file, ta se skládá z hlavičky o pevné délce a z vlastního záznamu, jehož délka je závislá na typu a vlastnosti záznamu.
Organizace indexového souboruIndexový soubor obsahuje 100 bajtovou hlavičkou, totožnou s hlavičkou hlavního souboru, následují 8 bajtové záznamy.
Organizace atributového souboruTento soubor obsahuje atributové informace o prvcích nebo atributové klíče pro připojení k jiným tabulkám. Soubor je v DBF formátu, který používá spousta tabulkově založených aplikací. Jméno atributového souboru musí být stejné, pouze přípona se změní na DBF. Tabulka musí obsahovat jeden záznam na každý Shape Záznamy v tabulce musí být ve stejném pořadí jako záznamy jednotlivých entit v hlavním souboru. Hodnota charakterizující rok musí být vyšší než rok 1900. Více informací o DBF formátu je na webu firmy INPRISE Corp. : www.inprise.com Datový formát DXFZkratka DXF skrývá název Drawing exchange File Format což v češtině znamená kreslící výměnný souborový formát. Data jsou ukládaná ve vektorové formě. Je to datový formát, který je typický pro CAD systémy dokáží sním však pracovat i GIS. Je to znakový soubor, z hlediska uživatele to znamená, že si soubor může přečíst použitím základních aplikací pro editaci textových souborů (např.: NotePad – Poznámkový blok ve Windows). Struktura tohoto datového formátu je založena na poměrně jednoduchém principu. Každá informace je uložena na 2 řádcích, tzn. že 2 řádky znamenají jednu informaci pro uživatele nebo pro aplikaci, která s tímto formátem pracuje.
2
Význam
některých řídících kódů
Struktura datového formátu DXF Soubor je rozdělen do několika sekcí: · HEADER – informace o programu a verzi, ve kterém byl tento soubor vytvořen, je zde také definována hranice rýsovací plochy · CLASSES · TABLES · BLOCKS · ENTITIES – v této sekci jsou geometrické informace o prvcích na výkrese (jejich souřadnice). Pro tento formát je definováno velké množství prvků (POINT, LINE, POLYLINE, VERTEX, SPLINE,…) · OBJECTS Popis programu TranďákPro vytvoření programu Tranďák bylo vybráno vývojové prostředí Microsoft Visual Basic 6.0 Enterprise Edition. Tento programovací jazyk je spíše zaměřen na práci s databázemi, není příliš vhodný pro vytváření aplikací, které provádějí náročnější grafické operace např. vykreslování map. Dolaďování programu na předcházejících verzích Microsoft Visual Basic není vyzkoušeno. Program načítá prostorové souřadnice z různých datových zdrojů a transformuje je do různých souřadných systémů (viz. Cíle práce). Editovací a transformační algoritmy jsou v externích DLL knihovnách. Důvodem proč tyto algoritmy byly umístěny do DLL knihoven je snaha o jejich univerzálnost, tzn. že by mohly být využity v rámci jiných projektů. Dalším důvodem je snadná rozšiřitelnost možností programu. Vznikne-li potřeba rozšířit skupinu transformací nebo formátů, které program podporuje, stačí vytvořit další DLL knihovnu, která toto zvládá (tuto knihovnu je možno vytvořit i v jiném programovém prostředí) a úpravou zdrojového kódu jádra programu knihovnu do něj začlenit. Popis jádra programuTato část programu zajišťuje uživateli možnost výběru souřadnicových systémů a definovat, kde se výsledný soubor zapíše. Dále toto jádro zajišťuje připojení jednotlivých knihoven, dle volby uživatele a jejich následné odpojení po skončení transformace. Po spuštění program čeká na nějakou akci uživatele. Může to být stisknutí tlačítka „Načíst soubor“, vtom případě se objeví dialogové okno, kde se vybere soubor, který se bude transformovat, nadefinovány jsou tu dva filtry (*.shp, *.dxf). Po stisku tlačítka „Do souboru“ se zvolí cesta a jméno nově vzniklého souboru. Tlačítko „Transformuj“ spouští vlastní transformační proces. Pokud není zvolen název nového souboru, program automaticky přiřadí nově vzniklému souboru jméno, které je totožné s názvem vstupního souboru s tím rozdílem, že na konci názvu je přidána zkratka označující souřadný systém, do kterého se transformovalo. Přidání další knihovny do struktury programuJestliže bude k dispozici další knihovna, která bude odpovídat stanoveným specifikacím (viz. Popis DLL knihoven), může být využívána. Nejdříve však musí být provedeny následující kroky, aby byla začleněna do struktury programu. Zdrojové kódy jsou v příloze [3] Zdrojové kódy programu Tranďák. Pro lepší orientaci jsou uvedena čísla stránek přílohy, kde jsou zmiňované příkazové řádky. · V deklarační sekci modulu definovat knihovnu svým názvem (str. 2) · Pokud přidáváme knihovnu pro editování nového formátu v proceduře formatsouboru (str. 3) je třeba pro daný typ souboru aktivovat příslušnou knihovnu. To se provede příkazem Set promena = New knihovna. · V proceduře nacitani (str. 3) se napíše příkaz, který zajistí spuštění objektu knihovny, který provede načtení prostorových souřadnic z daného souboru. · Pokud přidáváme knihovnu pro transformaci, musíme si uvědomit, že program má v sobě zakomponovanou funkci pro výpočet chyby zpětné transformace (str. 2) a proto musí být zároveň přidán algoritmus pro zpětnou transformaci. Není to podmínkou fungování procesu transformace, ale chyba zpětné transformace v tom případě bude nabývat nesmyslnou hodnotu. · V proceduře TypTransformace (str. 2) se aktivuje knihovna, ve které je transformační algoritmus. Do procedury trans se napíše příkaz, který spustí objekt knihovny, který provádí transformaci (str. 2). · Na závěr se musí nastavit odkaz programu na připojovanou knihovnu. To se provede v menu Project references… 1.2 Popis DLL knihovenDLL knihovna patří do skupiny ActiveX komponent, které poskytuje programovací jazyk Visual Basic. Rozumí se tím samostatná jednotka, která provádí určité operace. Tyto knihovny jsou založeny na objektové technologii: každý objekt je dán svými vlastnostmi a metodami, které provádí. Jestliže je knihovna dobře popsaná, tzn. že známe požadavky na vstup a výstupní informace můžeme ji docela pohodlně zařadit do svého projektu. Což značně usnadňuje práci programátora, protože nemusí znovu psát programový kód pro určitou operaci, ale pouze zakomponuje knihovnu, která tuto práci vykoná. 1.2.1 Knihovny pro editaci prostorových souřadnic ze souborůV této kapitole bude popsána struktura, vstupní požadavky, výstupní informace, knihoven, pro editaci prostorových souřadnic z datových souborů. Při tvorbě těchto knihoven jsem použil následující filozofii (Obrázek 10). Po spuštění se otevřou dva soubory, jeden pro vstup, druhý pro výstup. Program postupně od začátku načítá informace uložené ve vstupním souboru, pokud zjistí, že se jedná o prostorovou souřadnici, nastaví se tato informace jako výstupní proměnná a ukončí se běh knihovny. Ještě předtím si však knihovna pomocí nastavení vnitřních proměnných zapamatuje místo kde skončila svou činnost. Při opětovném spuštění se uloží přetransformované souřadnice a pokračuje se v běhu tam, kde se skončilo. V případě, že se nejedná o prostorovou souřadnici tak se daná informace ihned uloží do nového souboru. To vše se opakuje až do okamžiku, kdy program zjistí konec souboru. Pak se nastaví výstupní proměnná, která indikuje konec souboru a knihovna je opuštěna naposledy. 3 Parametry knihovny pro načítání souřadnic
Knihovna pro editaci Shape-file Shape soubor je datový formát, který se ve své základní formě skládá ze tří souborů (viz. kapitola 4). Hlavní soubor s příponou SHP v sobě obsahuje prostorové souřadnice a je tedy pro načítání nejdůležitější. Indexový soubor s příponou SHX ve své hlavičce obsahuje prostorové souřadnice ohraničující plochu, ty se musí transformovat, ostatní informace jsou pro potřeby našeho programu nedůležité nedůležité. Atributový soubor s příponou DBF se pouze zkopíruje. Tento formát využívá dva typy zápisu binárních hodnot. Prvním je klasický způsob, který známe z počítačů s procesory Intel, nazývá se Little Endian Byte Order (LEO). Druhý způsob využívají procesory Motorola, ten se nazývá Big Endian Byte Order(BEO). Rozdíl v zápisu spočívá vtom, že zatímco LEO zapisuje binární hodnoty klasicky zleva doprava, BEO to dělá přesně naopak, zprava doleva. První lehký zádrhel nastává ve chvíli, když hodnotu uloženou v BEO načtete na „klasickém“ PC, nebude totiž odpovídat skutečné informaci. Proto jsem musel sestrojit funkci (ChangeByteOrder), která provádí konverzi z BEO do LEO. Druhý těžší zádrhel nastává při načítání Measured Shape. Jelikož poslední Measerued informace je volitelná tzn. že může, nebo nemusí být obsažena je nutno zjistit zda informace, která je načítána je skutečně measured nebo nějaká jiná. Každému záznamu předchází hlavička, která obsahuje číslo záznamu a délku každého záznamu. Existují však soubory, ve kterých tato délka není definovaná (místo délky záznamu je tam nulová hodnota) a proto se touto informací nelze řídit ve všech případech a bylo potřeba vytvořit další testovací algoritmus. Ten provádí dva způsoby testování: · Pokud je v hlavičce záznamu uvedena délka, pak je jednoznačně definováno zda Measured informace je obsažena nebo není a po dosažení této délky se přechází na načítání dalšího záznamu. · Jestliže tato délka není uvedena existence Measured informace se testuje tak, že u „podezřelé“ hodnoty se testuje zda neodpovídá číslu dalšího záznamu. Pokud ano, pak je s největší pravděpodobností jasné, že se nejedná o Measured informaci, nýbrž o hlavičku dalšího záznamu. O druhém způsobu testování se nedá říci, že jeho výsledek bude vždy odpovídat skutečnosti. V případě, že Measured informace bude obsahovat hodnotu, která odpovídá hodnotě dalšího záznamu dojde k chybovému načtení. Tento způsob testování je však pouze doplňkový a provádí se tehdy, když v hlavičce záznamu není uvedena délka záznamu. Přednostně se testovací algoritmus řídí délkou záznamu. 4 Vstupní proměnné knihovny pro načítání Shape-file
5 Výstupní proměnné knihovny pro načítání Shape-file
Knihovna pro editaci DXF formátu Tento datový formát tvoří ASCII soubor. Je zde definováno velké množství geometrických tvarů – entit (viz. příloha Popis datového formátu DXF). Funkčnost této knihovny je však omezena pouze na určité entity. Některé entity jako např. kružnice, elipsa, oblouk jsou definovány bodem a poloměrem, po transformaci však dojde k určité deformaci původního tvaru, ne vlivem transformační chyby, ale vlivem samotného principu transformace z lokálního SS do globálního SS. Z toho důvodu se například kružnice může zobrazit v elipsu, tedy úplně jinou entitu. Program proto dokáže transformovat pouze ty entity, které jsou definovány lomovými body a ne prvky, které umožní matematicky dopočítat výsledný tvar prvku. Z hlavičky DXF souboru jsou přetransformovány hodnoty uvozené klíčovým slovem LIM, což jsou souřadnice vymezující hraniční plochu a také hodnoty za klíčovým slovem EXT, které vymezují rozsah pohledu (extent). Ze sekce ENTITIES jsou transformovány všechny definiční body – hodnoty za klíčovými slovy 10-17,20-27,30-37 (viz. tab. č. 2). 6 Vstupní proměnné knihovny pro načítání DXF
7 Výstupní proměnné knihovny pro načítání DXF
1.2.2 Knihovna pro transformaci prostorových souřadnicAlgoritmy pro transformaci prostorových souřadnic mezi souřadnými systémy S-JTSK ,WGS-84, S-42 jsem převzal z diplomové práce Markéty Hanzlové. Bylo potřeba udělat jen několik změn. · Převést algoritmus do DLL knihovny, což spočívalo ve vytvoření nového objektu třídy DLL a definování vstupních a výstupních vlastností knihovny. · Dále byla snížena přesnost výpočtu v konvergenčním cyklu z 21 desetinných míst na 15, jelikož algoritmus u některých hodnot nedokázal vypočítat hodnotu na požadovanou přesnost a zacyklil se. · Byla přidána testovací rutina, která ověřuje zda načítané souřadnice odpovídají definované oblasti pro daný souřadnicový systém. · Dále byly odstraněny příkazy, které převáděly desetinné číslo na stupně, minuty a sekundy jelikož je to pro činnost programu nežádoucí. Všechny změny jsou popsány v komentáři zdrojového kódu (viz. příloha [3] Zdrojový kód). 8 Vstupní proměnné knihovny pro transformaci
9
Vstupní
proměnné knihovny pro transformaci
10 Stanovené limity pro SS
V transformačních algoritmech je testovací rutina, která zjistí zda souřadnice, které vstupují do transformace jsou v oblasti, která je definovaná pro daný lokální SS.
Kontrola správnosti transformaceNa závěr bylo provedeno několik cvičných transformací, kterými se ověřil průběh a správnost transformace a dále byla stanovena transformační chyba. Vstupní data, se kterými se prováděly tyto transformace byly vytvořeny v programech AutoCAD LT 97 a ArcView 3.1. Distribuce transformační chyby v plošePři tomto testu se zjišťovalo, zda transformace probíhá po celé ploše stejně. Byla definována určitá oblast, která spadala do daného lokálního SS a zkoumalo se zda nedochází v určitých místech k nárůstu transformačních chyb. Zkoumání bodového poleZkoumaná data jsou ve formátu DXF, je to vrstva, která obsahuje bodovou síť o rozměrech 40 x 40 metrů. Tuto síť tvoří 400 x 400 bodů vzdálených od sebe 10 cm.
Vrstva bodů se transformuje ze souřadnicového systému S-JTSK do WGS-84.
7 Testovací vrstva bodů po transformaci
V žádném místě nedochází ke zhušťování výskytu bodů. Jednotlivé body si ponechávají od sebe stejnou vzdálenost po celé ploše. Z toho vyplývá, že pro bodovou vrstvu je distribuce transformační chyby konstantní po celé ploše stejný. 1.1.2 Zkoumání liniového poleZkoumaná data jsou ve formátu Shape-file, je to vrstva, která obsahuje liniovou síť o rozměrech 100 x 100 metrů. Tuto síť tvoří 1000 x 1000 linií vzdálených od sebe 10 cm.
Tato liniová vrstva je umístěná v souřadnicovém systému S-JTSK. Programem Tranďák 1.0 byla provedena transformace do souřadnicového systému WGS-84.
Po celé ploše proběhla transformace zcela správně, na žádném místě nedošlo k porušení topologie, rovnoběžnost i kolmost všech linií byla zachována. Z toho vyplývá, že distribuce chyby transformace pro liniovou vrstvu je stejný po celé ploše. 1.2 Určení transformační chybyPři určování transformační chyby se zjišťuje s jakou odchylkou od skutečné hodnoty vypočítá transformační algoritmus novou hodnotu. Transformační chyba se vypočítá podle vzorce: · · K dispozici je síť 10 identických bodů rozmístěných po celém území ČR, u nichž známe přesné souřadnice zjištěné geodetickým měřením. Identické body jsem převzal z diplomové práce Markéty Hanzlové, která dělala stejné určování transformační chyby u svého programu.
12
Identické body v souřadnicovém systému WGS-84
1.2.1 Transformace ve směru WGS-84 => S-JTSKDatový vstup je Shape-file, který obsahuje bodovou vrstvu 10 identických bodů v souřadnicovém systému WGS-84. Tato vrstva se transformuje do souřadnicového systému S-JTSK.
13
Vypočítané rozdíly
souřadnic identických bodů
Total RMSError = 0,73 m Pro porovnání výsledků chyby transformace byly převzaty výsledky stejné analýzy, kterou prováděla Markéta Hanzlová. · Hrdina – program WGS84 od Z. Hrdiny z ČVÚT · Ing. Vojtek – transformační algoritmus Ing. Davida Vojtka
ZávěrZadáním bakalářské práce bylo vytvoření převodník vektorových dat ve formátu DXF a Shape-file mezi souřadnicovými systémy S-JTSK a WGS-84. Po seznámení se s strukturou DXF a Shape-file byly vytvořeny algoritmy pro editaci prostorových souřadnic z těchto formátů. Tyto algoritmy byly umístěny do DLL knihoven, stejně jako transformační algoritmy. Byl navrhnut formulář s ovládacími prvky nezbytnými pro snadnou a přehlednou práci s programem. Byl napsán zdrojový kód, který ovládá jednotlivé DLL knihovny. Pro ověření správné funkčnosti programu bylo provedeno několik zkušebních transformací, z nichž bylo zjištěno, že transformační chyba se v určité omezené ploše nemění, dále byla zjištěna střední kvadratická odchylka transformačních algoritmů. Navrhuji další vylepšení programu úpravou zdrojového kódu jádra programu, tak aby program automaticky zaregistroval novou DLL knihovnu. Stávající stav je takový, že pro přidání nové knihovny je třeba upravit zdrojový kód jádra programu. Další vylepšení by mohlo spočívat v předělání programu na internetovou aplikaci. Uživatel pošle po síti data ze své lokální stanice na počítač, na kterém běží transformační program, po provedení transformace uživatel dostane svá přetransformovaná data zpět. Literatura(1) Programování ve Visual Basic 6.0, (3) ESRI: ESRI Shapefile Technical Description. USA, 1998, 28 s. Dostupné na WWW:<http://www.esri.com>. (4) AUTODESK: DXF Reference Guide. USA, 2002, 182 s. Dostupné na WWW:<http://www.autodesk.com>. |
Copyright (C) VŠB - TU Ostrava,
Institut geoinformatiky, 2001-3. Všechna práva vyhrazena. |