Halaman

Rabu, 05 Februari 2014

GMT and my blog

Beberapa hari ini saya bekerja dengan sebuah aplikasi open source untuk pemetaan, namanya Generic Mapping Tools (GMT) besutan Paul Wessel dan Walter Smith. bagi yang pake mac cara install nya pernah saya tulis di sini GMT on your MAC.  Tentu saja sumber terbaik untuk belajar otodidak adalah internet :) saya belajar banyak dari sebuah blog orang indonesia yang khusus menuliskan contoh-contoh aplikasi GMT ini pada pekerjaannya. Lantas saya kepikiran, keren juga kalau blog ini saya khususkan untuk satu tujuan yang bisa berguna bagi banyak orang. Misalnya tutorial MATLAB atau khusus resensi buku, sehingga pengunjung bisa mendapat manfaat dari berkunjung ke sini. Sebenarnya saya sempat menulis juga dibeberapa blog pribadi yang dibuat khusus seperti itu. Setidaknya saya ingat saya pernah mencoba menulis sebuah blog yang khusus membahas bencana alam, tapi tidak pernah bisa konsisten :p energi dan stamina saya tidak pernah sehebat itu :)

tapi lantas saya membuang jauh-jauh ide itu. saya ingat untuk apa blog ini pertama kali saya buat. Sesungguhnya saya hanya berniat mengekalkan apa-apa yang ingin saya ingat sedikit lebih lama sebelum lenyap bersenyawa dengan udara. Menulis di buku catatan atau sebuah jurnal konvensional tentu tidak cocok dengan saya yang urakan ini. Saya pernah rajin menulis buku harian, tapi itu dulu sekali. Sekarang saya ingin menulis kapan saya mau dan tentang apa saja yang saya mau, dan blog adalah sarana yang tepat menurut saya. saya bisa menulis kapan saja saya ingin, selama cakupan sinyal atau koneksi internet tersedia.

Tujuan itu tentu sebuah keinginan pribadi saya, saya tidak pernah berpikir untuk dibaca oleh orang lain. Dikemudian hari, mengetahui ada orang-orang yang suka berkunjung ke blog ini adalah kejutan bagi saya yang hina ini. Mereka mau membuang waktu untuk membaca sampah-sampah yang saya tuliskan di sini, jadi rasanya saya harus berterimakasih :) tapi saya memutuskan untuk tetap pada niat saya semula ketika menulis blog ini, saya akan menuliskan apa saja semau saya dan kapan saja saya suka. Bukan tidak menghargai kalian-kalian yang menyempatkan diri main ke sini, Ah, saya yakin orang-orang yang mampir ke sini pasti paham, karena toh sebagian besar kalian adalah orang-orang yang mengenal saya secara personal :)

nah karena ada judul GMT nya jadi mari pindah ke topik ini :p GMT adalah aplikasi pemetaan yang cukup menyenangkan untuk saya, kita bisa menghasilkan peta yang baik dengan mudah menggunakan aplikasi ini. misalnya script sederhana ini :

#!/bin/sh
#slice.sh
#4/2/12
gmtset ANNOT_FONT_SIZE 10 LABEL_FONT_SIZE 10
grdimage indo.nc -R102/108/-8/-4 -JM15 -Celev.cpt  -K -B2g1 > map2.ps
psbasemap -R -JM15 -B2g1  -K -O -Lf107/-4.25/0/100k+u  >> map2.ps
psxy tes.d -R102/108/-8/-4 -JM15 -B -W4 -K -P -m -O>>map2.ps
psxy trench.gmt -R102/108/-8/-4 -JM15 -W8 -Sf2.8i/0.08ilt -Gblack -K -O -m>>map2.ps
psmeca focalsunda.gmt -R -JM15 -B -Sm0.5/-1 -Ztabel.cpt -T0 -K -O>>map2.ps
psxy line2.dat -JM -R -W10 -O -K >>map2.ps
pstext line2.dat -JM -R -O -K >>map2.ps
psscale -Ctabel.cpt -D0.8/0.4/3/0.5 -B:"km":/:"Depth":  -K -X0.2 -Y1.85 -O >> map2.ps

akan memberikan peta selat sunda yang cantik seperti ini :
mari kita bahas perintahnya satu-satu :

gmtset ANNOT_FONT_SIZE 10 LABEL_FONT_SIZE 10 
yang ini gampang ditebak. perintah untuk memberikan nilai besar huruf notasi seperti tulisan km dan depth pada skala warna, dan berlaku pada seluruh script ini kecuali dinyatakan lain pada baris di bawah nya

