Menggambar Kontur Batimetri

Kontur Batimetri Hitam-Putih
Kontur Batimetri Hitam-Putih

File grid srtm_ntt.grd bisa kita interpolasi untuk menggambarkan kontur batimetri. SRTM 15 plus merupakan gabungan data batimetri dan topografi dari berbagai sumber akuisisi data, baik data dari satelit maupun data survei kelautan.

Generic Mapping Tools akan membantu kita melakukan plotting kontur batimetri  dari kedalaman -7500m sampai -500m dengan kontur interval 500m. Anotasi diberikan setiap 2000m. Daratan digambarkan memakai warna abu-abu.  Script singkat untuk melakukan plotting peta ada di bawah ini:

#!/usr/bin/bash

# Plot Basemap Dan Kontur Batimetri
# GMT 5.2.1
# oleh: Hendro Nugroho

gmt set MAP_FRAME_TYPE plain

# Data grid topografi: SRTM15 plus
ntt='srtm_ntt.grd'
out='kontur_batimetri_ntt.ps'
area='-R118.5/127.5/-11.5/-7.5'
k_int=500	# interval kontur
a_int=2000	# interval anotasi kontur
k_limit=-7500/-500

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Bxa2f1 -Bya1f1 -K > $out

# peta garis pantai
gmt pscoast -R -JM -Xc -B -Di -Ggray -Wthinnest -O -K >> $out

# plot kontur batimetri
gmt grdcontour $ntt -R -JM -Xc -C$k_int -A$a_int -L$k_limit -O >> $out

Peta hasil pengeplotan bisa dilihat pada featured image di atas.

Dengan sedikit tambahan warna, hasil akhir peta akan lebih menarik. Level warna kontur bisa kita berikan dengan terlebih dahulu membuat tabel warna. Lalu kita plot file grid dengan perintah grdimage.

Mari kita sisipkan kode berikut ini di bawah deklarasi variabel terakhir.

cpt='kontur.cpt'
#membuat tabel warna level kontur
gmt makecpt -Chaxby -T-8000/0/1000 -Z > $cpt

# plot grd dengan tabel warna baru
# -Yc ditambahkan untuk memberi tempat skala warna
# yang akan diplot di bawah peta.
gmt grdimage $ntt -JM8.5i -Xc -Yc $area -C$cpt -K > $out

Perubahan kode script serta tambahan perintah untuk menggambar skala warna di bawah peta ada di bawah ini:

# ==> tambahan kode -Yc
# frame peta
gmt psbasemap $area -JM8.5i -Xc -Yc -Bxa2f1 -Bya1f1 -O -K >> $out

# peta garis pantai
gmt pscoast -R -JM -Xc -Yc -B -Di -Ggray -Wthinnest -O -K >> $out

# plot kontur batimetri
gmt grdcontour $ntt -R -JM -Xc -Yc -C$k_int -A$a_int -L$k_limit -O -K >> $out

# plot skala warna
gmt psscale -D5/-1/10/0.5h -Xc -C$cpt2 -Bf1000a2000 -O >> $out

Inilah hasil akhir peta dengan kontur batimetri berwarna:

peta_kontur_batimetri_berwarna

Plotting Basemap Dengan CPT Asimetri

Basemap Nusa Tenggara Timur
Basemap Nusa Tenggara Timur

Kita akan melihat kembali script GMT pada posting sebelumnya (plotting peta jaringan YS) dan akan menggunakan script tersebut untuk membuat basemap dengan color palette table asimetri. Warna batimetri akan kita ambil dari abyss.cpt sedangkan warna topografi akan kita ambilkan dari arctic.cpt dan memofidikasi file ini dengan menghilangkan warna-warna untuk kedalaman laut.

Sebelum membuat tabel warna (cpt) mari kita lihat informasi grid file yang akan kita pakai (srtm_ntt.grd) yang merupakan hasil pemotongan dari grid global srtm 15 plus. Untuk keperluan tersebut kita memanggil perintah gmt grdinfo

