GISáček


Převodník vektorových dat mezi souřadnicovými systémy S-JTSK a WGS-84

Martin Krempl
institut geoinformatiky
VŠB - TECHNICKÁ UNIVERZITA OSTRAVA
tř. 17. listopadu, 708 33 Ostrava Poruba
E – mail: krekoma@centrum.cz

Abstract

Sight 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.

Abstrakt

Př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.

Úvod

V 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émy

Obsah 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ém

S 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-42

Zá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řadnic

Prů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.0

TransMap 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 Proffesional

Tato 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.

Topol

Pomocí 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.

Transform

Je 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.0

V 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 DXF

Jední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-file

Shape 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

Název

Typ

Bod

2D Shape

Polylinie

2D Shape

Polygon

2D Shape

Multibod

2D Shape

Bod Z

3D Shape

Polylinie Z

3D Shape

Polygon Z

3D Shape

Multibod Z

3D Shape

Bod M

Measured Shape

Polylinie M

Measured Shape

Polygon M

Measured Shape

Multibod M

Measured Shape

Null Shape

 

Multi Shape

 

 

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 souboru

Hlavní 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 souboru

Indexový soubor obsahuje 100 bajtovou hlavičkou, totožnou s hlavičkou hlavního souboru, následují 8 bajtové záznamy.


 

 

 

 

 

 

 

 

 


Jednotlivé záznamy v indexovém souboru svým pořadím odpovídají záznamům v hlavním souboru. Offset záznamu v hlavním souboru znamená pozici tohoto záznamu od začátku souboru. To znamená, že číslo prvního offsetu je vždy 50, protože první záznam začíná vždy na 100. bajtu (hodnota offsetu se musí vynásobit dvěma).

Organizace atributového souboru

Tento 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 DXF

Zkratka 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.


Jaký význam mají tyto dva řádky a jakých mohou nabývat hodnot? Na prvním řádku je řídící kód, který nám oznamuje jaký typ informací bude následovat, druhý řádek již obsahuje konkrétní informaci (typ entity, prostorové souřadnice, konec sekce…). Následující obrázek názorně ukazuje na příkladu funkci těchto 2 řádků.

 

2 Význam některých řídících kódů

Textové pole: Tabulka SEQ tabulka \* ARABIC 2 Význam některých řídících kódů

 

 

 

 

 

 

 

 

Kód

Popis

0

Textový řetězec popisující typ entity (sekce, konec souboru, bod)

2

Jméno (název bloku)

10

X-ová souřadnice primárního bodu (začátek linie, jiné entity, střed kružnice)

11-18

X-ová souřadnice dalších bodů

20

Y-ová souřadnice primárního bodu

21-28

Y-ová souřadnice dalších bodů

30

Z-ová souřadnice primárního bodu

31-37

Z-ová souřadnice dalších bodů

38

Výška entity

 

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ďák

Pro 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 programu  

Tato čá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 programu

Jestliž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 knihoven

DLL 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

Textové pole: Tabulka SEQ tabulka \* ARABIC 3 Parametry knihovny pro načítání souřadnic

 

Název proměnné

Popis

X

prostorová souřadnice

Y

prostorová souřadnice

Z

prostorová souřadnice

vstup

název souboru ze kterého se čte

výstup

název souboru do kterého se zapisuje

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

Textové pole: Tabulka SEQ tabulka \* ARABIC 4 Vstupní proměnné knihovny pro načítání Shape-file

  

Název proměnné

Datový typ

Popis

XXX

Double

prostorová souřadnice (po transformaci)

YYY

Double

prostorová souřadnice (po transformaci)

ZZZ

Double

prostorová souřadnice (po transformaci)

Vstup

String

název souboru ze kterého se čte (celá cesta)

Výstup

String

název souboru do kterého se zapisuje (celá cesta)

  5 Výstupní proměnné knihovny pro načítání Shape-file

Textové pole: Tabulka SEQ tabulka \* ARABIC 5 Výstupní proměnné knihovny pro načítání Shape-file
 

Název proměnné

Datový typ

Popis

XXX

Double

prostorová souřadnice (načtená)

YYY

Double

prostorová souřadnice (načtená)

ZZZ

Double

prostorová souřadnice (načtená)

Info

String

informace, které se zapisují do Infoboxu

Delka

Long

delka souboru (pro Progress Bar)

Hlava

Long

aktuální pozice čtení (pro Progress Bar)

Konec

Boolean

informace o konci souboru

Chyba

Boolean

informace o chybě při načítání

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

Textové pole: Tabulka SEQ tabulka \* ARABIC 6 Vstupní proměnné knihovny pro načítání DXF

 

Název proměnné

Datový typ

Popis

XXX

Double

prostorová souřadnice (po transformaci)

YYY

Double

prostorová souřadnice (po transformaci)

ZZZ

Double

prostorová souřadnice (po transformaci)

Vstup

String

název souboru ze kterého se čte (celá cesta)

výstup

String

název souboru do kterého se zapisuje (celá cesta)

7 Výstupní proměnné knihovny pro načítání DXF

Textové pole: Tabulka SEQ tabulka \* ARABIC 7 Výstupní proměnné knihovny pro načítání DXF

 

Název proměnné

Datový typ

Popis

XXX

Double

prostorová souřadnice (načtená)

YYY

Double

prostorová souřadnice (načtená)

ZZZ

Double

prostorová souřadnice (načtená)

info

String

informace, které se zapisují do Infoboxu

delka

Long

počet řádků v souboru (pro Progress Bar)

Radek

Long

aktuálně čtený řádek (pro Progress Bar)

konec

Boolean

informace o konci souboru

1.2.2        Knihovna pro transformaci prostorových souřadnic

Algoritmy 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

