Úvod

     Velmi častou úlohou v geodézii je transformace souřadnic (pomocí transformace lze řešit základní geodetické souřadnicové úlohy, jako jsou protínání, polygon, ortogonální metoda, polární metoda - volné stanovisko, konstrukční oměrné s vyrovnáním a mnoho dalších příkladů). Není tedy divu, že všechny geodetické programy obsahují funkci pro výpočet transformace a umožňují zadávat nadbytečný počet pevných bodů. Ve většině programů také nalezneme všechny tři nejužívanější varianty transformace, tedy podobnostní, shodnostní a afinní.
     Různé podoby transformace jsou hojně užívány i ve fotogrammetrii, ať v letecké nebo pozemní. Na fotogrammetrické vyhodnocování jsou však vyšší nároky, které běžné geodetické programy nepokrývají, a proto existují různé programy - buď jako nadstavby programovacích systémů (např. Microstation) nebo jako samostatný produkt (u nás nejznámější Topol a Atlas).
     Pro geodetickou praxi má však asi největší význam Helmertova transformace ("podobnostní" transformace řešená metodou nejmenších čtverců, avšak identické body si ponechávají své původní souřadnice). Porovnáme tedy Helmertovu transformaci jako příklad transformace v rovině (E2, 2D) v daných programech.
     V dnešní době vzrůstá význam i prostorové transformace (E3, 3D), jejíž užití nebylo v minulosti tak časté, zejména v souvislosti s rozmachem využití metod globálního polohového systému (GPS) v geodézii. Také díky rozvoji výpočetních technologií je tato vcelku obtížná matematická úloha snadno řešitelná. Podíváme se tedy i na možnosti programů v tomto směru, včetně práce s transformačními klíči.

Programy nabízejí následující druhy transformace:

Transformace v rovině (2D)

Zadání číselného příkladu

     Jako příklad byla vybrána Helmertova transformace (převzato z literatury [ ], strana 19) - tab. 14. Úkolem je vypočítat souřadnice bodů 501 až 504 v S-JTSK. Tento učebnicový příklad bude využit i pro ostatní typy transformace, aby mohly být porovnány výsledky jednotlivých programů. Přesnost výpočtu byla zvolena na milimetry.

  S-JTSK místní SS
č.b. Y [m] X [m] Y [m] X [m]
8 760133,79 1033284,47 8577,78 51208,49
12 762162,29 1032943,59 10625,60 51013,68
13 762589,39 1031896,61 11126,85 50000,00
24 759684,73 1031422,23 8263,43 49318,70
43 761893,05 1031047,25 10493,03 49102,66
501     9204,72 49217,90
502     10000,00 50000,00
503     8922,25 50054,64
504     9641,46 50880,29

Tab. 14 - zadání Helmertovy transformace

Výsledky jednotlivých programů

     V následujících tabulkách č. 15 (podobnostní / Helmertova transformace - červenou barvou jsou zvýrazněny výsledky Helmertovy transformace), č. 16 (transformační klíč Helmertovy transformace), č. 17 (shodnostní transformace), č. 18 (afinní transformace) a č. 19 (transformační klíč afinní transformace) je porovnání výsledků výpočtu ukázkového příkladu.

  GEUSw GROMA KOKEŠ
č.b. Y [m] X [m] Y [m] X [m] Y [m] X [m]
8 - - 760133,740 1033284,543 760133,740 1033284,543
12 - - 762162,161 1032943,550 762162,161 1032943,550
13 - - 762589,461 1031896,656 762589,461 1031896,656
24 - - 759684,845 1031422,295 759684,845 1031422,295
43 - - 761893,042 1031047,106 761893,042 1031047,106
501 760616,412 1031254,331 760616,412 1031254,331 760616,412 1031254,331
502 761465,606 1031977,381 761465,606 1031977,381 761465,606 1031977,381
503 760394,635 1032109,083 760394,635 1032109,083 760394,635 1032109,083
504 761171,081 1032881,016 761171,081 1032881,016 761171,081 1032881,016

Tab. 15 - výsledky podobnostní / Helmertovy transformace

Klíč GEUSw GROMA KOKEŠ
tx 982826,6513 1032118,830 982826,6513
ty 747910,2961 761292,650 747910,2961
l1 0,9973421403 0,9973421401 0,9973421401
l2 0,0716377769 0,0716377769 0,0716377769

