Leveling data formats and leveling data adjustment (Formáty nivelačních dat a pořadové vyrovnání nivelačních pořadů)

Ing. Petr Souček
Katedra mapování a kartografie, Fakulta stavební ČVUT v Praze
Thákurova 7
166 29 Praha 6 - Dejvice
Web: http://gama.fsv.cvut.cz/~soucek , E - mail: petr.soucek@fsv.cvut.cz

Abstract

In this article, we would like to present another example of an XML application, namely a unified XML format for describing leveling observations from various types of digital registration units. The DNP format was designed as a basic XML data format used in the project of new complex technology for the processing of leveling observations developed in collaboration with the Land Surveying Office in Prague. In this project, all leveling data from the registration units are converted into the common DNP format that is subsequently used in adjustment and analysis. The software package developed contains the following modules: digital transfer of observed leveling data into the computer, digitalization of the coordinates of leveling points from the map and transformation into projection plane (used only if coordinates are not known), organization of leveling lines and their conversion into the DNP format (and subsequent transformation into XHTML), adjustment and analysis of selected leveling lines and/or leveling networks with optional conversions to DBF format and XLS Microsoft Excel format and graphical outputs.

The software is written in C++ (using expat XML parser by James Clark) and Windows GUI built with C++ Borland Builder 5. All programs (in Czech version only) are available, free of charge, from

http://gama.fsv.cvut.cz/~soucek/archive/nivelace.

Abstrakt

V referátu posluchače seznámím s technologií zpracování nivelačních měření a zejména se softwarovým zabezpečením, které k tomuto účelu vyvíjím v rámci svého doktorského studia na katedře mapování a kartografie (ČVUT v Praze, fakulta stavební). Jedná se o komplexní technologickou linku na zpracování nivelačních měření - od registrace dat z digitálních nivelačních přístrojů, přes pořadové sestavení a vyrovnání až ke grafickým výstupům polohového zobrazení a výškového profilu nivelačního pořadu. Softwarový balík "Zpracování nivelačních měření" je tvořen několika samostatnými programy. Hlavní část zpracování se odehrává v programu Nivelace.exe, který je nyní ve vývojové verzi 0.25 a můžete si jej stáhnout na adrese http://gama.fsv.cvut.cz/~soucek/archive/nivelace (samozřejmě i se zdrojovými kódy v C++). Výše uvedené programy jsou postupně testovány v reálných podmínkách na Zeměměřickém úřadě v Praze na odboru nivelace.

Úvod

Nejdříve se seznámíme s návrhem jednotného formátu pro popis dat naměřených digitálními nivelačními přístroji a jeho následným využitím pro zpracování nivelačních dat. Představíme si softwarové vybavení, které se používá na odboru nivelace na Zeměměřickém úřadu v Praze.

Jednotný XML formát pro záznamníky digitálních nivelačních přístrojů

Pro ukládání naměřených dat z digitálních nivelačních přístrojů používáme univerzální jazyk XML. První verzi návrhu jednotného XML formátu jsem zpracoval v rámci své diplomové práce "Analýza výstupních formátů digitálních nivelačních přístrojů" (obhajoba v lednu 2001), na kterou navazuje zaměření mého dokrorandského studia http://gama.fsv.cvut.cz/~soucek/dis .

Na tomto projektu spolupracujeme se Zeměměřickým ústavem, pro který řešíme komplexní problematiku zpracování nivelačních měření.

Ukládání digitálních dat není problém jen nivelačních přístrojů, ale všech digitálních teodolitů, dálkoměrů tzn. totálních stanic. Digitální nivelační přístroje jsou technologií novou na rozdíl od totálních stanic, kde ukládání dat na různá média je již otázkou "dávné" minulosti. V současnosti jdou výrobci stále tradiční cestou ukládání dat jako binárních nebo obyčejných textových souborů, jejichž formáty se přitom (pochopitelně) pro různé výrobce liší. Z pohledu uživatelů je nesporně škoda, že neexistuje univerzální formát pro ukládání naměřených dat. Geodetické firmy proto narážejí na problémy, při přechodu od přístrojů jedné firmy k přístrojům firmy jiné. Je složité a někdy prakticky nemožné převést naměřená data z jednoho přístroje do druhého. Na tento problém narážejí i firmy, které mezi sebou spolupracují a chtějí data vzájemně využívat.