user@kkomputer ~/GMT_Project $ gmt grdinfo srtm_ntt.grd
srtm_ntt.grd: Title: Produced by grdcut
srtm_ntt.grd: Command: grdcut srtm15-plus/topo15.grd -R118.5/127.5/-11.5/-7.5 -Gsrtm_ntt.grd
srtm_ntt.grd: Remark: Derived from the full resolution shorelinen
srtm_ntt.grd: Gridline node registration used [Geographic grid]
srtm_ntt.grd: Grid file format: nf = GMT netCDF format (32-bit float), COARDS, CF-1.5
srtm_ntt.grd: x_min: 118.5 x_max: 127.5 x_inc: 0.00416666666667 name: longitude [degrees_east] nx: 2161
srtm_ntt.grd: y_min: -11.5 y_max: -7.5 y_inc: 0.00416666666667 name: latitude [degrees_north] ny: 961
srtm_ntt.grd: z_min: -7079.01904297 z_max: 2847 name: z
srtm_ntt.grd: scale_factor: 1 add_offset: 0
srtm_ntt.grd: format: netCDF-4 chunk_size: 136,138 shuffle: on deflation_level: 3

Sekarang kita tahu nilai z minimal pada file srtm_ntt.grd adalah -7079 meter dan nilai z maksimumnya adalah 2847 meter. Menggunakan keterangan ini kita bisa membuat color palette table asimetri yang kita inginkan secara terpisah dengan memberikan perintah berikut ini:

$ gmt makecpt -Cabyss -T-7500/0/250 -Z -N > mynew.cpt
$ gmt makecpt -Cmod_arctic.cpt -T0/3000/500 -Z >> mynew.cpt

Atau kita bisa memasukkannya menjadi bagian dari keseluruhan script plotting basemap berikut ini:

#!/usr/bin/bash

# Plot Basemap Menggunakan CPT asimetri
# GMT 5.2.1
# oleh: Hendro Nugroho

gmt set MAP_FRAME_TYPE plain

# Data grid topografi: SRTM15 plus
ntt='srtm_ntt.grd'
ntti='srtm_ntt_i.grd'
out='basemap_ntt.ps'
area='-R118.5/127.5/-11.5/-7.5'
# abyss.cpt dam modofikasi arctic.cpt [download dari cpt-city]
cpt='asimetri.cpt'

gmt makecpt -Cabyss -T-7500/0/250 -Z -N > $cpt
gmt makecpt -Cmod_arctic.cpt -T0/3000/500 -Z >> $cpt

# plot grd plus iluminasi
gmt grdimage $ntt -JM8.5i -Xc $area -I$ntti -C$cpt -K > $out

# frame peta
gmt psbasemap $area -JM8.5i -Xc -Bxa2f1 -Bya1f1 -O -K >> $out

## peta garis pantai
gmt pscoast -R -JM -Xc -B -Di -Wthinnest -O -K >> $out

Peta hasil plotting menggunakan GMT ini bisa kita lihat dengan gs

$ gs basemap_ntt.ps

Sekarang Anda bisa mencoba sendiri membuat peta di atas menggunakan tabel warna yang sama atau menggunakan warna kesukaan Anda.
Mungkin Anda akan memadukan abyss.cpt dengan dem2.cpt? Silakan mencoba!

Plotting Peta Rote menggunakan data SRTM 1 Arc-Second

Kali ini kita akan memakai Generic Mapping Tool (GMT) untuk membuat peta Pulau Rote menggunakan data SRTM 1 Arc-Second. Data ini bisa anda unduh dari server USGS, NASA, CGIAR atau pun server lain. Pilihlah data SRTM yang telah dibenahi (void-filled) dengan menggunakan DEM lain (misalnya dengan data ASTER). Format file yang akan anda unduh bisa berupa file HGT yang dikompres, atau berupa Geo-Tiff file. File tersebut selanjutnya perlu diubah menjadi format grid supaya bisa dibaca oleh GMT.