Tab. 16 - transformační klíč Helmertovy transformace

     Pokud se týká přímo výsledků Helmertovy transformace, tak zde nastala naprostá shoda všech tří programů. Důvod nalezneme v tabulce č. 16 s transformačním klíčem - shodují se jak transformační posuny tx, ty(v programu GROMA je výpočet řešen pomocí redukce souřadnic k těžišti identických bodů, což nemá žádný vliv na výsledné souřadnice), tak transformační koeficienty l1 a l2, obsahující rotaci a délkový modul - pouze nepatrná odlišnost nastala u transformačního koeficientu l1 z programu GEUSw, avšak až na zaokrouhleném 11. platném místě (odpovídá desetinám milimetru X-ové souřadnice systému JTSK).
     Program GEUSw nabízí přímo Helmertovu transformaci, proto v tabulce nejsou uvedeny vypočtené souřadnice identických bodů (tak jako u zbylých dvou programů, kde byla použita podobnostní transformace). Přesto lze i v programu GEUSw "přetransformovat" identické body u Helmertovy transformace. Volba je tedy na uživateli a jeho vědomostech, podobně jako s výběrem vypočtených bodů z podobnostní transformace v programech GROMA a KOKEŠ, tedy tak, aby u identických bodů byly zachovány původní souřadnice, jak se sluší a patří u Helmertovy transformace.



  GEUSw GROMA KOKEŠ
č.b. Y [m] X [m] Y [m] X [m] Y [m] X [m]
8 760133,638 1033284,646 760133,638 1033284,646 760133,638 1033284,646
12 762162,238 1032943,623 762162,238 1032943,623 762162,238 1032943,623
13 762589,576 1031896,636 762589,576 1031896,636 762589,576 1031896,636
24 759684,703 1031422,234 759684,703 1031422,234 759684,703 1031422,234
43 761893,095 1031047,011 761893,095 1031047,011 761893,095 1031047,011
501 760616,352 1031254,255 760616,352 1031254,255 760616,352 1031254,255
502 761465,622 1031977,368 761465,622 1031977,368 761465,622 1031977,368
503 760394,556 1032109,082 760394,556 1032109,082 760394,556 1032109,082
504 761171,071 1032881,083 761171,071 1032881,083 761171,071 1032881,083

Tab. 17 - výsledky shodnostní transformace

     Všechny tři programy dávají naprosto shodné výsledky shodnostní transformace. O nastavení výpočtu shodnostní transformace v programu GEUSw podrobněji v odstavci "Uživatelské prostředí".



  GEUSw GROMA KOKEŠ
č.b. Y [m] X [m] Y [m] X [m] Y [m] X [m]
8 760133,791 1033284,460 760133,717 1033284,499 760133,791 1033284,460
12 762162,244 1032943,550 762162,183 1032943,514 762162,244 1032943,550
13 762589,481 1031896,709 762589,490 1031896,661 762589,481 1031896,709
24 759684,752 1031422,264 759684,807 1031422,328 759684,752 1031422,264
43 761892,983 1031047,166 761893,053 1031047,148 761892,983 1031047,166
501 760616,332 1031254,339 760616,395 1031254,369 760616,332 1031254,339
502 761465,601 1031977,392 761465,610 1031977,386 761465,601 1031977,392
503 760394,610 1032109,052 760394,615 1032109,086 760394,610 1032109,052
504 761171,132 1032880,984 761171,081 1032880,985 761171,132 1032880,984

Tab. 18 - výsledky afinní transformace

Klíč GEUSw GROMA KOKEŠ
tx 982827,972 1032118,830 982827,972
ty 747906,430 761292,650 747906,430
a 0,9973084238 0,9973011979 0,9973084236
b -0,0716001490 -0,0716375505 -0,0716001490
c 0,0717105919 0,0716420972 0,0717105919
d 0,9973641139 0,9973644949 0,9973641137

Tab. 19 - transformační klíč afinní transformace

     Výsledky výpočtu i transformační klíče programů GROMA na jedné a GEUSw a KOKEŠ na straně druhé se liší. Odlišnost výsledků programu GROMA může být způsobena redukcí souřadnic k těžišti identických bodů, správné hodnoty dávájí programy GEUSw a KOKEŠ, jak dokazuje výpočet podle upravených transformačních rovnic, vyjádřeno maticově X = A . h (počet řádků matice X a A je 2.n, n je počet bodů identických bodů):

Upravená afinní transformace

Vzhledem k nadbytečnému počtu identických bodů aplikujeme metodu vyrovnání MNČ. Vektor h obsahující transformační koeficienty vypočteme h = (AT.A)-1.AT.X. Naplnění matic a správný výsledný klíč (a tudíž pak správné přetransformované body, shodné s výsledky programu KOKEŠ):

