ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta stavební Katedra geomatiky
Zpracování nivelačních měření ve formátu Leica GSI
Levelling data processing in Leica GSI file format Bakalářská práce
Studijní program: Geodézie a kartografie Studijní obor: Geodézie, kartografie a geoinformatika Vedoucí práce: Prof. Ing. Aleš Čepek, CSc.
Jaromír Rokusek
Praha 2014
Poděkování Chtěl bych poděkovat prof. Aleši Čepkovi za jeho vedení, rady a neocenitelnou pomoc při vytváření této práce. Dále bych rád poděkoval Ing. Tomáši Jiřikovskému a Ing. Tomáši Kubínovi za poskytnutí testovacích dat a užitečných informací, bez nichž by tento projekt nemohl být řádně dokončen.
3
Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a že jsem nepoužil žádné jiné informační zdroje než ty, které jsou uvedeny v seznamu bibliografických citací.
V Praze dne ..............................
Podpis ..............................
4
Abstrakt Práce se zabývá vytvořením volně šiřitelného softwaru pro čtení souborů ve formátu GSI obsahujících nivelační měření. První část práce je věnována formátu GSI. Je v ní popsána struktura souborů v tomto formátu a jejich obsah. Ve druhé části je popsáno ovládání programu a všechny jeho funkce. Třetí část pojednává o programu gama-local, neboť mezi ním a vytvořeným programem existuje návaznost. Poslední část obsahuje základní informace o tvorbě programu a také užitečné rady pro tvorbu podobných projektů.
Klíčová slova: software, Leica, GSI formát, nivelační měření
Abstract The work deals with the creation of free software for reading files in GSI format containing levelling measurements. The First section is devoted to GSI format. It describes structure and content of the files in this format. The second section describes the user interface and all its features. The third section deals with gama-local because there is a connection between gama-local and created program. The last section contains basic information about the program creation and also useful tips for creating similar projects.
Key words: software, Leica, GSI format, levelling data
5
Obsah Úvod ........................................................................................................................................... 7 1 Formát GSI ............................................................................................................................... 9 1.1 Struktura souboru, GSI-8 a GSI-16 .................................................................................... 9 1.2 Blok ................................................................................................................................. 11 1.3 Tabulka kódů................................................................................................................... 12 1.4 Měřící programy ............................................................................................................. 14 1.4.1 Měřící program ........................................................................................................ 14 1.4.2 Seznam měřících programů ..................................................................................... 15 1.4.3 Program BF (vzad, vpřed)......................................................................................... 16 1.4.4 Program BFFB (vzad, vpřed, vpřed, vzad) ................................................................ 17 1.4.5 Program aBF ............................................................................................................. 18 1.4.6 Program aBFFB ......................................................................................................... 19 1.4.7 Program Measure Only ............................................................................................ 20 1.4.8 Program Measure and Record ................................................................................. 21 2. Uživatelská příručka ............................................................................................................. 23 2.1 Popis a funkce tlačítek .................................................................................................... 23 2.2 Otevírání a zavírání souborů........................................................................................... 24 2.3 Prohlížení obsahu souboru ............................................................................................. 24 2.3.1 Výběr měření............................................................................................................ 24 2.3.2 Informace o vybraném měření ................................................................................ 25 2.4 Ukládání dat .................................................................................................................... 27 2.4.1 CSV ........................................................................................................................... 27 2.4.2 PDF ........................................................................................................................... 32 2.4.3 Vstupní soubor pro program gama-local .......................................................... 34 3 Gama Local ............................................................................................................................ 36 3.1 Jak použít program gama-local ................................................................................ 36 3.2 Vstupní soubor pro program gama-Local ................................................................. 37 4 Tvorba programu a platforma Qt .......................................................................................... 39 4.1 Tvorba programu ............................................................................................................ 39 4.2 Na co si dát pozor při práci s platformou Qt .................................................................. 39 4.2.1 Kódování textových řetězců..................................................................................... 40 4.2.2 Sestavení projektu ................................................................................................... 40 Závěr: ........................................................................................................................................ 43
6
Úvod
Úvod V dnešní době se geodetická měření již nezapisují do papírových zápisníků, tak jak tomu bylo dříve, ale téměř výhradně se registrují do paměti přístroje. Pokud s nimi chceme dále pracovat, musíme je z přístroje přenést do počítače. To znamená, že je musíme zapsat do nějakého souboru, přičemž je potřeba zapsat je tak, abychom jim rozuměli my, nebo nějaký software určený pro jejich zpracování. K těmto účelům vyvíjejí firmy zabývající se výrobou geodetický přístrojů své vlastní datové formáty. Jedním z těchto formátu je i formát GSI. Formát GSI byl vytvořen firmou Leica Geosystems a je používán v totálních stanicích, nivelačních a dalších přístrojích vyvinutých touto společností. Pro nezasvěcené uživatele je velmi nesrozumitelný. Původně byl téměř jistě navržen s tím, že ke zpracování souborů v tomto formátu bude použit příslušný software. K těmto účelům je společností Leica vyvíjen a podporován software s názvem Leica Geo Office zkráceně LGO. Jedná se o placený software, který primárně není dodáván spolu s přístrojem. V minulosti byla k dispozici jeho odlehčená verze, která neobsahovala všechny funkce, ale zato byla poskytována zdarma. Dnes už ale tento software není podporován a jeho staré verze nefungují na nových verzích operačních systémů. Pokud potřebujete zpracovat měření uložená ve formátu GSI a nemáte k dispozici LGO, můžete se dostat do potíží. Situace se liší v závislosti na použitém přístroji. Přestože se jedná o jeden formát, obsah souboru se liší v závislosti na tom, zda použijete totální stanici, nebo nivelační přístroj. To je celkem logické, neboť postup a metody měření jsou naprosto odlišné. U totálních stanic je situace poměrně snadno řešitelná. Existuje mnoho jiných programů pro zpracování geodetických měření, které si se soubory ve formátu GSI z totálních stanic umějí poradit (Groma). Navíc všechny novější totální stanice od společnosti Leica poskytují více exportních možností než pouze formát GSI. U nivelačních přístrojů je situace jiná. Existují dvě řady nivelačních přístrojů od firmy Leica. Jsou to řady Sprinter a DNA. Přístroje řady Sprinter exportují data pouze ve formátu pro Microsoft Excel[1]. Naproti tomu přístroje řady DNA umožňují primárně export pouze do formátu GSI1. Není mi znám žádný software kromě LGO, který by uměl zpracovat nivelační měření ve formátu GSI. Ve většině případu je nutné se s formátem seznámit a se souborem si poradit v podstatě manuálně. Z vlastní zkušenosti vím, že to může být velmi zdlouhavá práce. To mne inspirovalo k vytvoření programu, který by tento problém vyřešil.
1
Existuje možnost definovat vlastní výstupní formát dat. K tomu je ovšem zapotřebí software Leica Geo Office[2]. Novější verze softwaru přístroje umožňují exportovat data také do formátu Leica XML.
7
Úvod
Software, jehož vytvoření bylo náplní této bakalářské práce, je volně šiřitelný a poskytuje alternativu v oblasti prvotního zpracování nivelačních měření ve formátu GSI. Je určen pouze pro práci se soubory obsahující nivelační měření. Se soubory z totálních stanic nebo jiných přístrojů si neporadí. V žádném případě si neklade za cíl vyrovnat se programu LGO, který poskytuje celou řadu pokročilých funkcí. Mým hlavním cílem bylo přehledné zobrazení všech registrovaných dat a následná možnost uložit data v mnohem srozumitelnějším a pro zpracování vhodnějším formátu. Pro tyto účely jsem zvolil formát CSV. Celý program a všechny jeho funkce jsou podrobně popsány ve druhé kapitole. První kapitola se zabývá formátem GSI. Třetí kapitola pojednává o programu gama-local, který je s touto prací spojen způsobem, jenž bude dále vysvětlen. Čtvrtá a poslední kapitola stručně hovoří o tvorbě programu a obsahuje užitečné rady, ohledně tvorby podobných projektů, pro další studenty.
8
Formát GSI
1 Formát GSI Tato kapitola pojednává o formátu GSI. Formát bude popsán tak, aby mu bylo možné porozumět. Bude vysvětlen význam jednotlivých kódů, na základě kterých je možno formát číst. Dále budou popsány jednotlivé měřící programy, které ovlivňují podobu obsahu výsledného souboru. Většinu informací obsažených v této kapitole lze nalézt zde[3]. Odtud jsem také čerpal všechny informace. Geo Serial Interface zkráceně GSI je datový formát vyvinutý společností Leica Geosystems. Jak již bylo řečeno v úvodu, měřená data registrovaná do paměti přístroje je potřeba přenést do počítače, aby s nimi bylo možno dále pracovat. Je tedy potřeba uložit je do počítačového souboru o nějakém formátu, a právě k těmto účelům společnost Leica Geosystems vytvořila formát GSI2. 1.1 Struktura souboru, GSI-8 a GSI-16 Na začátek bych rád zmínil, že oficiální anglická terminologie je jiná a podle mého názoru je po překladu matoucí, proto jsem se rozhodl ji pro účely popsání struktury souboru pozměnit. Existují dva typy formátu GSI. Jsou to typy GSI-8 a GSI-163. Při exportování dat z přístroje je uživatel vyzván k tomu, aby si vybral, který formát chce použít. Formát GSI-16 je vhodné použít tam, kde očekáváme, že měřené, nebo vypočtené hodnoty budou velká čísla. Proč tomu tak je, bude vysvětleno dále, stejně jako budou popsány rozdíly mezi těmito dvěma typy. Nyní ke struktuře souboru. Data jsou v souboru uspořádána do řádků, přičemž každý řádek se skládá z jednoho, nebo více bloků. Každý blok je tvořen stejným počtem znaků. Jedná se o znaky z tabulky ASCII. V případě GSI-8 je to 16 znaků a v případě GSI-16 je to 24 znaků. Toto je první ze dvou rozdílů mezi GSI-8 a GSI-16. Druhý rozdíl bude ukázán na následující straně.
2
Problému zpracování nivelačních měření uložených v různě formátovaných souborech se na ČVUT věnoval Ing. Petr Souček, Ph.D, který vytvořil jednotný XML formát pro ukládání naměřených dat z digitálních nivelačních přístrojů [4][5]. 3 Existují také starší verze formátu GSI, které byly nahrazeny formáty GSI-8 a GSI-16. Starší verze byly používány u digitálních nivelačních přístrojů NA 3003 a NA 2002. Převod starších formátů na nové umožňuje software DNA GSI Converter, který je součástí programu LGO.
9
Formát GSI
Příklady:
GSI-8: |---------Blok 1---------|--------Blok 2-------|--------Blok 3-------| 110003+00000001 32…8+01360461 331.08+00218789 110004+00000002 32…8+01301676 332.08+00202322 (dva řádky v souboru ve formátu GSI-8 se schematickým popsáním bloků)
GSI-16: |-----------------Blok 1----------------|-------------Blok 2---------------|--------------Blok 3 --------------| *110003+0000000000000001 32...8+0000000001360461 331.08+0000000000218789 *110004+0000000000000002 32...8+0000000001301676 332.08+0000000000202322 (stejné dva řádky, ale v souboru ve formátu GSI-16 opět se schematickým popsáním bloků)
Na těchto příkladech si můžete všimnout druhého rozdílu mezi formátem GSI-8 a GSI-16. Je jím znak *. Tento znak je uveden na začátku každého řádku v souborech s formátem GSI-16. Takto je možno od sebe na první pohled odlišit oba typy. Hvězdička není počítána do počtu znaků. Formát GSI-16 se tedy od formátu GSI-8 liší v počtu znaků v jednom bloku a přítomností znaku * na začátku každého řádku. Chtěl bych upozornit na fakt, že mezi počet znaků je zahrnuta i mezera, která odděluje dva bloky. Tato mezera vždy patří do levého bloku. To co bylo řečeno doposud, platí obecně pro všechny soubory ve formátu GSI. To co bude popisováno dále, už zcela obecně neplatí. Mezi souborem z nivelačního přístroje a souborem z totální stanice jsou drobné rozdíly. Jelikož je tato práce zaměřena právě na nivelační přístroje, tak se následující obsah této kapitoly bude týkat právě jich. Proto to, co zde dále bude popsáno, nelze aplikovat na soubory, které pochází z totálních stanic.
10
Formát GSI
1.2 Blok Jak jsem se již zmínil, každý řádek se skládá z jednoho, nebo více bloků. Každý blok je rozdělen na dvě části. První část je stejná pro GSI-8 i GSI-16. Skládá se ze sedmi znaků, které v sobě skrývají informace o daném bloku. První tři znaky jsou vyhrazeny pro dvou nebo třímístný kód, který značí, jaká informace se v daném bloku nachází, například zda se jedná o čtení na lati vzad, čtení na lati vpřed, délku záměry atd. Čtvrtý znak nemá žádný speciální význam a je to buď nula, nebo tečka. Pátý znak nese informaci o tom, zda byla hodnota měřená, nebo zadaná a zda byla, nebo nebyla zavedena korekce ze zakřivení Země. Šestý znak značí, v jakých jednotkách a na kolik desetinných míst je měřená hodnota uvedena. Sedmý znak určuje znaménko hodnoty. Druhá část má osm znaků v případě GSI-8 a šestnáct znaků v případě GSI-16. Tato část obsahuje měřenou, vypočtenou, nebo nastavenou hodnotu, ovšem bez desetinné čárky. K určení hodnoty je proto nutno použít informace z první části. Nepoužité pozice jsou doplněny číslem nula a hodnota je vypisována zprava. Hodnoty, kterých mohou jednotlivé pozice nabývat, popisuje následující tabulka. Pozice
Hodnoty
1-3 4
5
6
7
Význam číselný kód viz tabulka kódů na straně 12 a 13
.
žádný
0
žádný
0
měřeno, bez korekce ze zakřivení
1
zadáno, bez korekce ze zakřivení
2
měřeno, s korekcí ze zakřivení
5
zadáno, s korekcí ze zakřivení
0
metry, 3 desetinná místa
1
stopy, 3 desetinná místa
6
metry, 4 desetinná místa
7
stopy, 4 desetinná místa
8
metry, 5 desetinných míst
+
hodnota je kladná
-
hodnota je záporná
8-15/8-23 16/24
měřená, vypočtená, nebo nastavená hodnota znak mezera
(Právě ve významů hodnot na jednotlivých pozicích se liší soubory z totálních stanic a nivelačních přístrojů.) 11
Formát GSI
1.3 Tabulka kódů Zde je uvedena tabulka, která obsahuje seznam základních číselných kódu označujících význam jednotlivých bloků. Základní kódy: Kód
Význam
11
číslo bodu
32
délka záměry
330
čtení na lati (Pouze u programu Measure Only.)
331
čtení na lati vzad
332
čtení na lati vpřed
335
2. čtení na lati vzad (program BFFB, aBFFB)
336
2. čtení na lati vpřed (program BFFB, aBFFB)
333
čtení na lati – boční záměra
334
čtení na lati – nastavená výška
374
rozdíl mezi nastavenou a měřenou výškou
35
rozdíl mezi nastavenou a měřenou délkou záměry
390
počet odečtení latě
391
směrodatná odchylka jednoho měření
392
rozptyl (variance) měřených hodnot
41
kódové označení začátku nového měření
42-49
dodatečné informace k měření
571
rozdíl stanovisek (střídavý postup záměr)
572
součet rozdílů stanovisek (střídavý postup záměr)
573
rozdíl mezi délkou záměry vzad a vpřed
574
celková délka pořadu
71
poznámka
83
výška bodu – nastavená, nebo měřená
12
Formát GSI
Speciální kódy: V následující tabulce jsou uvedeny speciální kódy, které v běžném souboru nenaleznete. Tyto informace jsou do souboru zapsány jen tehdy, pokud si je uživatel přímo vyžádá.
Kód
Význam
12
výrobní číslo přístroje
13
typ přístroje
17
datum, rok
19
den, čas
95
teplota přístroje
560
čas
561
datum
562
rok
599
verze vnitřního softwaru
13
Formát GSI
1.4 Měřící programy 1.4.1 Měřící program Každý řádek v souboru obsahuje alespoň jeden blok. První blok na každém řádku má číselný kód 11 nebo 41. Kód 11 označuje podle tabulky na straně jedenáct číslo bodu. Má ale i jiný význam. Označuje totiž, že tento řádek obsahuje měřené, vypočtené nebo nastavené hodnoty a že je součástí nějakého většího celku řádků. Blok s číselným kódem 41 pak označuje začátek takového celku a ukrývá v sobě informaci o tom, o jaký celek se jedná. Celý soubor je tedy rozdělen na celky. Tyto celky reprezentují jednotlivá nivelační měření. Blok s kódem 41 označuje začátek nového měření a nese informaci o tom, jaký měřící program byl pro toto měření použit. Tato informace je obsažena v posledním čísle daného bloku s kódem 41, které nabývá hodnot 1 – 4. Konec měření není nijak označen. Respektive označen je až začátek nového měření. Měřící program si vybírá uživatel při měření s přístrojem. Výběr se provede před začátkem měření. Daný program určuje, jakým způsobem (metodou) se měření provádí, a tomu potom odpovídá i obsah příslušné části souboru (celku). K dispozici je celkem šest měřících programů, které jsou podrobně rozebrány dále. V předchozím odstavci jsem řekl, že číslo označující o jaký měřící program se jedná, nabývá hodnot od 1-4. Programů je ale šest. Tato nesrovnalost je způsobena tím, že dva přebývající programy, které by se daly považovat za doplňkové, jsou označeny jinak. Konkrétně jeden z nich není označen vůbec a druhý je označen speciálně. Označení jednotlivých programů popisuje tabulka na straně 15. Ukázka: 410253+?......1 110254+00000045 83..56+00000000 110255+00000045 32...6+00035323 331.26+00007388 390...+00000003 391.26+00000000 110256+00000046 32...6+00039402 332.26+00009540 390...+00000003 391.26+00000000 110257+00000046 573..6-00004080 574..6+00074725 83..26-00002152 410258+?......1 110259+00000036 83..56+00000000 110260+00000036 32...6+00065548 331.26+00006533 390...+00000003 391.26+00000000 110261+00000037 32...6+00055502 332.26+00005768 390...+00000003 391.26+00000000 110262+00000037 573..6+00010046 574..6+00121051 83..26+00000764
V této ukázce vidíte výňatek ze souboru. Jsou zde vidět dva celky, tedy dvě nivelační měření. V obou případech byl použit stejný měřící program s označením 1. Jedná se o velmi krátká měření, neboť každé z nich tvoří pouze jedna sestava.
14
Formát GSI
1.4.2 Seznam měřících programů Název programu
Blok označující začátek měření
Označení měřícího programu
Programy odpovídající nivelačním technikám BF
410000+?......1
1
BFFB
410000+?......2
2
aBF
410000+?......3
3
aBFFB
410000+?......4
4
Speciální (doplňkové) programy Measure Only
žádný
žádné
Measure and Record
410000+?......1
1
Několik poznámek k tabulce: Místo čtyř nul uvnitř bloku s kódem 41, tedy na 3. - 6. pozici, je běžně uvedeno číslo řádku. Pro názornost zde byly uvedeny nuly. Předposlední znak uvnitř bloku s kódem 41 (posledním je mezera) označuje konkrétní měřící program. Pro program BF je to znak 1 atd. Program Measure Only není označen žádným blokem s kódem 41. V případě použití tohoto programu jsou do souboru rovnou zapisovány řádky začínající bloky s kódy 11. Program Measure and Record je trochu nepochopitelně označen stejně jako program BF. Nicméně je tu jeden podstatný rozdíl, který bude později objasněn. Názvy programů jsou uvedeny tak, jak je nazývá společnost Leica. Písmeno B je zkratka pro anglické slovo backsight, česky záměra vzad a písmeno F je zkratka pro anglické slovo foresight, česky záměra vpřed. Například program BF by se tak dal přeložit jako záměra vzad záměra vpřed, což nepochybně vychází ze způsobu, jakým se nivelace běžně měří.
15
Formát GSI
1.4.3 Program BF (vzad, vpřed) Tento program odpovídá klasickému postupu při měření nivelace. To znamená, že se čte nejprve na lati, která je vzad a poté na lati, která je vpřed, myšleno ve směru nivelace. Následující schematická tabulka popisuje, jak vypadá příslušná část souboru při použití tohoto programu. Zaznamenaný řádek
Bloky (číselné kódy)
označení programu, začátek měření číslo počátečního bodu a jeho výška – nastavuje uživatel
41 Začátek měření 11, 83 měření vzad
11, 32, 331
měření vpřed
11, 32, 332
výsledky
první sestava
11, 573, 574, 83
měření vzad
11, 32, 331
měření vpřed
11, 32, 332
výsledky
Vysvětlivky
druhá sestava
11, 573, 574, 83
Ukázka ze souboru: 410001+?......1 110002+00000108 83..28+00000000 110003+00000108 32...8+00491330 331.08+00048045 110004+00000001 32...8+00492045 332.08+00211722 110005+00000001 573..8-00000716 574..8+00983375 83..08-00163677 110006+00000001 32...8+00493886 331.08+00044371 110007+00000002 32...8+00485028 332.08+00203984 110008+00000002 573..8+00008143 574..8+01962289 83..08-00323289 110009+00000002 32...8+00498112 331.08+00032240 110010+00000003 32...8+00504694 332.08+00211525 110011+00000003 573..8+00001561 574..8+02965094 83..08-00502574 110012+00000003 32...8+00480481 331.08+00038439 110013+00000004 32...8+00477379 332.08+00210346 110014+00000004 573..8+00004663 574..8+03922955 83..08-00674480 110015+00000004 32...8+00430281 331.08+00060716 110016+00000107 32...8+00442923 332.08+00196964 110017+00000107 573..8-00007979 574..8+04796158 83..08-00810728
(Program BF, 5 sestav, GSI-8)
16
Formát GSI
1.4.4 Program BFFB (vzad, vpřed, vpřed, vzad) Tento program je velmi podobný programu BF, jediný rozdíl spočívá v tom, že každou nivelační sestavu měříme dvakrát ze stejného stanoviska a výsledné převýšení se vypočte pomocí aritmetického průměru. Zaznamenaný řádek
Bloky (číselné kódy)
označení programu, začátek měření číslo počátečního bodu a jeho výška – nastavuje uživatel
41 Začátek měření 11, 83 1. měření vzad
11, 32, 331
1. měření vpřed
11, 32, 332
2. měření vpřed
11, 32, 336
2. měření vzad
11, 32, 335
výsledky
první sestava
11, 571, 572, 573, 574, 83
1. měření vzad
11, 32, 331
1. měření vpřed
11, 32, 332
2. měření vpřed
11, 32, 336
2. měření vzad
11, 32, 335
výsledky
Vysvětlivky
druhá sestava
11, 571, 572, 573, 574, 83
Ukázka ze souboru: 410015+?......2 110016+00000215 83..56+00000000 110017+00000215 32...6+00107102 331.26+00027128 110018+00000001 32...6+00106883 332.26+00015119 110019+00000001 32...6+00106860 336.26+00015119 110020+00000215 32...6+00107052 335.26+00027129 110021+00000001 571.26-00000000 572.26-00000000 573..6+00000206 574..6+00213949 83..26+00012009 110022+00000001 32...6+00169271 331.26+00013368 110023+00000002 32...6+00169520 332.26+00013929 110024+00000002 32...6+00169524 336.26+00013929 110025+00000001 32...6+00169251 335.26+00013367 110026+00000002 571.26-00000000 572.26-00000000 573..6-00000055 574..6+00552732 83..26+00011448
(Program BFFB, 2 sestavy, GSI-8)
17
Formát GSI
1.4.5 Program aBF Tento program je určen pro tzv. obousměrné měření záměr. Měření probíhá stejně jako u programu BF. Každá sestava je ovšem měřena dvakrát a to obousměrně. Obousměrným měřením se myslí měření ve smyslu VZAD – VPŘED, VPŘED – VZAD. Zaznamenaný řádek
Bloky (číselné kódy) 41
Začátek měření
11, 32, 331
měření vpřed
11, 32, 332
výsledky
11, 573, 574, 83
měření vpřed
11, 32, 332
měření vzad
11, 32, 331
výsledky …
označení programu, začátek měření číslo počátečního bodu a jeho výška – nastavuje uživatel
11, 83
měření vzad
Vysvětlivky
první sestava
11, 573, 574, 83 …
…
18
Formát GSI
1.4.6 Program aBFFB Stejně jako program aBF je i tento program určen pro obousměrné měření záměr. V tomto případě je ovšem postup aplikován na program BFFB. Měření tedy probíhá takto: VZAD-VPŘED-VPŘED-VZAD, VPŘED-VZAD-VZAD-VPŘED. Zaznamenaný řádek
Bloky (číselné kódy)
označení programu, začátek měření číslo počátečního bodu a jeho výška – nastavuje uživatel
41 Začátek měření 11, 83 1. měření vzad
11, 32, 331
1. měření vpřed
11, 32, 332
2. měření vpřed
11, 32, 336
2. měření vzad
11, 32, 335
výsledky
11, 571, 572, 573, 574, 83
1. měření vpřed
11, 32, 332
1. měření vzad
11, 32, 331
2. měření vzad
11, 32, 335
2. měření vpřed
11, 32, 336
výsledky …
Vysvětlivky
první sestava
11, 571, 572, 573, 574, 83 …
…
Použití programů aBF a aBFFB je v České republice respektive v ČSNS zapovězeno! Tento fakt je dán Metodickým návodem Zeměměřického úřadu pro práce v základním výškovém bodovém poli [6]. Tento dokument stanovuje, že pro práci v ČSNS je možné použít pouze metody PN, VPN a ZPN a dále uvádí, že u těchto metod se vždy musí začít měřením na zadní lať. Právě tento fakt znemožňuje použití progamů aBF a aBFFB, neboť druhé měření sestavy začíná vždy měřením na lať vpřed.
19
Formát GSI
1.4.7 Program Measure Only Jedná se o jeden ze dvou speciálních měřících programů. Zvláštnost tohoto programu spočívá v tom, že v souboru není nijak označen jeho začátek, jako je tomu u ostatních programů. Navíc tento program neodpovídá žádné nivelační technice. Jeho název by se dal přeložit jako „Pouze měření“, což odpovídá tomu, jak je program strukturován. Ostatní programy uživatele přesně navádějí, ze které latě má odečítat, a co má měřit. Z výsledných dat je potom možno vyčíst, co je čtení na lati vzad, co je čtení na lati vpřed atd. U programu Measure Only tomu tak není. Všechna čtení na lati jsou označena jedním kódem, konkrétně kódem 330. Není tedy možné je od sebe odlišit, pokud si přesně nepamatujeme, co jsme měřili a v jakém pořadí. Navíc u tohoto programu nedochází ani k žádným výpočtům převýšení nebo délky pořadu. V příslušném celku uvnitř souboru tedy nenajdeme žádný řádek obsahující kódy 83, 573, nebo 574.
Zaznamenaný řádek
Bloky
měření
11, 32, 330
měření
11, 32, 330
měření
11, 32, 330
Vysvětlivky Každý řádek reprezentuje jedno čtení na lati.
Ukázka ze souboru: *110119+0000000000000001 32...6+0000000000068913 330.26+0000000000003883 *110121+0000000000000002 32...6+0000000000048010 330.26+0000000000024440 *110122+0000000000000003 32...6+0000000000048989 330.26+0000000000006855 *110124+0000000000000004 32...6+0000000000049459 330.26+0000000000024163 *110125+0000000000000005 32...6+0000000000050634 330.26+0000000000007728
(Program Measure Only, 5 čtení na lati, GSI-16)
20
Formát GSI
1.4.8 Program Measure and Record Podobně jako program Measure Only, tak i tento program se dá považovat za speciální. Název se dá přeložit jako „změř a zaznamenej“. To plně odpovídá tomu, co se při použití programu děje. Program umožňuje změřit libovolný počet záměr vzad, které se všechny registrují do paměti přístroje a objeví se i ve výsledném souboru, přičemž do výpočtu převýšení se uvažuje pouze poslední měření. Poté je možno měřit libovolný počet záměr vpřed, které se také všechny registrují, ale do výpočtu se uvažuje opět pouze poslední. Označení začátku měření je stejné jako označení programu BF. Rozdíl je v tom, že označení začátku, tedy řádek obsahující blok s kódem 41, se v souboru objeví až za první záměrou vzad, která je uvažována do výpočtu. Za začátkem měření navíc následuje kopie posledního měření vzad. Vše objasňuje následující tabulka. Zaznamenaný řádek
Bloky
1. měření vzad
11, 32, 331
další měření vzad
11, 32, 331
další měření vzad
11, 32, 331
poslední měření vzad
11, 32, 331
neuvažovány do výpočtu
označení programu, začátek měření číslo počátečního bodu a jeho výška – nastavuje uživatel
41 začátek měření 11, 83 kopie posledního měření vzad
11, 32, 331
1. měření vpřed
11, 32, 332
další měření vpřed
11, 32, 332
poslední měření vpřed
11, 32, 332
výsledky
…
Vysvětlivky
uvažováno do výpočtu
uvažováno do výpočtu
11, 573, 574, 83
1. měření vzad
11, 32, 331
další měření vzad
11, 32, 331
poslední měření vzad
11, 32, 331
1. měření vpřed
11, 32, 332
uvažováno do výpočtu
…
Pro přehlednost byly do tabulky vloženy prázdné řádky.
21
Formát GSI
Ukázka ze souboru: 110001+00000291 32...8+00638242 331.28+00180026 390...+00000003 391.28+00000002 410002+?......1 110003+00000291 83..58+00000000 110004+00000291 32...8+00638242 331.28+00180026 390...+00000003 391.28+00000002 110005+00000001 32...8+00616402 332.28+00099318 390...+00000003 391.28+00000001 110006+00000001 573..8+00021841 574..8+01254644 83..28+00080708 110007+00000001 32...8+02376987 331.28+00195813 390...+00000003 391.28+00000003 110008+00000002 32...8+02486402 332.28+00114134 390...+00000003 391.28+00000003 110009+00000002 573..8-00087574 574..8+06118033 83..28+00162388 110010+00000002 32...8+03693666 331.28+00139725 390...+00000003 391.28+00000000 110011+00000003 32...8+03591184 332.28+00284453 390...+00000003 391.28+00000002 110012+00000003 573..8+00014908 574..8+13402883 83..28+00017660 110013+00000003 32...8+02822513 331.28+00076086 390...+00000003 391.28+00000002 110014+00000004 32...8+02951864 332.28+00249041 390...+00000003 391.28+00000002 110015+00000004 32...8+02839629 332.28+00244558 390...+00000003 391.28+00000002 110016+00000004 573..8-00002207 574..8+19065025 83..28-00150813 110017+00000004 32...8+02452528 331.28+00052206 390...+00000003 391.28+00000001 110018+00000005 32...8+02392984 332.28+00246876 390...+00000003 391.28+00000005 110019+00000005 573..8+00057337 574..8+23910537 83..28-00345483 110020+00000005 32...8+03093503 331.28+00111176 390...+00000003 391.28+00000001 110021+00000006 32...8+02976998 332.28+00145788 390...+00000003 391.28+00000002 110022+00000006 32...8+03106174 332.28+00145587 390...+00000003 391.28+00000000 110023+00000006 573..8+00044665 574..8+30110214 83..28-00379895
(Program Measure and Record, 6 sestav, GSI-8)
22
Uživatelská příručka
2. Uživatelská příručka Tato kapitola má poskytnout základní informace o tom, jak používat vytvořený program, který je výsledkem bakalářské práce. Popisuje práci s programem a shrnuje všechny jeho funkce a možnosti využití. Mým ým cílem bylo vytvořit volně šiřitelný šiř software pro zpracování nivelačních měření ve formátu GSI. Mnou vytvořený program je schopen přehledně zobrazit data uložená v těchto souborech a následně je uložit ve formátu CSV, případně je vytisknout v přehledné tabulce do PDF souboru. Je také schopen vytvořit vytvo vstupní soubor pro program gama-local ocal, do kterého zahrne vybraná raná nivelační měření. Program gama-local slouží k vyrovnání vnání geodetických sítí. Krátce se o něm zmíním v samostatné kapitole. Dále bych rád zdůraznil, že se jedná o alfa verzi programu. Program byl otestován na více než ne dvaceti různých souborech a několika počítačích. Přestože jsem odstranil všechny chyby, na které jsem narazil, může se stát, že program obsahuje ještě nějaké. Také bych rád zmínil, že z důvodu popsaných na straně 19 jsem se rozhodl, že programy aBF a aBFFB nebudou programem podporovány. To znamená, že pokud se budou v souboru nacházet, budou programem ignorovány. 2.1 Popis a funkce tlačítek V hlavním okně programu u se nachází čtyři tlačítka v podobě ikon. Jejich význam a funkce popisuje následující tabulka.
Ikona
Význam
Funkce
otevřít soubor
Vyvolá dialog pro otevření souboru.
zavřít soubor
Zavře vybraný soubor.
uložit
Uloží vybraná data ve zvoleném formátu.
Nápověda
Vyvolá dialog s nápovědou.
(Zdroje ikon: [7] a [8])
23
Uživatelská příručka
2.2 Otevírání a zavírání souborů Soubory se otevírají stisknutím ikony s obrázkem složky. Po stisknutí ikony je vyvolán klasický Windows dialog pro vybrání a otevření souboru. Otevřít lze libovolný počet souborů, ale pouze soubory s příponou GSI. Seznam otevřených souborů je k dispozici v levém kombo boxu. V případě, že chceme některý soubor zavřít, stačí soubor vybrat v tomto kombo boxu a stisknout tlačítko zavřít soubor v podobě červeného křížku, to je vidět na obrázku 1. Při práci se soubory není jejich obsah nijak ovlivněn. Soubory jsou otevřeny pouze pro čtení.
(Obrázek 1)
2.3 Prohlížení obsahu souboru Po načtení souboru a jeho vybrání v seznamu souborů je možno nahlédnout lédnout do měřených dat. K získání základních informací o vybraném nivelačním měření slouží rámeček se základními informacemi ve střední části hlavního okna. Pro detailnější pohled a pro prozkoumání jednotlivých naměřených hodnot slouží tabulka v dolní části ti hlavního okna. 2.3.1 Výběr měření Pro zobrazení požadovaných dat je potřeba nejprve vybrat měření. Při otevření ote nebo vybrání souboru je automaticky vybráno první měření v daném souboru. Měření provedená v programu Measure Only jsou řazena na první místa, po nich následují měření provedená v programu Measure and Record a poté následují měření v ostatních programech v pořadí, v jakém byla měřena. K výběru měření slouží pravý kombo box, box viz obrázek 2.
24
Uživatelská příručka
(Obrázek 2)
Na tomto obrázku je vybrán soubor s názvem 1211.GSI, který obsahuje čtyři měření. Všechna měření byla naměřena pomocí programu BF.
Pro snažší výběr měření jsou jednotlivá měření v seznamu označena typem měřícího programu a následně číslem počátečního a číslem koncového bodu nivelačního pořadu. Označení má tvar: Měřící program – [číslo počátečního bodu – číslo koncového bodu] 2.3.2 Informace o vybraném měření Ke zjištění základních informací o nivelačním měření - celkové převýšení, celková délka pořadu, čísla a nadmořské výšky počátečního a koncového bodu - slouží výše zmíněný rámeček ve středu hlavního okna programu (obrázek 3). V tomto rámečku naleznete všechny zmíněné informace a také počet sestav a počet bočních záměr.
(Obrázek 3)
25
Uživatelská příručka
Pro získání podrobnějších informací o vybraném měření lze použít tabulku ve spodní části hlavního okna programu. V této tabulce jsou zobrazena všechna naměřená data. Čtení na latích, délky záměr, výšky bodů (i přestavových) a čísla bodů. Výšky přestavových bodů jsem se rozhodl uvádět pro případ, že by nivelační pořad byl veden přes nějaké další známé stabilizované body, jejichž výška by měla být ověřena. Vycházím z předpokladu, že je lepší zbytečná informace navíc než podstatná informace, která chybí. Ideálním řešením by bylo zobrazit pouze užitečnou informaci. To ale v tomto případě nelze realizovat. V případě měřících programů BF a BFFB jsou jednotlivé sestavy barevně odděleny. Boční měření jsou zobrazena bezprostředně za měřením vzad, ke kterému se vztahují a jsou označena vlastní barvou4. U programu Measure and Record jsou barevně vyznačeny pouze řádky s výškami bodů. U programu Measure Only žádné barevné vyznačení není.
(Obrázek 4)
4
Současná verze programu nezobrazuje údaje o vytyčovacích měřeních. Nicméně všechny funkce a datové členy pro práci s nimi jsou připraveny a jsou součástí zdrojových kódů (třída Section, funkce setSetout_sights). Program tato data umí získat, pouze je zatím nikde nezobrazí.
26
Uživatelská příručka
2.4 Ukládání dat Jak již bylo avizováno na začátku této kapitoly, program umožňuje uložit vybraná data v jiných datových formátech. Cílem bylo převést data do čitelnější formy, která by byla vhodná pro další zpracování dat. 2.4.1 CSV Tento formát splňuje všechny stanovené požadavky. Je čitelný a vhodný pro další zpracování dat. S formátem CSV umějí pracovat programy jako Excel nebo Matlab. Především program Excel se mi v tomto případě jeví jako nejvhodnější. 2.4.1.1 Ukládání Do formátu CSV lze uložit všechny čtyři podporované měřící programy, jedná se o programy BF, BFFB, Measure Only a Measure and Record. Způsob, jakým jsou data zapsaná, se liší program od programu. To je dáno tím, že i samotné programy se dosti liší. Měřené hodnoty jsou zapisovány se stejnou přesností, s jakou byly registrovány a jsou uvedeny ve stejných jednotkách. Ukládání je možné pouze po jednotlivých měřeních. Pro uložení je potřeba vybrat příslušné měření a zaškrtnou políčko CSV a posléze vybrat oddělovač. K dispozici jsou čárka a středník. Čárka je standardní oddělovač pro formát CSV. To ostatně vyplývá i z názvu. CSV – coma separated values, neboli čárkou oddělené hodnoty. Nicméně pro českou verzi programu Excel je nutné použít středník a místo desetinných teček desetinné čárky. Pokud tedy hodláte s daty pracovat v české verzi programu Excel, je nutné jako oddělovač zvolit středník. Nahrazení desetinných teček desetinnými čárkami zajistí program sám. Pokud zvolíte jako oddělovač čárku, tak se desetinné tečky čárkami nenahrazují.
(Obrázek 5)
27
Uživatelská příručka
Po vybrání oddělovače stačí kliknout na tlačítko uložit v podobě diskety. Pokud není vybrán oddělovač, ale pouze formát CSV, tak je tlačítko uložit neaktivní a není možné ho stisknout. Pokud je vybrán i oddělovač, pak je po stisknutí tlačítka uložit vyvolán standardní Windows dialog pro uložení souboru. Přípona CSV je již nastavena a není potřeba ji zapisovat.
28
2.4.1.2 Struktura dat při uložení do formátu CSV – měřící program BF
(Obrázek 6)
Na obrázku 6 vidíme způsob, jakým jsou data uspořádána při uložení do formátu CSV. Každý řádek odpovídá jedné sestavě. První čtyři sloupce každého řádku se vztahují k záměře vzad a zbylé slupce se vztahují k záměře vpřed. Případná boční měření se zapisují níže do samostatného celku. V prvním sloupci je číslo bočně měřeného bodu. Ve druhém sloupci je číslo bodu, od kterého byla výška bočního bodu určena, a následuje výška bočně měřeného bodu, délka záměry a čtení na lati.
29
2.4.1.3 Struktura dat při uložení do formátu CSV – měřící program BFFB
(obrázek 7)
Na obrázku 7 můžete vidět, jakým způsobem se data ukládají v případě programu BFFB. Struktura je podobná jako u programu BF. Každý řádek odpovídá jedné sestavě. Prvních 6 sloupců odpovídá záměrám vzad, které jsou pro každou sestavu dvě a zbylé sloupce odpovídají záměrám vpřed, které jsou pro každou sestavu též dvě. V případě bočních měření je situace stejná jako na obrázku 6.
30
Uživatelská příručka
2.4.1.4 Struktura dat při uložení do formátu CSV – měřící program Measure Only
(obrázek 8)
Na obrázku 8 vidíte způsob struktury dat pro program Measure Only. Jedná se o nejjednodušší program právě z hlediska struktury dat. Každý řádek odpovídá jedné záměře neboli jednomu čtení na lati. 2.4.1.5 Struktura dat při uložení do formátu CSV – měřící program Measure and Record
(obrázek 9)
Obrázek 9 ukazuje strukturu dat pro program Measure and Record. Pro tento program byl použit zcela jiný způsob struktury dat v CSV souboru, neboť tento program je velmi specifický. Každý řádek odpovídá jedné záměře, přičemž je rozlišeno, zda se jedná o záměru vzad, vpřed nebo bočně. Mezi tyto řádky jsou však vloženy i řádky s výškami bodů (na obrázku vyznačeny zeleně). Výjimku tvoří bočně zaměřené body, u nichž jsou výška i údaje o záměře na stejném řádku (na obrázku vyznačeny oranžově).
31
Uživatelská příručka
2.4.2 PDF Uložení dat ve formátu PDF je možnost, která byla navržena jako obdoba nivelačního zápisníku. Uložit lze pouze měření provedená v měřících programech BF a BFFB. Uložení se provede obdobně jako u formátu CSV. Je potřeba vybrat požadované měření, zaškrtnout políčko PDF a stisknout tlačítko uložit v podobě diskety, což vyvolá dialog pro uložení souboru. Přípona PDF je již nastavena a není potřeba ji zapisovat. 2.4.2.1 Měřící Program BF
(Obrázek 10)
Obrázek 10 zobrazuje, jak vypadá výsledný dokument ve formátu PDF pro program BF.
32
Uživatelská příručka
2.4.2.2 Měřící program BFFB
(Obrázek 11)
Na obrázku 11 můžete vidět výsledný dokument ve formátu PDF pro program BFFB. Výsledek je velmi podobný formátu BF.
33
Uživatelská příručka
2.4.3 Vstupní soubor pro program gamagama-local Poslední možnost uložení dat se týká pouze dalšího zpracování dat. Při zaškrtnutí políčka Gama- XML a stisknutí tlačítka uložit v podobě ikony disketa, je vyvolán dialog, ve kterém je uživatel vyzván k vybrání konkrétních měření, která bude chtít zahrnout do zpracování pomocí programu gama-local. Jak už jsem se zmiňoval, tento program slouží k vyrovnávání geodetických sítí a bude mu věnována krátká samostatná kapitola. Tato možnost se zásadně liší od předchozích dvou, neboť výběr měření se provede až po stisknutí tlačítka uložit. Je naprosto nepodstatné, které měření je právě zobrazeno. Další podstatný rozdíl spočívá v tom, že lze vybrat libovolný počet měření z jakéhokoli z otevřených souborů, nikoli pouze jedno. Vybraná měření lze z výběru odstranit a poté je znovu přidat. Toto se provádí pomocí tlačítek přidat a odebrat. Výběr souboru se provádí v kombo boxu v levém dolním rohu okna. Měření se vybírají z levého seznamu a všechna vybraná měření naleznete v pravém seznamu. Po ukončení výběru měření stačí stisknout tlačítko uložit, což vede k vyvolání standardního dialogu pro uložení souboru. Tlačítko zrušit uzavře dialog.
(Obrázek 12)
Na obrázku 12 vidíte dialog pro výběr měření a jejich následné uložení do vstupního souboru pro program gama-local.
34
Uživatelská příručka
Jak vypadá soubor po jeho vytvoření, vidíte na obrázku 13.
(Obrázek 13)
Soubor je ve formátu XML. Pro názornost vidíte na obrázku 13 měření, která byla vybrána na obrázku 12. Do výsledného souboru je potřeba doplnit výšky počátečních a koncových bodů vybraných nivelačních pořadů (oranžový rámeček). To je dáno tím, že jsem se rozhodl na místo výšek nedoplňovat výšky obsažené v souboru GSI, neboť ve většině případů je výška počátečního bodu nastavena měřičem na nulu z praktických důvodů5 a výšky obsažené v souboru GSI tak většinou neodpovídají skutečnosti a musely by být stejně přepsány.
5
Když je výška počátečního bodu nastavena na nulu, pak výška koncového bodu je měřené převýšení, což usnadňuje kontrolu měření přímo v terénu, neboť na displeji přístroje je většinou zobrazena pouze výška bodu nikoliv převýšení.
35
Gama Local
3 Gama Local Projekt GNU Gama je software určený pro vyrovnání geodetických sítí. Jeho součástí je i program GNU gama-local, který je určen pro vyrovnání v lokální kartézské soustavě, odtud název gama-local [9]. Jako takový ho lze použít i pro vyrovnání výškových sítí. Jelikož se jedná o program bez grafického rozhraní, je potřeba jej spouštět z příkazové řádky. V současné době je ve vývoji nová verze softwaru GNU Gama, která již bude vybavena grafickým rozhraním. Program gama-local je možné použít pod operačním systémem Linux i pod operačním systémem Windows. Všechny potřebné informace o projektu naleznete na domovské stránce. Zde jsou také k dispozici instalační soubory pro Linux. Verzi pro Microsoft Windows je možné stáhnout z internetového portálu SourceForge. K dispozici je verze pro Windows 7, která je funkční i pod Windows 8.1. Domovská stránka projektu: http://www.gnu.org/software/gama/ Projekt GNU Gama na Sourceforge: https://sourceforge.net/projects/gnu-gama-builds/ V této kapitole budou vysvětleny pouze základy práce s programem gama-local se zaměřením na vyrovnání výškové sítě, čímž bych chtěl navázat na kapitolu 2.4.3. Bude zde popsán způsob, jakým se program používá, a dále zde bude stručně popsán vstupní soubor přizpůsobený pro vyrovnání výškové sítě. 3.1 Jak použít program gamagama-local Použití programu je založeno na jednoduchém principu. Vstupní data pro vyrovnání jsou programu předána v podobě vstupního souboru ve formátu XML. Výstupem je soubor obsahující výsledky vyrovnání. Formát výstupního souboru je definován pomocí parametrů při volání programu. Výsledkem může být soubor ve formátech TXT, XML, nebo HTML. Vstupní soubor musí mít určitou podobu. Detailně popsaná pravidla pro tvorbu vstupního souboru naleznete zde[10]. V této kapitole bude vstupní soubor popsán jen velmi stručně, neboť jednou z funkcí mnou vytvořeného programu je právě generování tohoto souboru.
36
Gama Local
ní soubor, stačí spustit příkazovou řádku, případně terminál a Pokud máme připraven vstupní vstoupit do adresáře, kde je program GNU Gama nainstalován. V případě Linuxu by se ve složce s názvem bin měl nacházet spustitelný soubor gama-local. V případě Windows je výsledkem instalace pouze uze spustitelný soubor s příponou - EXE. Pokud se nacházíme v adresáři s tímto souborem, stačí do příkazové řádky, řádky nebo terminálu napsat příkaz ve tvaru: gama-local local vstupní_soubor.xml [parametry] … Linux gama-local.exe local.exe vstupní_soubor.xml [parametry] … Windows cel třináct a jsou Parametry umožňují ovlivnit způsob výpočtu, nebo tvar výstupu. Je jich celkem popsány zde[10]. Rád bych zmínil pouze ty parametry, které eré považuji za nejpraktičtější a nejčastěji používané. Parametr
Význam
--language language
Určuje jazykk výstupního souboru. (např. cz, en)
--text text
Výstupem bude textový soubor (.txt).
Běžný příkaz by mohl vypadat třeba takto: gama-local vstup.xml --language cz --text vystup.txt … Linux game-local.exe vstup.xml --language cz --text vystup.txt … Windows Wind Výsledkem by v tomto případě byl textový soubor s názvem vystup psaný česky. če 3.2 Vstupní soubor pro program gamagama-Local Pravidla pro tvorbu souboru jsou poměrně jednoduchá a jsou jsou detailně popsána zde[10]. zde Mnou vytvořený program generuje soubor předem připravený pro vyrovnání výškové sítě, nicméně základní struktura souboru je vždy stejná a je k nahlédnutí na obrázku 14. 14
(Obrázek 14)
37
Gama Local
Na obrázku 14 vidíme prázdný vstupní soubor pro program gama-local. Tento soubor neobsahuje žádná vstupní data. Ukazuje však, jak vypadá kostra každého vstupního souboru. Základem je XML tag gama-local, uvnitř kterého se nachází tag network, který má dva volitelné parametry axes-xy a angels, které určují směr souřadnicových os a orientaci měřených směrů. Tyto parametry nejsou pro výškové sítě důležité. Tag network obsahuje dva párové a jeden nepárový tag. Tagy description a parameters jsou nepovinné. Tag points-observations je ale nezbytný. Tag description slouží k popsání souboru. Program jej nijak nezpracovává, může tedy obsahovat libovolný text. Tag parameters umožňuje zadat různé parametry ovlivňující výpočet jako např. apriorní směrodatnou odchylku nebo typ algoritmu, který má být použit pro vyrovnání. Do tagu points-observations jsou pak zapisovány všechny vstupní hodnoty pomocí dalších tagů, jak můžete vidět na obrázku 15.
(Obrázek 15)
Na obrázku 15 je zobrazen vstupní soubor pro program gama-local, pomocí kterého je možné vyrovnat výškovou síť, která je tvořena body 108, 109, 1, 2, 3, a 4.
38
Tvorba programu a platforma Qt
4 Tvorba programu a platforma Qt V poslední kapitole bych se chtěl nejprve krátce vyjádřit k tvorbě programu a následně bych zmínil, jak vyřešit některé problémy, se kterými jsem se setkal při práci s platformou Qt a programem Qt Creator, aby z této práce mohli případně čerpat další studenti. 4.1 Tvorba programu Program je napsán v jazyce C++. Tento jazyk jsem zvolil ze dvou důvodů. Je to jazyk, se kterým mám nejvíce zkušeností, a je to jazyk, pro který je navržena platforma Qt, kterou jsem pro svůj projekt chtěl použít. Platforma Qt je multiplatformní volně šiřitelná knihovna určená pro tvorbu programů s grafickým rozhraním tzv. GUI6 aplikací. Je možné ji použít snad na všech současných operačních systémech. Podporovány jsou operační systémy Linux, Windows, Android, iOS a Mac OS. Qt Creator je vývojové prostředí určené pro práci s knihovnou Qt. Existují dvě verze programu Qt Creator, komerční a neplacená. Možnosti použití jsou dány licencemi. Pro tvorbu vlastních aplikací je však neplacená verze více než dostačující. Platforma Qt a Qt Creator jsou součástí projektu Qt. Odkaz na stránky projektu Qt: http://qt-project.org/ Pro svůj projekt jsem použil Qt verzi 5.1.1 a projekt jsem vypracoval pod systémem Windows 8.1 ve vývojovém prostředí Qt Creator verze 2.8.1. 4.2 Na co si dát pozor při práci s platformou Qt V této části bych se rád věnoval dvěma tématům. • •
Kódování textových řetězců7. Sestavení projektu.
Tato část je určena těm, kteří mají základní znalosti o platformě Qt, o programu Qt Creator a o programování obecně. Nebudou zde detailně popisovány příslušné pojmy. Pouze zde bude stručně popsáno, jak se vyhnout problémům spojeným se dvěma výše zmíněnými body, které považuji za důležité.
6
GUI – Graphical User Interface – neboli grafické uživatelské rozhraní [11]
7
Od verze 5 používá Qt implicitně kódování UTF-8, čímž je problém prakticky vyřešen.
39
Tvorba programu a platforma Qt
4.2.1 Kódování textových řetězců Platforma Qt je multiplatformní, pracuje na různých operačních systémech. Zajistit, aby se textové řetězce zobrazily na různých počítačích s různými operačními systémy stejně, může být náročné. Obvyklá situace vypadá takto. Na svém počítači vytvoříme program, který v grafickém rozhraní obsahuje různé textové řetězce. Když je program spuštěn na našem počítači, všechny řetězce se zobrazují, jak mají. Když ale program spustíme na jiném počítači, objeví se místo nich úplně jiné, někdy neobvyklé znaky. To je způsobeno rozdílným kódováním znaků. Pokud se chceme těmto problémům vyhnout, tak je potřeba používat funkci tr(), kterou poskytuje platforma Qt. Jedná se o funkci primárně určenou pro označení přeložitelného textu. Používá se v případech, kdy chceme měnit lokalizaci programu např. z češtiny do angličtiny apod. [12]. Kromě toho, je ale schopna zajistit správné zobrazení našich řetězců. V praxi to znamená, že je potřeba každý řetězec, který bude vidět, „obalit“ funkcí tr(). Je ovšem nutné myslet na to, že funkce tr() pracuje pouze s řetězci typu QString a se znaky typu QChar. QString dobre = tr(“Červená“); - půjde přeložit a zobrazí se správně QString spatne = “Červená“; - nepůjde přeložit a nezobrazí se správně Funkce tr() zajistí, že se řetězce zobrazí správně. Pouze je potřeba projekt přenášet bez souboru, který končí příponou .pro.user a bez souborů, jejichž název začíná na moc. Tyto soubory obsahují specifické nastavení systému a nemohou být přenášeny mezi jednotlivými počítači. Mohou totiž působit problémy právě s kódováním, ale i s jinými úkony. Obecně lze říci, že pokud použijete funkci tr() pro všechny viditelné řetězce, neměli byste mít žádné problémy. 4.2.2 Sestavení projektu Co se týče dokumentace projektu Qt, k dispozici je tento dokument[13], který pojednává o sestavení projektu. Při sestavování projektu máme k dispozici dvě možnosti překladu a dvě možnosti sestavení. Co se týče překladu, tak program Qt Creator je primárně nastaven na takzvaný debug (ladící) mód. K dispozici je ale také release (zveřejnit) mód. Výběr mezi těmito módy se provádí v záložce projekty. Pokud projekt přeložíte, tak ve výsledném adresáři naleznete sadu souborů a také dva adresáře s názvy debug a release. Pokud projekt přeložíte v debug módu, bude adresář debug obsahovat všechny binární soubory a adresář release bude prázdný. To samé platí i obráceně. Platí, že pro ladění programu se používá debug mód a pro finální sestavení programu se používá release mód. Jejich názvy tomu samy napovídají.
40
Tvorba programu a platforma Qt
Při finálním sestavení projektu je tedy potřeba použít release mód. Stačí ho pouze nastavit a projekt přeložit. Výsledkem jsou binární soubory v adresáři release, spolu se spustitelným souborem. Poté je potřeba do adresáře release přidat všechny soubory s příponou DLL z knihovny Qt, které námi vytvořený projekt potřebuje. Abychom to mohli udělat, musíme nejprve zjistit, které soubory náš program vlastně potřebuje. K tomu nám poslouží například program Process Explorer [13]. Tento program je volně šiřitelný a dokáže určit, které DLL soubory daný program používá. Při práci s programem Process Explorer musí být náš program spuštěn.
(Obrázek 16)
Na obrázku 16 vidíme okno programu Process Explorer. V zeleném rámečku najdeme náš program, označíme ho kliknutím a ve spodní části programu se objeví všechny DLL soubory, které program používá. Nezajímají nás ovšem všechny, ale pouze ty, které se nacházejí v adresáři Qt8. Které to jsou, to poznáme z modrého rámečku, ve kterém jsou vidět cesty k jednotlivým DLL souborům. Všechny soubory, které zde najdeme, pak musíme
8
Může se stát, že program bude potřebovat i soubory z jiných adresářů. O které soubory se jedná, zjistíte při spuštění programu. Ten by měl hlásit, které DLL soubory mu chybí. Když znáte jejich název, můžete je najít pomocí programu Process Explorer.
41
Tvorba programu a platforma Qt
z příslušných adresářů zkopírovat do našeho adresáře release. Dále je nutné, aby námi nakopírované DLL soubory byly v adresáři release vloženy do adresářů se stejným jménem, jako měli adresáře, ve kterých jsme je našli. Pokud jsem tedy například soubor qwindows.dll našli v adresáři s názvem platforms, pak v adresáři release musíme vytvořit adresář platforms a soubor qwindows.dll umístit do něj. To platí pro soubory, které spadají do adresáře plugins. Soubory s adresáře bin stačí nakopírovat do adresáře release. Domnívám se, že všechny DLL soubory, které může váš program potřebovat, se nachází v adresáři bin nebo v adresáři plugins. Na mém počítači vypadá adresář Qt takto: 1.
C:\ 1.1. Qt 1.1.1. Qt5.1.1 1.1.1.1. 5.1.1 1.1.1.1.1. mingw48_32 1.1.1.1.1.1. bin 1.1.1.1.1.2. doc 1.1.1.1.1.3. examples 1.1.1.1.1.4. imports 1.1.1.1.1.5. include 1.1.1.1.1.6. lib 1.1.1.1.1.7. mkspecs 1.1.1.1.1.8. phrasebook 1.1.1.1.1.9. plugins 1.1.1.1.1.9.1. platforms 1.1.1.1.1.9.2. … 1.1.1.1.1.10. qml 1.1.1.1.1.11. translation
V případě, že DLL soubory z adresáře plugins nebudou v adresáři release umístěny do příslušných adresářů, nebude program fungovat správně, neboť nebude schopen tyto soubory najít[14]. Při tomto procesu nesmíme opomenout jednu podstatnou věc. Každý DLL soubor najdete v příslušném adresáři dvakrát, ale jeden z nich bude mít za svým názvem ještě písmeno d. To znamená, že se tento soubor váže k debug módu. Pokud jste program přeložili ve release módu, musíte vybrat soubory bez písmene d. Pokud jste jej přeložili v ladícím módu, musíte vybrat soubory s písmenem d. Takto zkompletovaný adresář release je ideální přenést na počítač, na kterém není nainstalována platforma Qt ani žádný kompilátor a zkusit program spustit. Pokud jste vše provedli podle instrukcí v této kapitole, program by měl být funkční. Výše zmíněný postup jsem sepsal na základě vlastních zkušeností a informací získaných z článku[14]. Existují i jiné způsoby, ale nebudou jednodušší než tento. Sestavení projektu v Qt vždy vyžaduje přidání příslušných DLL souborů ručně. Podotýkám, že mé zkušenosti vychází pouze ze systému Windows. Se sestavením pod operačním systémem Linux nemám žádné zkušenosti. Nicméně předpokládám, že postup bude stejný, neboť ani [14] se nezmiňuje o nějakém rozdílu.
42
Závěr: Cílem bakalářské práce bylo vytvořit software pro usnadnění zpracování nivelačních měření uložených ve formátu GSI. Software měl být schopen registrovaná data přehledně zobrazit a převést je do vhodnějšího datového formátu. Myslím si, že všechny stanovené cíle byly naplněny. Program přehledně a to formou barevně odlišené tabulky, zobrazuje všechna registrovaná data týkající se měření. Data je schopen uložit ve formátu CSV, se kterým je možno dále pracovat v programech jako jsou např. MSExcel nebo Matlab. K dispozici je i možnost uložit vybraná měření ve formátu PDF, ve kterém jsou data zobrazena formou přehledné tabulky, která napodobuje klasický nivelační zápisník. Navíc je možné použít program pro sestavení vstupního souboru pro program gama-local a vložit do něj výsledky vybraných nivelačních měření. Program je určen pro práci s formáty GSI-8 a GSI-16. Pro projekt byla zřízena stránka na portálu sourceforge.net, kde jej můžete najít pod názvem DNAGR9, nebo přímo na odkaze, který je uveden níže. Zde si také můžete stáhnout instalační (binární), ale i zdrojové soubory. K dispozici je verze pouze pro Windows, která byla bez problémů otestovaná na systémech Windows XP, 7, a 8. Odkaz na stránku projektu: http://sourceforge.net/projects/dnagr/ V záložce Files ve složce Binary Files naleznete soubor s názvem DNAGR.zip, který je možné si stáhnout. Po jeho rozbalení získáte adresář, uvnitř kterého se nachází spustitelný soubor a všechny potřebné DLL soubory. Program lze spustit bez nutnosti jakékoli instalace. Je důležité uchovat celý adresář ve stavu, v jakém byl stažen, jinak by program nemusel být funkční. Adresář můžete umístit kamkoliv do svého počítače. Program je volně šiřitelný a spadá pod licenci GNU GPL verze 310, což znamená, že může být používán, šířen a upravován. Celé znění licence je k dispozici zde [15]. Jedná se o alfa verzi a jako každý jiný program i tento může a pravděpodobně obsahuje chyby, které se zatím neprojevily a tudíž nemohly být opraveny. Zda tento program někdy bude pravidelně využíván, to si netroufám tvrdit. V určitých situacích se ale může stát užitečným nástrojem. Dokladem by snad mohlo být, že již během jeho tvorby jej využil jeden z mých spolužáků při své bakalářské práci. Domnívám se, že každý, kdo se někdy musel zabývat nivelačními měřeními ve formátu GSI, by jej také ocenil.
9
DNA podle nivelačních přístrojů řady DNA, G jako GSI a R jako reader neboli čtenář. GNU je zkratka pro GNU´s Not Unix neboli GNU není Unix. GNU je volně šiřitelný operační systém velmi podobný Unixu. GPL – General Public Licence 10
43
Seznam citované literatury a ostatních zdrojů 1. 2. 3. 4.
LEICA GEOSYSTEMS. Sprinter 150/150M/250M User Manual. Verze 1.0. LEICA GEOSYSTEMS. Leica DNA03/DNA10 User Manual. verze 2.0. LEICA GEOSYSTEMS. GSI Online for Leica TPS and DNA. 2008. SOUČEK, Petr. Analýza výstupních formátů digitálních nivelačních přístrojů. Praha, 2001. Diplomová práce. České vysoké učení technické v Praze, Fakulta stavební. Vedoucí práce Prof. Ing. Aleš Čepek, CSc. 5. SOUČEK, Petr. Analýza a zpracování nivelačních měření. Praha, 2008. Disertační práce. České vysoké učení technické v Praze, Fakulta stavební. Vedoucí práce Prof. Ing. Aleš Čepek, CSc. 6. ZEMĚMĚŘICKÝ ÚŘAD. Metodický návod pro práce v základním výškovém bodovém poli. Praha, 2003. 7. TUX, Kyo. Ginux Icons by Kyo-Tux. 2011. Dostupné z: http://www.iconarchive.com/show/ginux-icons-by-kyo-tux.html 8. TATICE. Cristal Intense Icons by Tatice. 2011. Dostupné z: http://www.iconarchive.com/show/cristal-intense-icons-by-tatice.html 9. GNU Gama. GeoWikiCZ [online]. 2014, 24. 3. 2014 [cit. 2014-04-07]. Dostupné z: http://gama.fsv.cvut.cz/gwiki/GNU_Gama 10. ČEPEK, Aleš, GNU Gama 1.15. GNU Gama [online]. 2014 [cit. 2014-04-07]. Dostupné z: http://www.gnu.org/software/gama/manual/gama.html 11. Grafické uživatelské rozhraní. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001-2014 [cit. 2014-04-09]. Dostupné z: http://cs.wikipedia.org/wiki/Grafick%C3%A9_u%C5%BEivatelsk%C3%A9_rozhran%C3%A D 12. Writting Source Code for Translation. Qt Project [online]. © 2014 [cit. 2014-04-09]. Dostupné z: http://qt-project.org/doc/qt-4.8/i18n-source-translation.html 13. Process Explorer. Technet Microsoft [online]. 2014 [cit. 2014-04-09]. Dostupné z: http://technet.microsoft.com/cs-cz/sysinternals/bb896653.aspx 14. Deploying an Application. Qt Project [online]. © 2014 [cit. 2014-04-09]. Dostupné z: http://qt-project.org/doc/qt-4.8/deployment-windows.html 15. GNU General Public Licence. FREE SOFTWARE FOUNDATION. GNU Operating System [online]. © 2007, 2014 [cit. 2014-04-18]. Dostupné z: http://www.gnu.org/licenses/gpl.html
44