Thursday, July 24, 2014

Koreksi Diferensial GPS Praktis di Handphone Android Menggunakan Aplikasi Mobile Topographer

Koreksi Diferensial adalah teknik untuk meningkatkan akurasi pengamatan posisi GPS/GNSS dengan cara membandingkan hasil pengukuran dari dua receiver GPS atau lebih. Ilustrasi tentang koreksi diferensial dan manfaatnya dapat dilihat dari link INI.

Koreksi diferensial dapat dilakukan secara otomatis secara real time (saat pengukuran di lapangan) atau post processing (koreksi pasca lapangan di komputer). Koreksi diferensial dapat dilakukan secara manual/praktis atau otomatis menggunakan software, yang penting pengamatan koordinat pada lokasi yang diukur dan lokasi referensi dilakukan pada waktu yang sama persis.

Umumnya dukungan koreksi diferensial yang "robust" hanya tersedia pada perangkat receiver/antenna yang mendukung code dan atau carrier phase (receiver kelas mapping sampai geodetic), sementara untuk perangkat GPS handheld/navigasi, proses ini agak sulit untuk dilakukan secara presisi.

Walaupun demikian, sebagaimana pengembangan teknik dan alat pengukuran GPS untuk memperoleh koordinat yang akurat yang selalu berkembang, terdapat banyak cara untuk melakukan koreksi diferensial di perangkat GPS navigasi, bahkan handphone sebagaimana yang bisa dilakukan oleh aplikasi Mobile Topographer di sistem operasi Android.

Mobile Topographer dapat diunduh dari Google Play di SINI.

  

 


Ada dua cara yang bisa digunakan untuk menentukan lokasi referensi/base (yang dianggap akurat, presisi, bebas distorsi, lokasi ini digunakan sebagai referensi untuk mengkoreksi pembacaan alias rover) dalam Mobile Topographer,

1. Dengan cara Weight/Waypoint Averaging yang didasarkan pada perataan hasil logging data selama 5 menit dengan interval logging 1 detik. Weight Averaging adalah teknik perataan koordinat yang diambil dari dua atau lebih koordinat dari pembacaan GPS pada lokasi yang sama guna menghasilkan koordinat rata rata yang diasumsikan sebagai koordinat paling akurat (biasanya memang lebih akurat daripada pembacaan langsung sebagaimana biasa dilakukan di perangkat GPS handheld/navigasi) dan presisi dari lokasi yang bersangkutan. Lokasi hasil averaging kemudian ditampilkan di peta/google maps. Kemudian operator melihat kesesuaian antara lokasi hasil averaging yang ditampilkan di peta dengan lokasi lapangan, jika ada pergeseran, operator diminta memindahkan lokasi titik ke lokasi sebenarnya di lapangan. Perpindahan ini dianggap sebagai faktor koreksi oleh aplikasi, yang kemudian dijadikan dasar koreksi untuk pembacaan/logging data GPS selanjutnya.

2. Dengan memasukkan "known point" atau memasukkan koordinat "asli atau akurat" dari lokasi tersebut secara manual, kemudian aplikasi akan menghitung menggunakan weight averaging koordinat lokasi tersebut dalam selang waktu tertentu, selanjutnya hasil pembacaan averaging tersebut dibandingkan dengan data "known point" tersebut, dan selisihnya dijadikan faktor koreksi untuk pembacaan selanjutnya.

Penggunaan Mobile Topographer cukup simpel

1. Buka aplikasi dari Handphone, tampil menu utama, slide screen ke kanan, muncul menu kalibrasi dan setting. Ada tiga pilihan kalibrasi, Google Maps calibration, Point on Map dan Known point.

2. Untuk kalibrasi metode 1 dan 2. Klik dulu Google Maps calibration. Kalibrasi ini berfungsi untuk mengkalibrasi google maps agar pergeseran posisi yang diakibatkan ketidakakuratan google maps atau koreksi geometrik layanan citra satelit google bisa dihilangkan. Sebagaimana kita tahu bahwa Google tidak mempublish informasi akurasi dari produk spasialnya, sehingga koordinat dari google maps/satellite secara praktis tidak bisa dipercaya untuk pemetaan dengan kebutuhan akurasi 5 meter dan lebih kecil. Masukkan informasi koordinat lokasi pengukuran anda (akan lebih baik jika koordinat ini merupakan koordinat asli dari lokasi tersebut untuk menjamin akurasi hasil pengukuran nantinya). Koordinat yang anda masukkan akan ditampilkan di google maps/satellite. Jika posisi yang ditunjukkan google maps tidak sesuai dengan posisi anda mengukur (sebagai akibat tidak akuratnya google maps/satellite), geser crosshair ke posisi pengukuran anda kemudian klik Accept. Aplikasi akan menggeser koordinat google maps agar sesuai dengan posisi yang anda ukur. Langkah ini berguna agar anda dapat menggunakan google maps/satellite sebagai basemap yang terpercaya sebagai dasar ploting hasil pengukuran anda. 