Vektor X:  Matice A:  Vektor h:
1033284,470
 760133,790 
1032943,590
 762162,290 
1031896,610
 762589,390 
1031422,230
 759684,730 
1031047,250
 761893,050 
1 0 51208,49 -8577,78 0 0
0 1 0 0 51208,49 8577,78
1 0 51013,68 -10625,60 0 0
0 1 0 0 51013,68 10625,60
1 0 50000,00 -11126,85 0 0
0 1 0 0 50000,00 11126,85
1 0 49318,70 -8263,43 0 0
0 1 0 0 49318,70 8263,43
1 0 49102,66 -10493,03 0 0
0 1 0 0 49102,66 10493,03
TX  982827,9721
TY  747906,4302
a  0,9973084236
b  0,0716001490
c  0,0717105919
d  0,9973641137

Ukázky souborů obsahující transformační klíče

     Všechny programy umožňují uložení / načtení transformačního klíče (podrobněji v části "Uživatelské prostředí"). Uložený transformační klíč může posloužit např. pro transformaci dalších bodů nebo pro hodnocení transformační koeficientů. Zde jsou ukázky souborů s transformačními klíči tak, jak byly vypočteny a uloženy v ukázkovém příkladu podobnostní transformace (viz výše):

GEUSw - soubor *.trk, obsahuje transformační posuny a prvky rotační matice:

[Tr_klic]
PosunY=747910.296051973
PosunX=982826.651338314
A11=0.997342140264756
A12=0.0716377768738842
A21=-0.0716377768738842
A22=0.997342140264756


GROMA - soubor *.key, obsahuje obecné informace (sekce [Header]), sekce [UserType] je vyhrazena pro transformaci, kde uživatel má možnost zadat transformační vztahy (i 3D transformace), v sekci [XformKey2D] jsou informace o natočení, identických bodech (težišti soustavy) vstupní a cílové soustavy a o délkových modulech, sekce [XformMatrix2D] obsahuje parametry rotační matice a sekci [IdenticalPoints] je přehled identických bodů:

[Header]
Application=Groma
Module=Xformer
File=2D Xform Info
Type=Isotropic
FileVersion=1
Description=
Date=2003-09-17
Time= 9:03

[UserType]
FormulaX=
FormulaY=
FormulaZ=

[XformKey2D]
Rotation=-0.071705538432
IdenticalPointSrc=X:50128.706000,Y:9817.338000
IdenticalPointDest=X:1032118.830000,Y:761292.650000
ScaleFactorX=0.999911653802
ScaleFactorY=0.999911653802

[XformMatrix2D]
RotMatrixElement11=0.997342140057
RotMatrixElement12=-0.071637776870
RotMatrixElement21=0.071637776870
RotMatrixElement22=0.997342140057
IdenticalPointSrc=X:50128.706000,Y:9817.338000
IdenticalPointDest=X:1032118.830000,Y:761292.650000

[IdenticalPoints]
NUM=8,X1=1033284.470000,Y1=760133.790000,X2=51208.490000,Y2=8577.780000
NUM=12,X1=1032943.590000,Y1=762162.290000,X2=51013.680000,Y2=10625.600000
NUM=13,X1=1031896.610000,Y1=762589.390000,X2=50000.000000,Y2=11126.850000
NUM=24,X1=1031422.230000,Y1=759684.730000,X2=49318.700000,Y2=8263.430000
NUM=43,X1=1031047.250000,Y1=761893.050000,X2=49102.660000,Y2=10493.030000


KOKEŠ - soubor *.klc, obsahuje prvky transformační matice a transformační posuny:

0.997342140057430 -0.071637776869676 982826.651348748590000
0.071637776869676 0.997342140057430 747910.296054219240000
0.000000000000000 0.000000000000000

Uživatelské prostředí

GEUSw - program nabízí Helmertovu transformaci (podobnostní) a afinní transformaci. Pokud je pro výpočet potřebná shodnostní transformace, musíme změnit nastavení v menu "Nastav / Nastavení prostředí", záložka "Úlohy" a v pravém horní části zaškrtnout položku "Blokovat změnu měřítka - shodnostní transformace". Zde se také provádí výběr typu transformace (Helmertova nebo afinní) - viz obr. 31.



Nastavení transformace - program GEUS

