Tuesday, December 9, 2014

Vector Georeferencing / Spatial Adjusment, Consider the transformation method before your head explode!

Georeferencing, sederhananya adalah proses mentransformasikan koordinat lokal (kartesian) ke koordinat bumi (geodetik/kartesian).  Georeferencing bisa dilakukan baik untuk data format raster maupun vektor. Georeferencing raster contohnya antara lain transformasi koordinat peta hasil scan ke peta yang sudah tergeoreferensi. Koreksi geometrik citra satelit (termasuk orthorektifikasi) termasuk juga dalam kategori raster georeferencing. Sedangkan georeferencing vektor kalau di dalam terminologi ArcGIS dikenal dengan istilah "spatial Adjustment".

Orang sering mengatakan vector georeferencing adalah proses georeferencing yang sangat menyakitkan karena seringkali hasilnya malah tidak karuan, peta yang dihasilkan terdeformasi kemana-mana dan tidak persis berimpit dengan data referensi. Well, sebenarnya tidak jika anda memahami karakteristik error dari data yang akan digeoreferensi. Error pada data vektor yang tidak terdefinisi koordinatnya (menggunakan koordinat lokal, atau dari peta dasar yang berbeda) sebenarnya dapat disederhanakan menjadi tiga kategori

1. Perbedaan skala, perbedaan sudut, dan pergeseran posisi tapi dimensi data (aspect ratio) sama
2. Perbedaan skala, perbedaan sudut, dan pergeseran posisi dengan dimensi data berbeda (skew)
3. Perbedaan dimensi ke segala arah.

Nah dengan memahami kesalahan dari data yang anda miliki, anda dapat memilih strategi transformasi yang tepat untuk vector georeferencing sehingga proses transformasi sesuai dengan jenis kesalahan dan hasil yang diperoleh lebih akurat.

Untuk implementasi di ArcGIS, proses vector georeferencing disediakan lima metode transformasi, yaitu affine, similarity, projective, rubber sheet, dan edge snap. Kita bahas empat yang pertama.

1. Similarity Transform

Similarity transform digunakan untuk mentransformasikan data yang mempunyai perbedaan skala, sudut dan posisi, tapi dimensi luas (aspect ratio)-nya sama.

Rumusnya seperti di bawah ini

x’ = Ax + By + Cy’ = -Bx + Ay + F
where
A = s * cos t
B = s * sin t
C = translation in x direction
F = translation in y direction 
and

s = scale change (same in x and y directions)
t = rotation angle, measured counterclockwise from the x-axis

Contoh kasusnya sebagai berikut.

Saya punya dua layer peta yang mempunyai dimensi sama, tapi posisinya tidak berimpit. Layer warna merah adalah data referensi, dan layer warna hijau adalah data yang akan ditransform. Untuk kasus seperti ini kita dapat menggunakan transformasi similarity di dalam spatial adjustment dimana proses transformasi tidak akan mengubah dimensi. 


Selanjutkan kita buat links antara kedua data, untuk similarity transform minimal titik ikat adalah dua. 


Hasilnya seperti di bawah ini. 



2. Affine Transform

Affine transform digunakan untuk mentransformasikan data yang mempunyai perbedaan skala, sudut dan posisi, dan dimensi luas (aspect ratio)-nya berbeda (menceng/skew). 
Rumusnya :
x’ = Ax + By + C
y’ = Dx + Ey + F 
where x and y are coordinates of the input layer and x’ and y’ are the transformed coordinates. A, B, C, D, E, and F are determined by comparing the location of source and destination control points.

Contoh kasusnya sebagai berikut.


Affine transform memerlukan minimal tiga titik ikat. 


Hasilnya seperti di bawah.


3. Projective Transform
Projective transform digunakan untuk data yang memiliki kesalahan/perbedaan dimensi ke segala arah. Kesalahan projective biasanya ditemui di peta hasil interpretasi foto udara yang belum direktifikasi. Misalnya peta kertas transparansi/kalkir hasil interpretasi foto udara cetak belum terkoreksi, yang lalu discan dan didigitasi ulang di dalam GIS. 
Rumusnya seperti di bawah ini
x’ = (Ax + By + C) / (Gx + Hy + 1)
y’ = (Dx + Ey + F) / (Gx + Hy + 1) 
Contoh kasusnya sebagai berikut.
Transformasi ini minimal memerlukan empat titik ikat untuk mengidentifikasi pergeseran di setiap arah.
Hasilnya seperti ini
4. Rubber Sheet
Rubber sheet merupakan transformasi paling menyakitkan dan kalau bisa dihindari karena untuk transformasi ini diasumsikan perbedaan geometri antara data target dan data referensi adalah seperti baju yang belum diseterika. Kusut dan terlipat dimana mana, sehingga memerlukan titik ikat yang banyak dan tersebar merata, Jumlah titik ikat yang tidak proporsional dan tersebar merata mungkin akan menyebabkan hasil transformasi semakin kacau dan tidak karuan, Jadi itulah, sebenarnya asal kita paham karakteristik data yang akan ditransform, proses spatial adjusment seharusnya tidak begitu sulit (setidaknya itu yang saya pahami sebelum menulis postingan ini) Last tip, untuk transformasi data yang jumlah featuresnya banyak, setelah proses adjusting sebaiknya jangan di-save edit, karena load memory di RAM akan menjadi besar dan ArcGIS bisa hang. Sebaiknya setelah ditransform data dicopy dalam kondisi editing mode ke layer lain.