3. Untuk metode 1, klik Point on Map calibration. Aplikasi akan memulai melakukan Weight averaging selama 5 menit untuk menentukan posisi terakurat dari lokasi anda mengukur. Hasilkan akan ditampilkan di peta. Amati posisi yang ditunjukkan. Apabila ada pergeseran dari lokasi anda mengukur, geser crosshair ke lokasi anda mengukur, kemudian klik Accept. Selisih antara hasil weight averaging dan hasil pergeseran crosshair akan digunakan sebagai faktor koreksi untuk pembacaan selanjutnya. Kembali ke menu utama, klik menu survei, aplikasi akan mulai melakukan pembacaan koordinat dari satelit. Setelah informasi koordinat muncul, klik Start Increasing accuracy, aplikasi akan memulai proses weight averaging untuk mencari posisi yang lebih akurat. Jika akurasi sudah menunjukkan angka pembacaan yang diterima, klik tombol Add point untuk menyimpan koordinat hasil pembacaan. Hasil pengukuran dapat juga dilihat di google maps/satellite yang telah dikalibrasi  pada step 2 diatas. Selain disimpan sebagai file text dengan ekstensi *pts, hasil pengukuran dapat diexport ke format csv, txt, kml dan dxf.

4. Untuk metode 2, klik Known Point calibration.aplikasi akan melakukan weight averaging selama 5 menit untuk menentukan posisi anda mengukur. setelah koordinat diperoleh, masukkan Koordinat yang anda tahu merupakan koordinat paling akurat dari lokasi tersebut. Selisih dari hasil weight averaging dengan posisi sebenarnya yang anda masukkan akan menjadi faktor koreksi ketika anda mulai mengukur di menu survei.



REVIEW 

Pros
1. Adanya Google Maps calibration memungkinkan kita untuk mengubah koordinat layanan google agar "bisa lebih dipercaya" sebagai basemap, mengingat google tidak pernah mempublish akurasi produk spasialnya, terlebih untuk pemetaan skala detil.

2. Fitur weight averaging sendiri sebenarnya merupakan sebuah solusi praktis untuk meningkatkan akurasi di receiver GNSS yang tidak mendukung Code/Carrier Phase differential correction. Intinya pembacaan yang terkalibrasi/terkoreksi always better compared with direct readings. Weight averaging ditujukan untuk mengeliminasi kesalahan akibat pengaruh atmosfer dan penutup lahan (bangunan/pohon).

3. Adanya informasi DOP (Dilution of Precision), baik Horizontal DOP (HDOP), Vertical DOP (VDOP) maupun Positional DOP (PDOP). Informasi DOP ini penting untuk mengetahui sebaran dan geometri satelit di angkasa guna menjamin akurasi yang lebih baik. Lebih jauh tentang DOP dapat dibaca di SINI.

4. Ada fitur navigasi, polygon creation, area measurement, Konversi Koordinat dari Geodetic (latlong) ke Cartesian (UTM) and vice versa dengan berbagai pilihan datum geodetik.

5. Fitur Known Point memungkinkan kalibrasi dengan koordinat "eksternal independen" yang fleksibel, dalam artian kita bisa memanfaatkan data hasil pengukuran DGPS presisi atau sumber data lain yang lebih terjamin akurasinya.