Pada contoh ini saya mengunduh file dari server USGS. Dua file Geo-tiff [S11E122_1arc_v3.tif dan S11E123_1arc_v3.tif] tersebut saya gabungkan dengan menggunakan QGIS Desktop (Seandainya anda mau semua dikerjakan menggunakan GMT pun tidak lah menjadi masalah). Begitupula pengambilan subset khusus untuk pulau rote [122.583/123.500/-11.000/-10.367].

S11E122-and-S11E123-srtm-1arc-second

Figure 1. Geo-tiff S11E122 dan S11E123

$ gmt grdconvert rote1v3.tif rote1v3.grd

Selanjutnya script sederhana ini akan menghasilkan peta Pulau Rote dari data SRTM tadi.

#!/usr/bin/bash
# Plot Peta Pulau Rote dari SRTM 1 Arc-Second
# GMT 5.2.1
# Oleh: Hendro Nugroho

# 1. Download srtm 1 arc-second Geo-Tiff atau hgt file [S11E122.hgt.zip dan S11E123.hgt.zip] dari server penyedia [USGS, CGIAR atau server lain]
# 2. Uncompressed dua file tersebut dan gabungkan --> bisa memakai QGIS atau GMT
# 3. Ambil subset khusus untuk wilayah Pulau Rote saja [122.583/123.500/-11.000/-10.367]
# 4. Konversi menjadi grid file. Pastikan file dalam format GMT grid

grd_rote="rote1v3.grd"
grd_rote_i="rote1v3_i.grd"
mycpt="rt_globe.cpt"
hasil="peta_rote.ps"

# Membuat color pallet sendiri dari grid file
# gmt grd2cpt $grd_rote -Celevation -L0/500 -S0/500/50 > rt_elev.cpt
# gmt grd2cpt $grd_rote -Celevation -G-0.001/8500 -L0/500 -S0/500/25 > rt_etopo.cpt
gmt grd2cpt $grd_rote -Celevation -G0/10000 -L0/500 -S0/500/25 > rt_globe.cpt

# Membuat gradient untuk iluminasi plot rote
gmt grdgradient $grd_rote -A45 -Nt1 -Grote_i.grd

# Siapkan pemotong
gmt pscoast -R$grd_rote -JM8.5i -Xc -Df -Gc -K > $hasil

# Plot topografi dan ilumninasinya
gmt grdimage $grd_rote -I$grd_rote_i -C$mycpt -R -JM -Xc -Q -O -K >> $hasil

# Lepaskan pemotong
gmt pscoast -R -JM -Xc -O -K -Q >> $hasil

# Menggambar garis pantai GSHHG full
gmt pscoast -R -JM -Xc -Df -Wthinnest -B0.25g0.25 -B+t"Peta Pulau Rote" -O -K >> $hasil

# Menggambar kerangka dan skala peta
gmt psbasemap -R -JM -Xc -B -LjBR+c20+w40+f+o0.15i/0.2i -O -K >> $hasil

# Skala ketingginan dari warna palet
gmt psscale -DjTL+o0.3i/0.1i+w4i/0.2i+h -R -J -C$mycpt -Bx50f25 -By+lm -I -O -K >> $hasil

# Simbol orientasi peta
echo 123.375 -10.875 | gmt psxy -R -J -O -K -Sc1.4i -Gwhite >> $hasil
gmt psbasemap -R -J -O -K --FONT_TITLE=12p --MAP_TICK_LENGTH_PRIMARY=0.05i -Tm123.375/-10.875+w1i+t45/10/5+jCM --FONT_ANNOT_SECONDARY=8p >> $hasil

Inilah hasilnya:

rote_map

Figure 2. Peta Pulau Rote

Inilah Cara Memakai Generic Mapping Tools Tanpa Instalasi