Obr. 31- Nastavení transformace - program GEUSw

     V programu GEUSw máme dvě možnosti, jak odlišit identické body ve výchozí a v cílové soustavě (všechny body jsou v jediném seznamu souřadnic) - buď přiřadit bodům jiná čísla (většinou podobná - jiné předčíslí apod.) nebo lze číslu bodu přiřadit znaménko - (minus). Samotný výpočet transformace se spouští pomocí ikonky Ikonka transformace v liště výpočetních funkcí nebo přes roletové menu "Výpočty / Transformace", výpočet pak probíhá v samostatném okně - viz obr. 32. Nejprve se zadají identické body, a to v pořadí "z" (odpovídá výchozí soustavě) a poté "do" (odpovídá cílové soustavě).


Výpočet transformace - program GEUS

Obr. 32 - Výpočet transformace - program GEUSw

     Po skončení zadávání identických bodů (místo čísla bodu se vloží 0), se objeví tabulka s vypočteným transformačním klíčem. Je-li třeba vyřadit (nebo poté opět přidat) některý z identických bodů, je třeba kliknout na příslušnou řádku (označí se modrou barvou) a klávesami - (minus) a + na numerické klávesnici bod z výpočtu vypustit. Po zvolení tlačítka Výpočet změn" se hodnoty přepočítají a pokud jsou v již vyhovují, stikneme tlačítko "Pokračovat" - viz obr. 33.


Výpočet transformačního klíče - program GEUS

Obr. 33 - Výpočet transformačního klíče - program GEUSw

     Další možnost, jak zadat koeficienty transformačního klíče, nabízí program v roletovém menu "Další výpočty / Práce s transformačním klíčem". Po zvolení položky se otevře okno, které obsahuje právě aktivní (= poslední vypočtený) transformační klíč, případně lze zadat zcela jiný transformační klíč. Zde má uživatel možnost transformační klíč načítat a ukládat (viz obr. 33) - program ale neumožňuje, tak jako ostatní dva programy, uložení identických bodů.
     Pokud je takto zadán transformační klíč, pak pro výpočet transformovaných bodů zvolíme v menu "Další výpočty" položku "Transformace dle tr. klíče". Výpočet pak probíhá shodně s předchozím výpočtem transformace (obr. 31), ovšem zcela logicky bez zadání identických bodů.


Práce s transformačním klíčem - program GEUSw

Obr. 33 - Práce s transformačním klíčem - program GEUSw

GROMA - funkci spustíme z menu "Výpočty / Transformace souřadnic ..." nebo pomocí ikonky Ikonka transformace v liště výpočetních funkcí. Po spuštění se objeví okno (viz obr. 34), ve kterém probíhá veškeré nastavení a výpočet.

Transformace v GROMĚ

Obr. 34 - Výpočet transformace - program GROMA

     Program umožňuje výpočet shodnostní, podobnostní a afinní transformace. Zvolíme-li typ transformace - uživatelská, pak není třeba zadávat identické body, ale v samostatném okně lze přímo zadat uživateli známé transformační vztahy, a to pro všechny tři souřadnice X, Y i Z (podrobněji v kapitole Transformace v prostoru). Program GROMA tedy jako jediný umožňuje v základní verzi výpočet prostorové transformace, ovšem uživatel musí znát transformační rovnice pro jednotlivé souřadnice.
     Pro úspěšný výpočet je třeba dále zadat identické body ve výchozí i cílové soustavě souřadnic - buď "přetáhnutím" myší ze seznamu souřadnic nebo zadáním čísla bodu z klávesnice. Každý zadaný identický bod je nutno "Přidat" do výpočtu transformačního klíče. Program průběžně přepočítává transformační klíč a zobrazuje odchylky na identických bodech. Pokud je překročena odchylka na identickém bodě, lze jej vypustit z výpočtu pomocí zaškrtávacích čtverečků před číslem bodu, případně tlačítkem "Ubrat" odstranit z výpočtu. Tlačítko "Klíč" zobrazí vypočtený transformační klíč - viz obr. 35. Samozřejmostí je možnost uložení / načtení klíče - viz výše ukázka souboru *. key s uloženým transformačním klíčem.

Klíč podobnostní transformace - program GROMA