Cons
1. Untuk metode kalibrasi point on map, Weight averaging hanya dilakukan dalam waktu singkat (5 menit), ini terkadang tidak cukup untuk memperoleh koordinat yang akurat. Terlebih jika survei dilakukan di tempat yang pengaruh multipath-nya tinggi (awan tebal, hutan lebat, gedung pencakar langit). Aturan umum tentang weight averaging (karena merupakan teknik statistik) adalah makin banyak sampel makin bagus. Selain itu weight averaging tidak mampu mengkoreksi kesalahan yang diakibatkan geometri satelit yang terlalu menyebar (spread) atau mengumpul (clustered). Kesalahan yang diakibatkan geometri satelit dalam konsep weight averaging hanya dapat diperbaiki dengan melakukan multisample weight averaging, yaitu weight averaging dari banyak short time averaging (sekitar 5 menit) dengan selisih minimal 15 menit per averaging dalam waktu yang panjang (mulai dari 1,5 jam sampai seharian penuh hehe). Dalam beberapa puluh menit, geometri satelit akan berubah sehingga efek kesalahan geometri satelit ini akan bisa direspon dalam proses averaging berupa perataan dari hasil pembacaan pada kondisi geometri satelit yang berbeda. Multisample weight averaging saat ini baru diimplementasikan di receiver GPS Garmin keluaran terbaru.

2. Karena tidak melihat kesalahan penentuan posisi yang didasarkan pada sinyal yang diterima (code/carrier phase) maka koordinat akurat dari aplikasi ini hanya bisa dianggap sebagai "indikasi" sebagaimana dengan hasil prediksi berbasis statistik lainnya.

3. Weight averaging is annoying dude, because its taking too damn looonggg time to achieve good results.


If you find this application is useful, please consider to buy the PRO version with more features for only Rp 250.000 :) *helping the devs

Sunday, July 20, 2014

Memanfaatkan INA-CORS untuk melakukan Koreksi Diferensial GPS (Post Processing DGPS)

Salah satu keinginan saya dari sejak kuliah dulu adalah belajar melakukan survei dan koreksi DGPS. Pada tahun 2008 saya pernah ikut survey DGPS bersama senior saya di kampus geografi UGM, tapi waktu itu saya hanya menjadi operator rover dan terus terang ndak mudeng sama sekali tentang survei tersebut (terutama di aspek pengolahan data karena saya tidak ikut waktu itu). Tapi setidaknya ada beberapa hal yang bisa saya pelajari dari survei tersebut :

1. Jadi tahu konsep base dan rover serta logika dibalik koreksi diferensial
2. Tahu metode metode survei GPS diferensial dan absolut, statik dan kinematik.
3. Jadi tahu ada alat GPS seharga mobil kijang baru dengan ketelitian hingga senti/milimeter.

Dan akhirnya, pada hari ini, dengan berbekal Receiver Trimble GeoXT dan informasi dari teman di BIG, saya berhasil memuaskan kepenasaranan saya tentang DGPS.

Untuk pengetahuan umum tentang GPS dan DGPS cek GPS Tutorial dari Trimble.

Salah satu kesulitan dalam melakukan koreksi data GPS baik secara real time maupun post processing adalah tiadanya data referensi dari base station. Data referensi untuk akuisisi real time (menggunakan Satellite Based Augmentation system) baru tersedia di Amerika (WAAS), Eropa (EGNOS), Jepang (MSAS), dan India (GAGAN). Banyak receiver GPS/GNSS (mulai dari kelas navigasi.handheld sampai geodetic) keluaran terbaru sudah mendukung koreksi realtime menggunakan Augmentation System, diantaranya Garmin Oregon. Garmin Montana, Garmin Colorado, Trimble Juno dll. Hanya sayangnya layanan SBAS eksisting tidak mencakup wilayah Indonesia sehingga SBAS tidak bisa dimanfaatkan (kecuali mungkin di beberapa tempat seperti di Kalimantan teman saya pernah menceritakan mendapat informasi koreksi dari sistem MSAS Jepang di jam jam tertentu).

Untunglah sekarang ini Badan Informasi Geospasial telah membangun Jaringan INA-CORS (Indonesian Continuous Referencing System). INACORS bukan merupakan SBAS (correct me if Im Wrong) tapi lebih ke jaringan stasiun referensi yang menyediakan layanan koreksi data GPS baik secara real time maupun post processing secara online. Portal INA-CORS dapat diakses di SINI.

Nah pada kesempatan ini saya akan menceritakan pengalaman menggunakan data referensi dari INACORS untuk mengkoreksi diferensial secara post processing, data koordinat dari hasil logging menggunakan receiver Trimble GeoXT 2008 series.

1. Lakukan survei akuisis data GPS. Untuk contoh ini saya menggunakan receiver Trimble GeoXT 2008 dan software Terrasync versi 5.0 untuk logging data. Pengaturan log setting sebagai berikut.