Textové pole: Tabulka SEQ tabulka \* ARABIC 8 Vstupní proměnné knihovny pro transformaci

 

Název proměnné

Datový typ

Popis

XXX

Double

Prostorová souřadnice (před transformací)

YYY

Double

Prostorová souřadnice (před transformací)

ZZZ

Double

Prostorová souřadnice (před transformací)

9 Vstupní proměnné knihovny pro transformaci

Textové pole: Tabulka SEQ tabulka \* ARABIC 9 Vstupní proměnné knihovny pro transformaci

 

Název proměnné

Datový typ

Popis

XXX

Double

prostorová souřadnice (načtená)

YYY

Double

prostorová souřadnice (načtená)

ZZZ

Double

prostorová souřadnice (načtená)

Info

String

informace, které se zapisují do Infoboxu

Chyba

Boolean

chyba při transformaci

10 Stanovené limity pro SS

Textové pole: Tabulka SEQ tabulka \* ARABIC 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.

 

Název SS

Xmin

Xmax

Ymin

Ymax

S-JTSK

-1300000

-900000

-930000

-128000

WGS-84

47°30’

51°10’

12°

23°

Kontrola správnosti transformace

Na 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še

Př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 pole

Zkoumaná 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

Textové pole: Obrázek SEQ Obrázek \* ARABIC 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 pole

Zkoumaná 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.

 

Textové pole: Obrázek 8 Testovací vrstva linií zobrazená v ArcView 3.1

 

 

 

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.

Textové pole: Obrázek 9 Testovací vrstva linií transformovaná do 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í chyby

Př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.

 

11 Identické body v souřadnicovém systému S-JTSK

Textové pole: Tabulka SEQ tabulka \* ARABIC 11 Identické body v souřadnicovém systému S-JTSK

 

ID

 

YS-JTSK

XS-JTSK

Výška

1

832 495,24

1 139 592,16

874,55

2

870 888,05

1 018 495,97

454,81

3

742 268,24

977 441,34

563,01

4

614 097,92

1 008 307,38

557,96

5

713 667,10

1 085 783,03

419,62

6

664 651,07

1 176 117,72

520,62

7

579 116,30

1 123 493,42

671,76

8

594 927,54

1 052 906,41

653,45

9

439 668,58

1 137 022,90

481,79

10

578 081,72

1 209 574,48

171,12

12 Identické body v souřadnicovém systému WGS-84

Textové pole: Tabulka SEQ tabulka \* ARABIC 12 Identické body v souřadnicovém systému WGS-84

 

ID

YWGS-84

XWGS-84

Výška

1

13,38458

49,112542

922,041

2

12,599467

50,134573

501,166

3

14,302399

50,672087

606,874

4

16,153429

50,541546

601,439

5

14,902732

49,741211

464,963

6

15,72725

48,990096

567,217

7

16,814328

49,546445

716,387

8

16,490783

50,162268

697,248

9

49,540746

18,750331

524,571

10

16,951054

48,777508

213,723

 Textové pole: Obrázek 10 Rozložení identických bodů v ČR

 

 

 

1.2.1        Transformace ve směru WGS-84 => S-JTSK

Datový 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ů

Textové pole: Tabulka SEQ tabulka \* ARABIC 13 Vypočítané rozdíly souřadnic identických bodů

  

YS-JTSK

XS-JTSK

Výška

DY [m]

DX [m]

RMSError [m]

832494,563

1139591,042

874,214

0,677

1,118

1,307

870886,445

1018495,195

455,169

1,605

0,775

1,782

742267,300

977441,485

562,294

0,940

-0,145

0,951

614097,746

1008307,970

557,296

0,174

-0,590

0,615

713666,539

1085782,857

418,703

0,561

0,173

0,587

664651,070

1176117,341

519,922

0,000

0,379

0,379

579116,268

1123493,444

670,647

0,032

-0,024

0,040

594927,508

1052906,902

652,508

0,032

-0,492

0,493

439668,685

1137022,963

480,153

-0,105

-0,063

0,122

578081,864

1209574,222

166,715

-0,144

0,258

0,295

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

Textové pole: Obrázek 11 Porovnání RMSError v každém bodě

  

Textové pole: Obrázek 12 Celková přesnost transformace

 

 


Z výsledků analýzy je zřejmé, že program Tranďák pracuje s nižší přesností, než transformační algoritmy Ing. Vojtka a Hrdiny. Příčinou, může být záměrné snížení přesnosti výpočtů v transformačních algoritmech programu Tranďák z důvodu zacyklení programu při výpočtu s vyšší přesností. Z analýzy distribuce transformační chyby na bodové a na liniové vrstvě vyplývá, že distribuce transformační chyby je po zkoumané ploše stejná. Ve výsledcích poslední analýzy je však viditelné, že pro každý bod byla transformační odchylka jiná. To bude pravděpodobně způsobeno tím, že poslední analýza byla provedena na území celé ČR, tedy na ploše nesrovnatelně větší než první 2 analýzy. Z toho lze usuzovat, že distribuce transformační chyby se v určité omezené ploše jeví jako stejná, ale pro větší území dochází ke kolísání hodnoty transformační chyby.

Závěr

Zadá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,

(2)              Hanzlová, Markéta: Diplomová práce Program pro transformaci souřadnic mezi souřadnicovými systémy platnými na území ČR. VŠB-TU Ostrava 2001, 39 s.

(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. 
V případě, dotazů, komentářů, připomínek kontaktujte www-gis.hgf@vsb.cz
Tato stránka byla naposledy aktualizována: 29.03.2006 16:16
Stránky jsou optimalizovány pro Microsoft Internet Explorer v. 5.0 a vyšší.
Jsou vytvářeny v programovém prostředí FrontPage 2003.

NAVRCHOLU.cz