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:
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 |
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 |
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 |
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 |
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 |
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 |
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ů):
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 |
|
TX 982827,9721 TY 747906,4302 a 0,9973084236 b 0,0716001490 c 0,0717105919 d 0,9973641137 |
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
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.
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 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ě).
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.
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ů.
GROMA - funkci spustíme z menu "Výpočty / Transformace souřadnic ..." nebo pomocí ikonky 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.
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.
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 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ě).
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.
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.