Affiininen muunnos

Editointi, laskenta, asetukset ja muut perustoiminnot
Avatar
mikko
Ylläpitäjä
Viestit: 297
Liittynyt: 10 Loka 2008, 20:56
Organisaatio: 3D-system
Nimi: Mikko Syrjä
Paikkakunta: Vantaa

Affiininen muunnos

Viesti Kirjoittaja mikko » 07 Touko 2009, 13:46

Affiinisista muunnoksista kysytään säännöllisesti eli laitetaanpa tänne hieman ohjeita sen käytöstä. 3D-Win on osannut tehdä affiinisen muunnoksen jo vuosikausia, mutta sen käyttö on ollut hieman työlästä, koska muunnostiedosto on pitänyt luoda käsin. Versiosta 5.4 eteenpäin homma sujuu helpommin, koska nyt voidaan parametrit syöttää suoraan koordinaatistomuunnoksessa.

Maanmittauslaitoksen sivuilta löytyy affiinisia ja helmert-muunnoksia eri kuntien koordinaatistoihin. Tätä kirjoitettaessa keväällä 2009 ne löytyvät klikkaamalla pääsivulta (http://www.maanmittauslaitos.fi/) vasemmalta linkkiä Paikkatietojen yhteiskäyttö, sieltä yläreunasta Paikkatietopalvelut, sitten vasemmalta Muunnospalvelut ja sen alta KTJ-muunnokset. Suora linkki: http://www.maanmittauslaitos.fi/paikkat ... asp?id=949.

Otetaan esimerkiksi vaikkapa Hyvinkää ja ladataan PDF-tiedosto. Tiedostosta löytyy seuraavat VVJ -> KKJ muunnosparametrit:

Koodi: Valitse kaikki

a =   6699997.8734421860 
b =   2500000.2133496860 
c =         1.0000197527 
d =         0.0000056790 
e =        -0.0000096389 
f =         1.0000255770 
Tämä on yleinen tapa ilmoittaa affinisen muunnoksen parametrit kirjamilla a-f. Luodaan näistä uusi muunnos kohtaan Laskenta/Muunnokset/Koordinaatistomuunnos. Lisää-painike tekee oletuksena Helmert-muunnoksen ja normaaliin tapaan shift-näppäimen kanssa kopion valitusta muunnoksesta. Nyt kuitenkin tarvitaan uusi affiininen muunnos, joka saadaan tehtyä painamalla Lisää-painiketta control-näppäimen kanssa. Syötetään parametrit seuraavasti:

Kuva

Kierto- ja skaalausparametrit c, d, e ja f laitetaan vastaaviin kohtiin. Siirtoparametrit a ja b laitetaan uusiksi X- ja Y- koordinaateiksi. Tässä näyttää olevan vielä pieni bugi versiossa 5.4.0: koordinaatit katkeavat syötettäessä ohjelmassa käytettyyn desimaalimäärään. Tämän voi kiertää väliaikaisesti laittamalla ohjelman käynnistysasetuksiin (Asetukset/Ohjelman käynnistys/Muut) desimaalimääräksi 10 tai sitten editoimalla aff-tiedostoon jälkeenpäin oikeat arvot. Korjaantuu seuraavaan versioon. Muut kohdat jätetään nolliksi, kuitataan OK-painikella ja talletataan jollain sopivalla nimellä (esim. hyvinkää_vvj_kkj.aff). Muunnos ilmestyy listaan ja on suoraan käytettävissä.

Tiedoston sisällön pitäisi näyttää seuraavalta:

Koodi: Valitse kaikki

1.000019752700,0.000005679000,-0.000009638900,1.000025577000,0.000000000000
0.000000000000,0.000000000000,0.000000000000
6699997.873442186000,2500000.213349680000,0.000000000000
Seuraavaksi tarkistetaan parametrit vastinpisteillä. Valitaan PDF-tiedostosta pistelista, kopioidaan se leikepöydän kautta tekstitiedostoon ja talletetaan jollain nimellä (esim. hyvinkää_kkj_vvj.txt):

Koodi: Valitse kaikki

       30  6732823.415  2550285.400     32824.622     50284.224 
     5001  6728439.615  2548982.340     28440.864     48981.136 
     5003  6723069.930  2541878.574     23071.379     41877.507 
     5005  6720726.283  2547557.334     20727.755     47556.125 
     5006  6723513.270  2551304.191     23514.650     51302.881 
     5007  6723134.814  2545951.266     23136.226     45950.111 
     5022  6725071.698  2546606.066     25073.055     46604.900 
     6501  6716554.470  2544339.860     16555.997     44338.664 
Sitten luodaan pari uutta formaatinmuunninta koordinaattien sisään lukemiseen kohdassa Tiedosto/Formaatit/Vektoritiedosto. Painetaan Lisää, valitaan funktioksi Text, laitetaan tiedostopäätteeksi *.txt ja avataan määrittely painikkeella Muut. Tänne kirjoitetaan määrittelyksi seuraavaa:

Koodi: Valitse kaikki

T4 X Y
Määrittely lukee pistenumeron ja ensimmäisen KKJ-koordinaattiparin. Kuitataan OK:lla ja annetaan muunnokselle nimi Hyvinkää_kkj. Sitten painetaan Lisää-painiketta shift-näppäimen kanssa eli tehdään kopio äskeisestä muuntimesta ja muutetaan määrittely seuraavaksi:

Koodi: Valitse kaikki

T4 0 0 X Y
Määrittely hyppää ensimmäisten koordinaattien yli ja lukee jälkimmäiset VVJ-koordinaatit. Annetaan tälle muuntimelle nimi Hyvinkää_vvj ja luetaan tiedosto elementtilistaan kummallakin muuntimella. Selvyyden vuoksi kannattaa tässä vaiheessa käydä vaihtamassa ensimmäisen tiedoston nimeksi hyvinkää_kkj.txt ja toiseksi hyvinkää_vvj.txt. Myöhempi tarkemittaus ei toimi oikein järkevästi samannimisillä tiedostoilla. Sitten vain aktivoidaan hyvinkää_vvj.txt ja suoritetaan sille aiemmin määritelty affiininen muunnos.

Aineistojen pitäisi nyt olla päällekkäin suurinpiirtein samoissa koordinaateissa. Lasketaan tarkkeet kohdassa Laskenta/Tarkemittaus/Laskenta. Laitetaan teoreettiseksi tiedostoksi hyvinkää_kkj.txt ja mitatuksi hyvinkää_vvj.txt. Suoritetaan laskenta ja katsotaan tulokset painikkeella Näytä:

Koodi: Valitse kaikki

      T1      T2      T3      T4        dX        dY
                              30  0.014381  0.007076
                            5001 -0.037610 -0.011998
                            5003  0.015987 -0.004932
                            5005  0.024943  0.020900
                            5006  0.009269 -0.011132
                            5007  0.003396  0.010608
                            5022 -0.009628 -0.002313
                            6501 -0.020733 -0.008182
Verrataan näitä PDF-tiedostossa mainittuihin residuaaleihin:

Koodi: Valitse kaikki

     1   0.014381     0.007072 
     2  -0.037611    -0.012002 
     3   0.015986    -0.004935 
     4   0.024942     0.020897 
     5   0.009268    -0.011135 
     6   0.003395     0.010605 
     7  -0.009629    -0.002317 
     8  -0.020734    -0.008185 
Tulos näyttää olevan oikein riittävällä tarkkuudella. Viimeisten desimaalien heiluminen on ihan normaalia pyöristysvirhettä eikä sillä ole tässä mitään käytännön merkitystä.

Muunnos voidaan myös määritellä matematiikkapakettiin syöttämällä samat parametrit funktioon _Affine (Laskenta/Muunnokset/Matematiikka editointi).

Avatar
mikko
Ylläpitäjä
Viestit: 297
Liittynyt: 10 Loka 2008, 20:56
Organisaatio: 3D-system
Nimi: Mikko Syrjä
Paikkakunta: Vantaa

Re: Affiininen muunnos

Viesti Kirjoittaja mikko » 07 Touko 2009, 16:44

Kun kerran tuota asennuspakettia joutui vielä hieman paikkaamaan, niin samalla korjasin tuon edellä mainitun affiinisen muunnoksen koordinaattien syöttöongelman. Eli ongelmaa ei enää ole 8.5 jälkeen asennetuissa versioissa.

Vastaa Viestiin