- Interval log : 1 detik
- ketinggian antena : 1 meter
- jenis data : uncorrected GPS
- Datum : WGS 84
- Coordinate System : Geographic
- Accuracy Based Log : No

Pengambilan data dilakukan selama 5 menit (menghasilkan 300 titik akuisisi)



2. Setelah selesai, Receiver saya koneksikan dengan Laptop, Windows Mobile Device Center akan mendeteksi Receiver yang saya gunakan.





3. Buka software Pathfinder Office dari trimble untuk melakukan Data transfer dan koreksi differensial

4. Klik menu Transfer, status jendela transfer akan menunjukkan komputer terkoneksi dengan gps, kemudian dari menu receive pilih Add, kemudian pilih Data File. Data yang kita ambil dari GPS mempunyai Ekstensi SSF. Ini merupakan data raw dari satelit. Setelah selesai klik Close.



5. Kalau ditampilkan di pathfinder, data hasil logging nampak seperti gambar dibawah, titik yg diambil terplot diatas genteng rumah, padahal saya ngambilnya didepan rumah tersebut. Untuk penjelasan kenapa titik bisa nyasar seperti itu lihat kembali tutorial GPS diatas.


6. Data raw (uncorrected) yang tadi diplot dapat dikoreksi secara diferensial menggunakan data referensi dari base station terdekat. Layanan data base station gratis yang tersedia di Indonesia sampai saat ini hanya ada layanan SOPAC dari Bakosurtanal, atau dari INA-CORS yang baru dikembangkan beberapa tahun terakhir ini. Selain dari stasiun referensi, anda jg dapat mengkoreksi dari data base station sendiri, hanya untuk keperluan ini anda perlu dua alat gps dimana yang satu berfungsi sebagai base (referensi) dan yg satu sebagai rover (akuisisi). Buka Portal INACORS dari alamat http://inacors.big.go.id. Pilih register, nanti akan terbuka situs baru dengan alamat http://nrtk.big.go.id. register dari situ. install microsoft silverlight agar registrasi dapat berjalan lancar.


7.  Setelah login ke portal NRTK, dimenu shop ada berbagai layanan koreksi data, subscribe saja semuanya mumpung gratis (nggak tahu juga sih apa kedepan akan tetap digratiskan sama BIG atau tidak). Di menu Subscription akan ditampilkan jenis layanan yg kita subscribe.


8. Balik lagi ke Portal INACORS, login menggunakan ID yg kita register di NRTK, kemudian setelah login akan ada menu baru berisi layanan yg kita subscribe. Pilih menu RINEX Job Service, kemudian pilih New Job.



9. Kita masuk ke menu RINEX job, untuk step 1, tentukan tanggal anda melakukan survei. Data bisa diambil sekali, setiap hari atau hari - hari tertentu dalam satu minggu. klik next


10. Di langkah kedua, tentukan waktu (local time) anda mulai melakukan survei kemudian dari waktu mulai tersebut, data akan diambil selama berapa jam?. centang semua metadata. Observation rate menentukan berapa jumlah titik yang diambil pada waktu tertentu, sesuaikan dengan waktu logging anda ketika survei.  kemudian klik next.


11. Di step berikutnya kita akan memilih stasiun referensi yang akan kita gunakan untuk mengkoreksi, Ada beberapa cara untuk memilih, menggunakan list, menggunakan peta, atau menggunakan lokasi tertentu sebagai referensi untuk menentukan stasiun terdekat. Jika menggunakan peta akan muncul peta lokasi stasiun, klik lokasi stasiun untuk memilih, stasiun terpilih akan menjadi merah. Panduan secara umum memilih stasiun referensi ini adalah "dipilih yg paling dekat dengan lokasi survei". Jika menginginkan akurasi koreksi yg lebih baik, dapat dicoba diambil data dari beberapa stasiun dalam radius 30 km dari lokasi survei.


12. Setelah memilih stasiun, muncul menu baru, klik submit.


13. Kembali ke menu utama INACORS, klik tab Result, kemudian tentukan range tanggal dari Job yg kita buat tadi. Klik Show


14.  Muncul daftar data referensi yg kita request. Klik tombol download. Download data referensi dalam format zip.



15. Kembali ke Pathfinder Office. Klik Menu Utilities>Differential Correction


16. File SSF yang akan dikoreksi akan automatically loaded.