grdimage indo.nc -R102/108/-8/-4 -JM15 -Celev.cpt  -K -B2g1 > map2.ps
baris kedua ini adalah perintah plotting topografi, datanya ada dalam file indo.nc, ini data topografi dari GEBCO sepertinya yang disimpan dengan format netcdf -R menyatakan batas peta 102/108 adalah longitude minimum dan maksimum -8/-4 adalah latitude minimum dan maksimum -C merupakah perintah untuk mengeset warna sesuai dengan data warna dan topografi yang ada dalam file elev.c -K bearti ada perintah gmt berikutnya -B2g1 bearti label grid setiap 2 derajad dan garis grid nya setiap 1 derajad. kemudian hasilnya dimasukkan ke dalam file postscript map2.ps -J adalah perintah untuk memilih proyeksi peta yang ingin digunakan.

psbasemap -R -JM15 -B2g1  -K -O -Lf107/-4.25/0/100k+u  >> map2.ps
ini saya gunakan untuk menampilkan skala yang terlihat di pojok kanan atas. Atribut -Lf bearti tampilkan skala. 107/-4.25 tentu saja koordinat 0/100 adalah rentang skala jarak yang ingin ditampilkan.

psxy tes.d -R102/108/-8/-4 -JM15 -B -W4 -K -P -m -O>>map2.ps
nah ini adalah perintah untuk membuat garis hitam yang ada pada peta, yang ini adalah garis sesar-sesar yang ada di sumatera dan jawa. datanya tersedia pada file tes.d isinya kira-kira seperti ini :

>
94.17282685390613 7.036983077965203
94.533202833978336 6.522160249290608
....
>
94.184620948317587 7.909029461210433
94.264374484810986 7.612802039949257
.....

ini adalah data garis multi segmen dipisahkan oleh baris yang berisi lambang >
untuk multi segmen, maka perintah psxy harus diberikan atribut -m 

psxy trench.gmt -R102/108/-8/-4 -JM15 -W8 -Sf2.8i/0.08ilt -Gblack -K -O -m>>map2.ps
baris ini untuk plotting trench yang wujudnya terlihat sebagai garis dengan segitiga hitam itu, ini lambang untuk penunjaman.

psmeca focalsunda.gmt -R -JM15 -B -Sm0.5/-1 -Ztabel.cpt -T0 -K -O>>map2.ps
perintah psmeca adalah perintah untuk melakukan plotting beachball, bola-bola dengan orientasi mekanisme gempa. -Ztabel.cpt bearti beach ball nya akan diwarnai dengan data yang ada dalam file tabel.cpt -Sm merupakan informasi mengenai format data mekanisme fokus gempa yang digunakan. -Sm bearti format CMT Havard.

pstext line2.dat -JM -R -O -K >>map2.ps
yang ini untuk plotting tulisan A & B pada gambar. data koordinatnya ada di dalam file line2.dat seperti ini :
104.6 -7.8 14 0 1 TC A
105.2 -5.8 14 0 1 BC B

yaitu x y fontsize azimuth fonttype allignment text

psscale -Ctabel.cpt -D0.8/0.4/3/0.5 -B:"km":/:"Depth":  -K -X0.2 -Y1.85 -O >> map2.ps
baris ini untuk memunculkan skala warna yang terlihat di pojok kiri bawah. -B:"km":/:"Depth": adalah atribut untuk memberikan label sumbu x dan sumbu y.

sekarang, dengan scrip berikut kita dapat menampilkan cross section nya :

#!/bin/sh
pstext line3.dat -R-7.8/-5.8/-3/100 -JX12/-15 -K -N > raga.ps
pscoupe focalsunda.gmt -R-7.8/-5.8/-3/100 -JX12/-15 -Aa104.6/-7.8/105.2/-5.8/90/15/0/100f -Sm0.5 -Ztabel.cpt -K -Ba30:"Distance(Km)":/a10:"Depth(Km)":NEsw -O>>raga.ps
#pstext line3.dat -R -JX -K -N -O >> raga.ps
gawk '{print $2, $4*(-0.001)}' tracked | psxy -JX -R -N -W5.0 -K -O>> raga.ps
psscale -Ctabel.cpt -D0.8/0.4/3/0.5 -B:"km":/:"Depth":  -K -X0.2 -Y1.85 -O >>raga.ps


hasilnya akan seperti ini :

yup, segitu dulu. ternyata jadi terlalu panjang tulisannya :) hehehehe

1 komentar:

Unknown mengatakan...

kak, mau tanya untuk format data yang digunakan harus sh/ps juga ya? soalnya data saya masih dalam format txt.