Obr. 35 - Klíč podobnostní transformace - program GROMA

     Nejvýhodnější pro výpočet transformace je založení dvou seznamů souřadnic - první s body ve vstupní soustavě (většinou místní systém včetně bodů určených k transformaci), druhý s body v cílové soustavě (většinou S-JTSK, pouze identické body). Do polí "Vstup" a "Výstup" doplníme názvy těchto souborů. Pokud takto definujeme vstupní a výstupní soubory na začátku výpočtu (se stejnými čísly identických bodů), pak můžeme využít tlačítko "Vyhledat identické body" a program sám vypočte transformační klíč. Po stisknutí tlačítka "Výpočet" program přepočítá body ze vstupního souboru do souboru výstupního - takto lze transformovat celé seznamy souřadnic nebo jenom označené body. Zde je na místě ocenit elegantnost řešení výpočtu, kdy vlastně na celý výpočet stačí dvakrát myší "přetáhnout" názvy souborů, poté dvakrát kliknout a úloha je vyřešená. Těžko najít lepší zpracování výpočtu pro uživatele.


KOKEŠ - program umožňuje provádět shodnostní, podobnostní, afinní a projektivní transformaci. Vlastní funkce transformace je rozdělena na dvě části:

Výpočet transformačního klíče - program KOKEŠ

Obr. 36 - Výpočet transformačního klíče - program KOKEŠ

Transformace dat - program KOKEŠ

Obr. 37 - Transformace dat - program KOKEŠ

     Výpočet transformačního klíče probíhá v samostatném okně, jehož obsah můžeme měnit pomocí tlačítek "Velký" a "Malý". To má vliv na podrobnost údajů v okně (souřadnice a odchylky na identických bodech atd.). V liště v horní části okna provedeme výběr typu transformace. Zadávat identické body do příslušných políček tabulky lze buď vepsáním čísla bodu (je-li otevřeno více seznamů souřadnic, nabídne program výběr seznamu) nebo díky úzkému propojení s grafikou sejmutím bodu myší z grafického okna. Vyřazovat nebo přidávat identické body do výpočtu transformačního klíče můžeme pomocí zaškrtávání "čtverečků" v pravé části okna. Transformační rovnice ve spodní části okna se průběžně přepočítávají.
     Pomocí tlačítka "Uložit" lze uchovat pro budoucí práci (tlačítko "Načíst") nejen transformační klíč (soubor s příponou *.klc), ale i zadané identické body (v textovém formátu s příponou *.txt).
     Po potvrzení všech zadaných dat tlačítkem "OK" program otevře okno Transformace dat. V horní části je zobrazen typ transformace a aktivní (poslední vypočtený nebo načtený) transformační klíč. Ve spodní části okna program nabízí několik možností, jaká data se budou transformovat, a také způsob výběru těchto dat. Okno také obsahuje pro uživatele poněkud strašidelné upozornění "!! FUNKCE PROVEDE NEVRATNÉ ZMĚNY V DATECH !!". Podstata tohoto upozornění spočívá v tom, že souřadnice transformovaného bodu se automaticky uloží v cílové soustavě a ztratí tak své původní souřadnice ve výchozí soustavě. Dle mého názoru by zde bylo vhodné (tak jako v jiných případech) nabídnout dotaz, zda bodu ponechat původní číslo bodu (a tím jej přepsat) nebo bod uložit pod novým číslem. Zvlášť nepříjemná je tato skutečnost v případě, pokud dojde k chybě (např. chybný výběr identického bodu v Helemrtově transformaci) a (nebo) uživatel potřebuje bod transformovat opakovaně (a poté nemá jeho původní souřadnice v místní soustavě).


Transformace v prostoru (3D)

     Na místě, kde by tato kapitola měla začínat, prakticky také končí. Výpočetní funkce základních verzí programů oproti očekávání nenabízejí takřka vůbec žádné možnosti, jak si poradit s transformací v prostoru. Pokud body mají přiřazeny i souřadnici Z (výšku), programy při zadávání identických bodů tuto souřadnici neberou vůbec v potaz a akceptují pouze rovinné souřadnice Y a X. Jediným světélkem na konci tunelu je program GROMA, který nabízí v okně "Transformace souřadnic" (viz obr. 17) možnost zvolit uživatelskou transformaci, kde je možno doplnit uživateli známé transformační rovnice pro všechny tři souřadnice - viz obr. 38. Pokud je takto definován transformační klíč, program je schopen vypočítat transformované body dle těchto rovnic včetně z-ové souřadnice. Program však neumožňuje nijak tento transformační klíč vypočítat a je tedy na uživateli, jak ho získat.

Uživatelská transformace - program GROMA

Obr. 38 - Uživatelská transformace - program GROMA

     Jak je vidět, zde se otvírá vcelku velký prostor na vylepšení všech tří programů. Podle mého názoru takovéto komplexně zpracované programy s mnoha užitečnými funkcemi by neměly opomenout tuto úlohu, jejíž význam jistě stoupne ve spojení s technologií GPS.