Untuk Anda yang ingin memakai Generic Mapping Tools(GMT) secepatnya tanpa instalasi, OSGeo Live menawarkan kepada anda opsi tersebut. Tidak hanya GMT saja yang bisa Anda coba, melainkan berbagai software geospasial yang dikemas di dalamnya.

Anda bisa mengunduh Live CD/DVD yang langsung bisa dijalankan dari CD/DVD drive computer Anda, atau Live VM yang bisa Anda panggil dari virtual machine yang telah Anda setup sebelumnya. Apabila Anda suka, nantinya bisa diinstall permanen pada workstation Anda.

Dengan catatan bahwa Anda sudah mempunyai VirtualBox terpasang pada komputer kerja Anda, cara lain untuk memakai GMT adalah dengan mengunduh versi VirtualBox SEATREE (Solid Earth Teaching and Research Environment), yang merupakan  perangkat lunak moduler untuk penelitian Solid Earth yang bisa digunakan di kelas dan cocok dipakai untuk kolaborasi penelitian ilmiah multi disiplin. GMT versi 4 terpasang pada vmdk ini (Cukup banyak perbedaan antara GMT versi 4 dan versi 5. GMT 5 tidak kompatibel dengan GMT versi sebelumnya seperti telah dibahas pada laman ini).

Kelebihan menggunakan versi VirtualBox SEATREE  adalah integrasi paket-paket yang ada di dalamnya siap dipakai untuk keperluan penelitian tanpa perlu banyak setup. Ini tentu saja membuat Anda lebih terfokus pada penelitian dan bukan pada otak-atik komputer.

Ada dua versi VirtualBox SEATREE. Pertama, disebut dengan UGESCE yang merupakan paket software dan beberapa dataset dengan OS Fedora Core 14. Ke-2, adalah paket yang dikemas oleh CIG dengan OS dasar Ubuntu 14.04. Versi ke-2 ini, GMT tidak terpasang.

Apabila Anda sudah memakai Linux, instalasi GMT sangat mudah dilakukan. Ketikkan atau copy-paste saja perintah berikut pada terminal untuk melakukan instalasi GMT:

Ubuntu/Debian based:

sudo apt-get install gmt gmt-dcw gmt-gshhg

RHEL, CentOS, Fedora:

sudo yum install GMT gshhg-gmt-nc4-all dcw-gmt

Menelusuri Situs Generic Mapping Tools

Situs utama Generic Mapping Tools ada pada tautan berikut ini: http://gmt.soest.hawaii.edu/ 

Dengan menelusuri situs tersebut Anda akan menemukan laman web berisi manual (man pages) tiap modul dari GMT. Manual lengkap atau CookbookTutorial serta contoh-contoh script serta hasil pengeplotan yang telah ditata pada laman gallery 50 contoh akan membantu Anda belajar GMT secara cepat.

Tentu saja Anda perlu memulainya dengan mengunduh GMT baik melalui situs ini atau pun bisa memasangnya melalui paket distribusi OS (linux) Anda. Instalasi untuk masing-masing OS dijelaskan pada laman ini.

Untuk anda yang ingin melakukan kompilasi sendiri dari source file, Anda bisa mengikuti petunjuknya secara lengkap di sini.

Forum pengguna GMT disediakan untuk diskusi dan meminta bantuan apabila Anda mengalami kesulitan dalam instalasi maupun dalam menggunakan GMT.

Contoh Pemakaian GMT

Mari kita buat contoh pemakaian sederhana dari aplikasi Generic Mapping Tools (GMT) yang telah kita bahas pada posting sebelumnya.

#!/usr/bin/bash
# Memakai GMT versi 5.2.1
# Plot Peta Indonesia dan Peta Pulau Rote
# Demonstrasi resolusi garis pantai GSHHG low [-Dl] vs. full [-Df]

hasil1="peta_indonesia.ps"
hasil2="peta_rote.ps"
area1="-R94/142/-15/10"
area2="-R122:35/123:30/-11:02/-10:22"
# proyeksi Mercator; plot sebesar 8.5 inch
proyeksi="-JM8.5i"