Popsaný stav byl motivací pro pokus o nalezení jednotného formátu pro ukládání nivelačních dat. Hlavním cílem bylo vytvoření XML formátu, do kterého by bylo možné převést data ze všech běžně dostupných přístrojů (digitální nivelační přístroje zatím vyrábí pouze čtyři firmy - Leica Geosystems, Spectra Precision - Zeiss, Sokkia, Topcon). Tento formát bude dále sloužit jako vstupní formát pro programy pro správu nivelačních údajů, vyrovnání a analýzy nivelačních sítí. Odpadnou tedy dnešní problémy plynoucí z použití přístrojů různých firem. Pro převod do tohoto jednotného XML formátu nabízíme výpočetní program, který data z nivelačních záznamníků převede do formátu, který označujeme DNP.

Pro formáty specifikované na základě metajazyka XML definujeme formální syntax pomocí DTD (Document Type Definition). V DTD definujeme vlastní značky a jejich atributy. Při návrhu vlastního formátu bychom neměli zapomenout na definici atributu pro označení verze formátu. V opačném případě se budeme v budoucnu dostávat do problémů, kdy nebude možné identifikovat o jakou verzi našeho formátu se jedná. S tímto problémem jsme se setkali u formátu GSI firmy Leica Geosystems, kde se nedozvíte z jakého typu přístroje soubor pochází (je prakticky nemožné vytvořit univerzální konverzi z tohoto formátu).

Jednotný XML formát DNP digitálních nivelačních přístrojů, umožňuje kromě naměřených informací uložit i další informace o měřených datech jako jsou jméno měřiče, údaje o počasí a pod. Výhoda tohoto formátu je v jeho čitelnosti (což vychází z myšlenky a specifikace XML). Jedná se o standardní textový soubor, který je možné zobrazit na různých platformách (Windows, Unix, Linux, ...). Navíc po přidání jednoduchého stylu, který definuje zobrazení ve webovém prohlížeči, je možné jej prohlížet v normálním prohlížeči v uživatelsky přívětivém prostředí.

Vlastní formát (struktura souboru) je možné rozložit do několika částí :

Nivelační pořad se zaznamenává po jednotlivých stanoviskách. Údaje o stanovisku obsahují informace o záměrách vzad, vpřed, bočně a dodatkové informace (čas měření, statistické údaje o měření na stanovisku, ...). Do DNP je možné uložil záznamy o vytyčování, jednoduchý (čtení záměr vzad a vpřed) i zdvojený (vzad -vpřed - vpřed - vzad) typ nivelačního pořadu. Je možné ukládat boční záměry. Do jednoho souboru je možné uložit i více nivelačních pořadů.

Krátce se ještě zmíníme o definici stylu pomocí něhož je možné vlastní XML dokument transformovat na jiný typ dokumentu (XML odpovídající jinému DTD, HTML 3.2, HTML 4.0, XHTML, RTF, WRML, obyčejný textový dokument, ...). Samozřejmě tohoto převodu můžeme dosáhnout i napsáním vlastního softwaru s využitím XML parseru, ale použití stylového jazyka XSLT je pro řadu případů jednodušší. Jazyk XSLT jsme v našem projektu využili pro konverzi formátu DNP do formátu HTML, který po zobrazení ve webovém prohlížeči vypadá jako klasický nivelační zápisník.

Stále pracujeme na vylepšení specifikace formátu DNP, tak aby se mohl stát standardem pro ukládání, přenos a archivaci dat naměřených digitálními nivelačními přístroji. Na základě tohoto formátu by nebylo těžké vytvořit podobný formát na ukládání ostatních geodetických dat, ať už se jedná o data získaná z dálkoměrů, teodolitů či nivelačních přístrojů.

Komplexní zpracování nivelačních dat

