Instalasi GMTSAR di Lingkungan Windows 11 dan Contoh Aplikasinya

Instalasi GMTSAR di Lingkungan Windows 11 dan Contoh Aplikasinya

Prerequisite

  • Windows Subsystem Linux Version 2 (link)

  • Ubuntu 22.04.2 LTS (link)


Instalasi GMT

  1. Memperbarui paket yang ada di sistem lokal agar sesuai dengan pembaharuan terakhir pada repositori Ubuntu.

     sudo apt-get update
    
  2. Melakukan instalasi beberapa dependencies yang diperlukan.

     sudo apt install subversion ghostscript build-essential cmake libnetcdf-dev libfftw3-dev libpcre3-dev libgdal-dev gdal-bin -y
    
  3. Melakukan cloning repo GMT yang ada di GitHub dengan mengambil 50 commit terakhir untuk memastikan GMT yang diunduh adalah versi terbaru (but unstable version, you can check the stable version of the source codes here (filename: gmt-x.x.x-src.tar.gz)).

     git clone --depth 50 https://github.com/GenericMappingTools/gmt
    
  4. Unduh beberapa data pendukung GSHHG dan DCW dengan wget.

    GSHHG (Global Self-consistent, Hierarchical, High-resolution Geography Database) adalah sebuah database geografi global yang menyediakan informasi tentang garis pantai, batas negara, dan fitur geografis lainnya. Database ini dikembangkan oleh Generic Mapping Tools (GMT) dan digunakan untuk membuat peta dan visualisasi geospasial.

    DCW (Digital Chart of the World) adalah sebuah dataset yang berisi informasi geografis seperti batas negara, garis pantai, dan fitur geografis lainnya. DCW dirilis oleh pemerintah Amerika Serikat dan dikembangkan menggunakan teknologi SIG.

  5. Ekstrak file GSHHG dan DCW dengan perintah berikut.

     tar -zxvf <nama-file-GSHHG/DCW>
    
  6. Melakukan konfigurasi CMake. GMT dapat dibangun di platform apa pun yang didukung oleh CMake, yang merupakan sistem sumber terbuka lintas platform untuk mengelola proses pembangunan. Proses pembangunan GMT dikendalikan oleh tiga berkas konfigurasi yang terletak di direktori cmake:

    • ConfigDefault.cmake: Berkas ini terdapat di dalam kontrol versi dan berisi variabel dan pengaturan default untuk semua pengguna. Tidak disarankan untuk mengedit berkas ini secara langsung karena kemungkinan akan ditimpa saat melakukan pembaruan atau modifikasi pada kode sumber GMT.

    • ConfigUser.cmake ✅: Berkas ini tidak ada di dalam kontrol versi dan digunakan untuk mengganti pengaturan default dasar secara individual oleh pengguna. Anda dapat mengubah berkas ini untuk menyesuaikan proses pembangunan GMT sesuai dengan kebutuhan atau preferensi spesifik Anda.

    • ConfigUserAdvanced.cmake: Sama seperti ConfigUser.cmake, berkas ini tidak ada di dalam kontrol versi dan digunakan untuk mengganti pengaturan default yang lebih advanced secara individual oleh pengguna. Berkas ini menyediakan opsi kustomisasi lebih lanjut bagi pengguna yang mahir dan perlu melakukan penyesuaian mendalam pada proses pembangunan GMT.


      Untuk melakukan konfigurasi cmake, masuk terlebih dahulu dalam direktori cmake. Kemudian, copy template konfigurasi yang sudah disediakan GMT dan rename menjadi "ConfigUser.cmake". Berikut merupakan perintah yang digunakan.

        cp ConfigUserTemplate.cmake ConfigUser.cmake
      

      Selanjutnya gunakan vim editor untuk mengedit isi dari "ConfigUser.cmake".

        vi ConfigUser.cmake
        # Selanjutnya tekan "i" untuk mulai mengedit
      
  7. Masuk ke direktori gmt (for example: cd /home/drianium/gmt), selanjutnya eksekusi perintah berikut ini untuk membangun GMT sesuai konfigurasi cmake sebelumnya.

     # Cmake
     mkdir build
     cd build
     cmake ..
     # Make install
     make
     sudo make install
    

    Apabila cmake berhasil, maka akan muncul output seperti gambar berikut:

    Hasil output dari make:

  8. Cek apakah instalasi berhasil dengan mengetikkan perintah gmt.