# Kerangka peta sederhana satu garis
gmt set MAP_FRAME_TYPE plain

# Peta Indonesia dan garis pantai [-Dl]= garis pantai GSHHS resolusi rendah
gmt pscoast $area1 -Xc -Yr1.75i $proyeksi -Dl -Ba5 -N1 -Wthinnest > $hasil1
# Plot inset box Pulau Rote dengan warna merah
cat  $hasil1
122.58 -11.03
123.50 -11.03
123.50 -10.36
122.58 -10.36
122.58 -11.03
EOF

# Peta Pulau Rote dan garis pantai [-Df]= garis pantai GSHHS resolusi penuh
gmt pscoast $area2 -Xc $proyeksi -Df -Ba0.25 -N1 -Wthinnest > $hasil2

Hasilnya bisa kita lihat pada dua plot peta di bawah:

map-of-indonesia

Fig 1. Peta Indonesia

peta_rote

Fig 2. Peta Rote

GMT dengan data garis pantai GSHHG bawaan mempunyai resolusi data cukup tinggi untuk menampilkan peta yang kita inginkan.

Mengenal Generic Mapping Tools

Generic Mapping Tools (GMT) adalah sekumpulan perintah untuk pemrosesan data dan visualisasinya. Dalam pekerjaan sehari-hari, kita sering memperoleh data mentah (raw data)  dan kita akan berusaha memproses data tersebut untuk menghasilkan ilustrasi. Di sinilah salah satu peran GMT.

GMT mempunyai banyak kelebihan yang patut kita pertimbangkan sebelum memakainya. Perangkat lunak aplikasi ini dibuat menggunakan bahasa pemrograman C dan merupakan perangkat lunak yang tidak bergantung pada platform (platform independent). Dengan kata lain, GMT berkomunikasi dengan komputer  sangat cepat dan bisa dipasang pada berbagai lingkungan sistem operasi baik Unix, Windows, maupun Mac.

Skenario platform GMT antara lain: UNIX, Linux, Windows dengan dual-boot Linux, SFU, Cygwin, perintah MS-DOS, Server pada Mac OS maupun pada Mac OS itu sendiri.

Di kalangan para ilmuwan, GMT cukup terkenal dan tak kurang dari 15 ribu ilmuwan memakainya di seluruh dunia. Karena dikemas sebagai perangkat lunak sumber terbuka (open source), GMT menawarkan daya tarik yang sangat kuat bagi kalangan peneliti dan pendidikan. GMT bisa diunduh dan dipakai secara bebas tanpa perlu membayar.

GMT mempunyai lebih dari 80 modul (sampai versi 5.3.3 ada 90 modul dan terus aktif dikembangkan). Modul tersebut untuk memberikan fokus dan membatasi tugas tertentu (jangan salah, tiap modul memiliki banyak pilihan yang menjadikannya cukup rumit). Apabila digabungkan, maka tugas-tugas rumit akan bisa dikerjakan. Modul-modul ini biasanya dipanggil melalui CLI (command line interface)  atau melalui script.

Meskipun GMT bisa memproses dan memanipulasi data serta menghasilkan plot postscript dari data Anda, perlu diingat, bahwa GMT bukanlah paket pemrosesan citra, atau pun paket GIS.

Lalu apa sajakah yang bisa dilakukan GMT? pemfilteran deret waktu (time-series) dan data 2D, melakukan trend fitting data, membuat grid dari data xyz, memotong, menempelkan, mencampur data grid, melakukan resample kumpulan data, melakukan operasi matematika, melakukan penutupan grid, memproyeksikan data, membuat trianggulasi optimal, melakukan ekstrasksi subset data, menghitung turunan direksional, mengeplot diagram x-y, garis, poligon, maupun simbol, mengeplot teks dan label, mengeplot peta dasar (basemap) beserta garis pantai, sungai dan batas-batasnya, mengeplot peta kontur, serta masih banyak hal lagi yang bisa dilakukan GMT!