17. Pilih Automatic Carrier and Code Processing.


18. Browse ke file data referensi yang tadi anda download


19. Tentukan output yang anda inginkan


20. Software akan melakukan checking antara data rover dan data base, jika memenuhi syarat akan muncul tombol confirm.


21. Setelah confirm, software akan melakukan koreksi differensial terhadap semua data hasil logging. Data yg terkoreksi akan disimpan sebagai file baru dengan ekstensi *.cor. Selain itu juga ditampilkan persentase akurasi dari semua data yang diolah.


22. Hasil koreksi menunjukkan lokasi yg sama dengan lokasi saya mengambil data, pergeseran paling yaaa nggak melebih satu meter.



Semoga bermanfaat :)

Baiknya beli GPS apa mobil ya....

Tuesday, July 15, 2014

Clip Multiple Rasters Using Polygons (Gombal Mapper)

Ada kasus, misalnya, anda diminta memotong (clip) data raster/citra sebanyak "n" file menggunakan grid polygon. Misalnya seperti gambar dibawah, saya mau membuat mosaik peta RBI hasil scanning, tapi saya tidak perlu informasi tepi dan bawah peta yang mengganggu. Jika bagian tidak penting ini tidak diclip, tentu hasil mosaik akan "awut - awut"-an.



Melakukan clip raster untuk kasus diatas sangat mudah jika data yang akan dimosaik cuma satu dua buah, tapi bagaimana jika ratusan??  anda tentu memerlukan sebuah tool yang bisa melakukannya secara otomatis.

Secara default fungsi clip multiple raster ini tidak tersedia di ArcGIS. Fungsionalitas batch processing juga tidak dapat digunakan untuk kasus seperti ini. Ada fungsi lain yang bisa, yaitu "iterate/loop raster" melalui model builder. Disini software akan menelusuri seluruh data raster yang ada dalam direktori, me-load ke software, diclip menggunakan polygon (identifikasi polygon menggunakan field tertentu, yang apesnya harus diiterasi juga). Dikarenakan dalam sebuah model geoprocessing iterasi tidak dapat dilakukan dua kali, maka untuk pekerjaan ini mau nggak mau harus dibuat dua model, seperti gambar di bawah.


Ribet, adakah cara lain???

setelah menelusuri dengan dipandu mbah google, ternyata prosedur serupa dapat dilakukan dengan relatif lebih mudah menggunakan Gombal (global) mapper melalui script tertentu yang berfungsi sebagai batch processing dan Looping. 

Here the Script. 

GLOBAL_MAPPER_SCRIPT VERSION=1.00
UNLOAD_ALL
DIR_LOOP_START DIRECTORY="E:\Workspace2014\Supervisi_PengelolaanDataSpasial\DATA RBI\PETA RBI SKALA 1 ; 25.000\Test" FILENAME_MASKS="*.tif" RECURSE_DIR=NO
IMPORT FILENAME="%FNAME_W_DIR%" CONTRAST_SHARED=YES CONTRAST_MODE=MIN_MAX
EXPORT_RASTER FILENAME="C:\GlobalMapper12\Result\%FNAME_WO_EXT%_ Cropped.tif " BG_TRANSPARENT=YES \
OVERWRITE_EXISTING=YES TYPE=GEOTIFF GEN_WORLD_FILE=YES \
POLYGON_CROP_FILE="E:\Workspace2014\Supervisi_PengelolaanDataSpasial\DATA RBI\PETA RBI SKALA 1 ; 25.000\test_shp.shp" \
POLYGON_CROP_USE_EACH=YES \
POLYGON_CROP_BBOX_ONLY=YES \
POLYGON_CROP_NAME_ATTR="ID_unique"
UNLOAD_ALL
DIR_LOOP_END

Ganti parameter DIRECTORY dengan folder anda menyimpan data raster yang akan dipotong.
Ganti parameter POLYGON_CROP_FILE dengan lokasi polygon pemotong
isikan POLYGON_CROP_NAME_ATTR dengan nama field yang akan menjadi dasar pemotongan data raster


Simpan script diatas di Notepad dan save dengan ekstensi *GMS.

Jalankan Script dari Menu File>Run Script

And, Here are the results


memang, masih ada bagian yang cukup menyebalkan, yaitu menghapus potongan - potongan kecil dari data raster yang tidak dipakai, tapi saya pikir ini lebih baik daripada harus clipping manual.