Instalasi GMTSAR

  1. Instal library tambahan:

     sudo apt install csh subversion autoconf libtiff5-dev libhdf5-dev wget liblapack-dev gfortran g++ libgmt-dev gmt-dcw gmt-gshhg gmt -y
    
  2. Download dan instal file orbit di /usr/local/orbits:

     wget http://topex.ucsd.edu/gmtsar/tar/ORBITS.tar
     pwd # Copy hasil dari path pwd
    
     sudo -i
     cd /usr/local
     mkdir orbits
     cd orbits
     tar -xvf <path-pwd>/ORBITS.tar
    
  3. Download dan instal GMTSAR dari GitHub:

     cd /usr/local
     git clone --branch 6.2 https://github.com/gmtsar/gmtsar GMTSAR
     exit
    
     #  Menjadikan user saat ini sebagai owner direktori GMTSAR
     cd /usr/local
     sudo chown -R $USER GMTSAR
    
  4. Install GMTSAR:

     cd GMTSAR
     autoconf
     autoupdate
     ./configure --with-orbits-dir=/usr/local/orbits
    

    Edit file "config.mk" dengan vim editor, kemudian tambahkan "-z muldefs" pada bagian "CFLAGS" dan "LDFLAGS".

    Selanjutnya jalankan perintah berikut:

     make
     make install
    
  5. Masuk ke direktori home (cd ~), kemudian gunakan vim editor untuk mengedit file .bashrc dengan perintah berikut:

     vi .bashrc
    
     # GMTSAR
     export GMTSAR=/usr/local/GMTSAR
     export PATH=$GMTSAR/bin:"$PATH"
    

  6. Exit dari terminal, kemudian masuk ulang ke terminal Ubuntu. Apabila berhasil, Anda bisa menjalankan semua perintah yang ada di GMTSAR. Perintah yang dapat dijalankan dalam GMTSAR secara lengkap bisa dilihat di sini.


Pemrosesan D-InSAR dengan GMTSAR

GMTSAR menggunakan algoritma two-pass dalam proses D-InSAR. Metode two-pass menggunakan model elevasi eksternal (misalnya DEM) yang diubah menjadi koordinat radar, diskalakan menggunakan baseline, dan dikurangi dari interferogram. Karena banyak wilayah di dunia sudah tersedia model elevasi, ini bisa menjadi pendekatan yang baik. Namun demikian, perambatan kesalahan tentunya akan berlaku, di mana kesalahan dari DEM akan merambat dan mempengaruhi hasil dari hasil interferometri.

Data sampel berbagai macam citra satelit dapat diunduh melalui laman ini. Setelah data terunduh, selanjutnya ekstrak dengan command tar -xvf <nama-file>. Dalam pemrosesan D-InSAR dengan GMTSAR, terdapat aturan struktur direktori yang harus dipenuhi. Struktur direktori yang dimaksud disajikan pada diagram berikut.

# Struktur Direktori Untuk ALOS/ALOS-2
project-alos/
├── raw/
│   ├── RAW SAR master (IMG ...)
│   ├── RAW SAR slave (IMG ...)
│   ├── Data precise orbit master (LED ...)
│   └── Data precise orbit slave (LED ...)
└── topo/
    └── dem.grd

# Struktur Direktori Untuk Sentinel-1
project-sentinel1/
├── raw/
│   ├── RAW SAR master (... V_20150526T014935... .SAFE)
│   ├── RAW SAR slave (... V_20150607T014936 ... .SAFE)
│   ├── Data precise orbit master (... V20150525T225944_20150527T005944.EOF)
│   └── Data precise orbit slave (... V20150606T225944_20150608T005944.EOF)
└── dem/
    └── dem.grd

Selanjutnya lakukan generate konfigurasi untuk pemrosesan dengan modul pop_config.csh sesuai dengan nama citra SAR yang digunakan. Nama citra yang dapat digunakan dapat dilihat dengan menjalankan perintah pop_config.csh tanpa parameter apapun di terminal.

Berikut contoh pemrosesan pada citra ALOS-2 dan Sentinel-1A:

  1. Pemrosesan ALOS-2

     pop_config.csh ALOS2 > config.txt
     p2p_processing.csh ALOS2 IMG-HH-ALOS2011986990-140813-HBQR1.1__A IMG-HH-ALOS2014056990-140827-HBQR1.1__A config.txt
    
     # Catatan:
     # Parameter dalam config.txt dapat diubah sesuai keinginan.
    
  2. Pemrosesan Sentinel-1A

     pop_config.csh S1_TOPS > config.txt
     p2p_S1_TOPS_Frame.csh S1A_IW_SLC__1SSV_20150526T014935_20150526T015002_006086_007E23_679A.SAFE S1A_OPER_AUX_POEORB_OPOD_20150615T155109_V20150525T225944_20150527T005944.EOF S1A_IW_SLC__1SDV_20150607T014936_20150607T015003_006261_00832E_3626.SAFE S1A_OPER_AUX_POEORB_OPOD_20150627T155155_V20150606T225944_20150608T005944.EOF config.txt vv 0
    
     # Catatan:
     # Parameter dalam config.txt dapat diubah sesuai keinginan.
     #  A processing factor of 1 will have the script process the subswaths in parallel.
     #  A processing factor of 0 will have the script process the subswaths sequentially. This is better for computers less memory, but takes longer to executes.