Projekt XYZTrans
(homepage)
V rámci
výzkumného
záměru VZ 01 CEZ MSM VZ 6840770001 „Spolehlivost,
optimalizace a trvanlivost stavebních materiálů a
konstrukcí“, dílčí
část
„Geodetické monitorování k
zajištění spolehlivosti staveb“
byl vyvinut
program na transformaci prostorových
kartézských souřadnic.
Umožňuje výpočet
transformačního
klíče pro nejpoužívanější
typy
prostorové transformace - obecnou afinní,
podobnostní a shodnostní, a následnou
transformaci
dalších bodů. Vstupem do programu je
textový
soubor, který obsahuje souřadnice jak identických
bodů,
tak dále transformovaných. Po načtení
souřadnic
lze identické body z výpočtu jednotlivě
vylučovat,
program vždy počítá pro každý
identický
bod, jak poklesne směrodatná odchylka jednotková
při jeho
vyloučení.
Program pracuje v operačním
systému
Microsoft Windows XP a vyšším. Autorem
programu je
Martin Štroner.
Program lze získat zdarma -
stažení zde: XYZTransV2.zip.
Je vhodné si před použitím přečíst
poznámky k instalaci a
používání.
Poslední verzí je aktuálně XYZTransV21.zip,
která umožňuje načítání souřadnic ze dvou
souborů s inteligentním vyhledáním
identických bodů (17.3.2011).
Popis programu:
Obsah
Hlavní
okno
Vstupní soubor - varianta 1
Vstupní soubor - varianta 2
Postup výpočtu
Výstupní protokol
Literatura
Poznámky k instalaci
Poznámky k
používání
Hlavní okno
Po spuštění
programu se zobrazí
hlavní okno, které tvoří
rozcestník
možností. Na začátek práce je
nutné do
programu načíst souřadnice z textového souboru,
minimální počet jsou čtyři body pro obecnou
afinní
transformaci, tři body pro podobnostní a
shodnostní
transformaci. V grafickém rozhraní lze
vybírat
body pro výpočet transformačního
klíče, typ
transformace, spouštět výpočet a
prohlížet
protokol.
Jednotlivá tlačítka:
Soubor/Otevřít: Spouští standardní MS Windows dialog
pro
otevření textového souboru se souřadnicemi (popsáno dále - Vstupní soubor - varianta 1).
Soubor/Otevřít Dva:
Spouští dialog pro načtení dat ze dvou souborů
(popsáno dále - Vstupní soubor - varianta 2).
Přepočítat
klíč: Podle aktuálního nastavení
vypočítá
transformační klíč a výsledky
vypíše
do protokolu.
Žlutý list:
Zobrazení protokolu (viz dále).
Transformovat:
Provede transformaci podrobných bodů podle
posledního transformačního klíče.
Podezřelý bod
(malé tlačítko u čísla bodu):
Z výpočtu transformačního klíče
vyloučí podezřelý bod.
Vstupní
soubor - varianta 1
Vstupní soubor se
skládá ze dvou
sekcí, na začátku je počet identických
bodů,
následují vždy číslo bodu a oboje
souřadnice
(první jsou souřadnice soustavy, do které
transformujeme). Následuje sekce transformovaných
bodů,
tj. počet bodů a pak samotné body vždy v pořadí
číslo bodu, X, Y, Z.
Příklad vstupního souboru:
-----------------------------------------------
3
1
104.17594
157.20398 187.77
5.6967372
2.7438901 4.545085
2
108.04252
152.12023 181.552
8.7936045
5.520147 2.3742621
3
80.666513
155.8027 170.59013
-0.0815595
15.828698 10.095041
2
10
104.17594
157.20398 187.77
11
5.6967372
2.7438901
4.545085
-----------------------------------------------
Vstupní
soubor - varianta 2
Ve verzi 2.1 lze načítat souřanice ze dvou
souborů pomocí volby Soubor/Otevřít Dva, kdy se otevře
dialog. Zde první soubor (souřadnice vstupní, v soustavě,
ze které se transformuje) obsahuje jak identické body,
tak podrobné. Druhý soubor obsahuje pouze
identické body v cílové soustavě (soustava
výstupní). Oba soubory jsou bez dalších
značek, tj. pouze číslo bodu a souřadnice. Lze přepínat
mezi pořadím YXZ a XYZ.
Dialog výběru s vobou souborů a pořadí souřadnic:
Příklad prvního vstupu:
-----------------------------------------------
1 11,1163 -19,5123 0,2967
2 1,9269 2,5291 0,201
3 -3,7889 16,3717 0,275
5 -7,9485 -1,5883 0,3836
6 -1,2233 -18,1563 0,3185
11 11,1163 -19,5123 0,2967
12 1,9269 2,5291 0,201
13 -3,7889 16,3717 0,275
15 -7,9485 -1,5883 0,3836
16 -1,2233 -18,1563 0,3185
-----------------------------------------------
Příklad druhého vstupu:
-----------------------------------------------
1 -21,48078 -0,14214 -0,08228
2 1,6622 -6,02846 -0,1777
3 16,164775 -9,7673 -0,104875
5 4,3002 4,34348 -0,02212
6 -12,98772 8,91248 -0,0874
-----------------------------------------------
Za identické body se považují takové, které
mají v obou souborech totožné číslo. Zbylé
body z prvního souboru jsou považovány za
podrobné, zbylé z druhého souboru nejsou využity.
Oproti původnímu vstupu mohou "čísla bodů" obsahovat obecný alfanumerický řetězec.
Postup
výpočtu
Výpočet je
prováděn metodou
nejmenších čtverců vzhledem k nelinearitě
řešeného problému iteračním
postupem ([1]).
Vzhledem k možné nestabilitě je inverze matice
normálních rovnic je
počítána
pseudoinverzí založenou na SVD (Singular Value
Decomposition).
Přibližné hodnoty pro iteraci jsou při čtyřech a
více
bodech počítány z obecné
afinní
transformace, jak je popsáno v [2]
a v [3]. V případě
tří identických bodů je použita metoda Bertholda
K. P. Horna popsaná podrobně v [4].
Výstupní
protokol
Obsahuje výsledky
výpočtu
transformačního klíče, případně
přetransformované body. Prorokol lze v textovém
formátu uložit stuskem tlačítka s disketou.
Literatura
[1]
Böhm, J. - Radouch, V. -
Hampacher, M.: Teorie chyb a vyrovnávací počet.
Geodetický a kartografický podnik Praha, 2.
vydání, Praha, 1990. ISBN 80-7011-056-2.
[2]
Pavelka, K. - Štroner, M.:
Lineární prostorová
transformace. Geodetický a kartografický
obzor.
2001, roč. 47, č. 3, s. 233-235. ISSN 0016-7096.
[3]
Štroner, M. -
Pospíšil, J.: Terestrické
skenovací
systémy. 1. vyd. Praha: Česká technika -
nakladatelství ČVUT, 2008. 187 s. ISBN 978-80-01-04141-3.
[4]
Horn, B. K. P.: Closed-form
solution of absolute orientation using unit quaternions. Journal of the
Optical Society of America A, Vol. 4, page 629, April 1987.
Poznámky
k instalaci
1. Program není třeba instalovat, postačí
rozbalit z
archivu "XYZTransV2.zip", případně "XYZTransV21.zip" do libovolného adresáře
soubory.
2. V archivu je přiložen vzorový soubor "vstup.txt", podle
kterého je možné vytvářet soubor
souřadnic.
Číslo bodu musí být
reálné
číslo, nikoli textový řetězec.
3. V archivu "XYZTransV21.zip" jsou dva textové soubory obsahující vzorové soubory.
Poznámky
k používání
1. Vzhledem k charakteru výpočtu (výpočet je
prováděn iteračně), nelze nikdy zaručit
zdárné
ukončení výpočtu, zejména pro
"nesmyslné" a
neodpovídající si identické
body.