Výše uvedený formát pro ukládání naměřených nivelačních dat se stal základem a vstupním souborem pro další komplexní zpracování nivelačních měření. V rámci svého doktorského studia vyvíjím ve spolupráci se Zeměměřickým úřadem Praha odborem nivelace software pro zpracování nivelačních dat. Vyvíjený software je testován na ZÚ Praha v reálných podmínkách pro zpracování měření v ČSJNS. Softwarový balík "Zpracování nivelačních dat" se skládá z několika oddělených modulů.

Program GIF10read

První z programů slouží k přenosu digitálně naměřených dat z nivelačního přístroje do počítače. Vzhledem k tomu, že na ZÚ Praha používají nivelační přístroje Na3003 od firmy Leica Geosystems (http://www.leica-geosystems.com ), program ve stávající verzi umožňuje přenos dat pouze z tohoto typu přístroje. Ke čtení je využívána čtečka datových modulů (REC modul) Wild GIF 10. Čtečka je k počítači připojena přes standardní sériové rozhraní RS232. Výsledným produktem tohoto programu je elektronický zápis ve formátu GRE.

Program umožňuje řadu nastavení - číslo sériového portu (COM1 - COM4), detailní nastavení sériového portu (přenosová rychlost, ...) a volbu rozsahu přehrávaných bloků. Program je doplněn nápovědou.

Program využívá komponenty TComPort 2.00 http://www2.arnes.si/~sopecrni od Dejana Crnili dejancrn@yahoo.com .

Funkci tohoto programu běžně nahrazuje program dodávaný výrobcem. Vzhledem k jeho rozsáhlosti a chybějícím některým funkcím jsme zvolili vlastní řešení.

Program DigiSMO5

Tento program slouží k digitalizaci souřadnic pomocí digitizéru WACOM UD-1218-RE (případně jiného typu, který podporuje přenosový protokol Wacom II ASCII mode) nivelačních bodů z mapového podkladu, kterým je v tomto případě mapa SMO-5. Program na základě odsunutých souřadnic rohů mapy vypočítá transformační klíč a následně všechny odsunuté souřadnice bodů na mapě transformuje do systému JTSK. Před zahájením vlastní digitalizace je nutné zadat označení mapového listu. Z tohoto označení se vypočítají souřadnice rohů listu v systému JTSK (identické body). Výstupem tohoto programu jsou souřadnice YX nivelačních bodů.

Určování polohy nivelačních bodů tímto způsobem se provádí v případě, že body nejsou polohově zaměřeny přímo v terénu.

Program využívá knihovny gMatVec http://gama.fsv.cvut.cz od Aleše Čepka cepek@fsv.cvut.cz .

Program Sestava

Třetí program provádí tzv. pořadové sestavení. V této fázi zpracování nám jde o rozdělení naměřených dat na jednotlivé nivelační pořady. Z jednotlivých elektronických zápisníků GRE vytvořit sadu jednotlivých zápisníků pro nivelační pořady (soubor měření tam a zpět). Z takto vytvořených zápisníků samostatných pořadů se vytváří souborový podklad pro pořadové vyrovnání.

Obr č. 1 Ukázka z programu Nivelace (click on image to see it in original resolution)

Pomocí tohoto programu se ze zápisníků GRE generuje obecný zápisník DNP ve formátu XML, o kterém jsme hovořili výše. Ze zápisníku DNP se vytvářejí pro uživatele čitelnější a přívětivější zápisníky nivelačního měření ve formátu XHTML, v jednodušším textovém formátu (soubor ZAP a ARC). Po přidání informace o nivelačním pořadu (teplotní koeficienty pro určení opravy z teplotní roztažnosti nivelační latě a seznam čísel bodů, ze kterých se nivelační pořad skládá) se vytvoří soubor výsledného sestavení (soubor SES respektive SES2). Tento výsledný soubor obsahuje seznam měření nivelačního pořadu po jednotlivých oddílech (číslo bodu, měření tam a zpět, počet sestav, délku oddílu a laťovou opravu).

Program Nivelace

Hlavní funkcí posledního programu je pořadové vyrovnání jednotlivých nivelačních pořadů. Než se podíváme na pořadové vyrovnání, řekneme si něco o dalších funkcích, kterých je v programu velké množství. Tyto funkce můžeme rozdělit do několika skupin - prohlížení používaných souborů, přípravné práce a výpočetní práce.

Mezi přípravnými pracemi je nejzajímavější a také nejdůležitější vytvoření vstupního souboru pro vlastní pořadové vyrovnání. Tato funkce nám umožňuje vytvořit vstupní soubor (ať už ve formátu TAB - běžný textový formát nebo LIF - formát na bázi XML) z několika zdrojů. Vstupní soubor pro pořadové vyrovnání obsahuje množství údajů, které se nacházejí na různých místech (v souborech několika typů a v databázi). Funkce "Příprava vstupního souboru" nám umožňuje právě z tohoto množství různých souborů vyhledat a sestavit tento soubor. Základem pro přípravu LIF (TAB) souboru je soubor se sestavením nivelačního pořadu po jednotlivých oddílech. K němu je nutné přidat souřadnice YX nivelačních bodů, které mohou být uloženy v databázi nebo v souboru získaným programem DigiSMO5, a stávající nadmořské výšky nivelačních bodů (najdeme opět v databázi). Další údaje (místopisný popis, druh a stupeň stabilizace) se musí do souboru vyplnit ručně na základě údajů získaných v terénu.

Takto sestavený soubor LIF je vstupním souborem pro pořadové vyrovnání. Soubor je ve formátu XML a jsou v něm uloženy následující informace - jméno pořadu, číslo nivelačního bodu, souřadnice Y a X, původní nadmořská výška a její rok určení, převýšení tam a zpět, délka oddílu, počet sestav, místopisný popis, značka, druh a stupeň stabilizace, střední převýšení oddílu z elektronického zápisníku (tento údaj se počítá z převýšení mezi jednotlivými přestavovými body a je využíván pro výpočet Bouguerových anomálií).

Výpočetní práce obsahují samostatné funkce pro výpočet normálního převýšení (ze zadaných souřadnic YX a nadmořské výšky 2 bodů, případně střední výšky), Bouguerových anomálií, zeměpisných souřadnic na Beselově elipsoidu ze souřadnic v S-JTSK, zeměpisných souřadnic na Krasovského elipsoidu ze souřadnic v S-42 a další jednoduché výpočetní operace.

Nejdůležitější funkcí je samozřejmě pořadové vyrovnání. Na základě vstupního souboru (LIF nebo TAB) je provedeno pořadové vyrovnání tohoto nivelačního pořadu. Nejdříve je nutné stanovit kritéria přesnosti tzn. zvolit typ měření (I. - IV. řád + PNS, Technická nivelace, ...). Podle zvoleného typu měření se nastaví příslušná kritéria přesnosti (max. střední km chyba, max. odchylka pro rozdíl měření T+Z v oddíle a pro nivelační úsek), jejichž dodržení se bude v rámci výpočtu kontrolovat. Dále můžeme volit volbu vah jako převrácenou hodnotu délky oddílu a nebo jako převrácenou hodnotu počtu sestav.

Před vlastním výpočtem (vyrovnáním) je nutné označit některé nivelační body za pevné, aby bylo možné nivelační pořad vyrovnat. Je možné označit jen jeden pevný bod - pořad se bude počítat jako volný bez vyrovnání a nebo více pevných bodů - pořad se bude vyrovnávat pomocí metody MNČ.

Po provedení tohoto základního nastavení můžeme stisknout tlačítko pro výpočet. Během výpočtu se provádí následující. Pro každý nivelační bod se vypočte označení mapového listu, na kterém bod leží, na mapách SMO-5 a ZM50, zeměpisné souřadnic na Besselově elipsoidu, Bouguerova anomálie, skutečná tíže a normální tíhové zrychlení . Pro každé nivelační převýšení se vypočte rozdíl a průměrné převýšení, normální převýšení, rozdíl geopotenciálních kót, normální a ortometrická redukce a převodní člen ze systému ortometrických do systému normálních výšek. Poté se přistoupí k vyrovnání nivelačního pořadu - výpočet vyrovnaných převýšení a výšek, střední chyby jednotlivých převýšení.

Obr č.2 Ukázka výstupního souboru z pořadového vyrovnání ve formátu XML

Během výpočtu se generuje protokol o výpočtu, do kterého se zapisují informace o vyrovnání, kritéria přesnosti a případně zpráva o jejich překročení.

Po výpočtu máme k dispozici další funkce grafického charakteru - polohové zobrazení nivelačního pořadu v systému S-JTSK, výškový profil nivelačního pořadu a graf rozdílu nových a původních výšek. Ve všech grafických výstupech máte možnost zapínat a vypínat jednotlivé vrstvy (popisy, spojnice bodů, ...), měnit měřítko, tisknout sestavy a další běžné funkce známé z CAD systémů.

Výstupů z pořadového vyrovnání je několik - Nejdůležitějším je soubor LOF ve formátu XML. V něm jsou uložena všechna vypočtená data společně se vstupními daty. Další soubory jsou ve formátech DBF (pro vstup do databáze, ze které se generují nivelační údaje pro širokou geodetickou veřejnost) a ve formátu XLS Microsoft Excel.

Program využívá několik knihoven : TPrintPreview v1.1 http://www.crosswinds.net/~khojasteh/ od Kambiz R. Khojasteh khojasteh@www.dci.co.ir , TMemoEx v2.31 http://www.tmemoex.com/ a zejména XML parser Expat 1.95.2 http://expat.sourceforge.net od Jamese Clarka.

Všechny výše uvedené programy jsou napsány v programovacím jazyce C++ s využitím grafické knihovny VCL. Kompilace zdrojových textů a sestavení jednotlivých modulů bylo provedeno ve vývojovém nástroji C++ Builder 5 firmy Borland http://www.borland.com . Výsledné programy jsou spustitelné na operačních systémech s architekturou win32 tzn. Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME a Windows XP. Instalace programů je velice jednoduchá. Instalační soubor najdete na adrese http://gama.fsv.cvut.cz/~soucek/archive/nivelace/ . Jedná se o klasickou instalaci v prostředí Windows. Po spuštění programu setup se provede zkopírování potřebných souborů na pevný disk a vytvoření položek v základní nabídce Start a na ploše.

Závěr

V článku jsem se snažil čtenáře seznámit s problematikou zpracování nivelačních měření v rámci ČSJNS zejména s programovým vybavením, které se pro tento účel používá. Software je neustále doplňován o nové funkce, které vyplývají z konkrétních požadavků odboru nivelace.

Literatura

  1. Kolář Jan, Čepek A., Souček P.: XML in projects GNU GaMa and 3DGI, In: FIG Working Week 2003 and 125th Anniversary, Paris 13-17 April 2003, url: http://gama.fsv.cvut.cz/~soucek/cv/prace/2003/fig-paris
  2. Souček P., Chromý R.: Metajazyk XML jako nástroj pro popis geodetických dat (praktické zkušenosti a implementace), In: sborník 5. Odborné konference doktorského studia, Brno 12.-13. února 2003, url: http://gama.fsv.cvut.cz/~soucek/cv/prace/2003/brno-konference
  3. Čepek A., Souček P.: Praktické možnosti využití XML jazyka v geodézii, In: Gis ve veřejné správě. Praha : CAGI - TERIS, 2001, díl 1, s. 53-54. ISBN 80-86143-21-X, url: http://gama.fsv.cvut.cz/~soucek/cv/prace/2001/sec-xml.html
  4. Souček P.: Technologie a software pro zpracování nivelačních měření, In: konference GIS Seč 2003 - GIS ve veřejné správě, 11.-13.6.2003, ISBN 80-86143-26-0, ISSN 1213-4163, url: http://gama.fsv.cvut.cz/~soucek/cv/prace/2003/gis-sec2003
  5. Souček P., Chromý R.: Možnosti zpracování geodetických dat popsaných pomocí metajazyka XML (praktické zkušenosti a implementace), In: konference GIS Seč 2003 - GIS ve veřejné správě, 11.-13.6.2003, ISBN 80-86143-26-0, ISSN 1213-4163, url: http://gama.fsv.cvut.cz/~soucek/cv/prace/2003/gis-sec2003
  6. Archiv programového balíku http://gama.fsv.cvut.cz/~soucek/archive/nivelace