Saturday, 7 September 2019

Membuat Peta Arah Vektor dengan GMT

Kali ini, saya akan membagikan cara membuat peta arah vektor. Peta ini bisa dipakai untuk menggambarkan arah dan besarnya pergeseran suatu titik. Disini saya akan menggunakan perintah psxy untuk menggambarkan arah vektor tersebut.
Pertama-tama, buatlah file yang berisi koordinat (bujur, lintang), arah azimuth dalam derajat, dan jarak pergeseran. Berikut ini contoh file yang saya gunakan dengan nama file data.dat :

101.7     -0.617   42    3.877
139.06    -2.69    33    0.433
139.34    -2.8     19    0.223
134       -2.24    11    2.268
137.96    -1.91    21    0.012
106.77    -7.22    7     2.294
137.4     -4.01    30    0.266
106.9     -7.06    31    2.52
139.05    -4.07    50    0.54
96.62      4.5     163   0.052
136.16    -2.93    178   0.154

..............................
 



Thursday, 15 August 2019

Membuat Peta Seismisitas Berbasis Waktu

Kali ini saya kan membagikan cara membuat peta seismisitas. Namun peta seismisitas yang saya buat, pewarnaannya berdasarkan waktu selisih antara waktu referensi dengan origin time gempa. Sehingga akan terlihat pola sebaran gempa yang terjadi dalam waktu yang saling berdekatan. Disini saya menggunakan data gempa Palu yang saya dapatkan dari repogempa.bmkg.go.id. Anda dapat menggunakan data saya disini.




Beralih Antara Beberapa Versi GMT Dalam Satu PC di Windows Dengan GMTSWITCH

Setelah sekian lama tidak saya update, kali isi saya akan berbagi cara untuk beralih antara beberapa versi GMT dalam satu PC di Windows. Saat ini, GMT telah memiliki beberapa versi, mulai dari GMT 4, GMT 5, hingga GMT 6 yang masih versi beta. Ada kalanya kita memerlukan skrip GMT yang telah kita buat di masa lampau dimana kita masih menggunakan GMT versi yang lama. Ada kalanya juga kita ingin mencoba versi GMT terbaru tapi malas untuk merubah skrip GMT kita yang terdahulu. Untuk mengatasinya, GMT telah menyediakan tool untuk berpindah dari satu versi GMT ke versi yang lain. Tool tersebut adalah GMTSWITCH.



Langkah pertama adalah kita harus menginstal GMT sesuai versi yang kita inginkan. Pada saat instalasi, akan muncul dialog yang menanyakan apakah kita akan menambahkan path instalasi GMT atau tidak. Selanjutnya pilih tidak.



Sunday, 14 April 2019

Membuat Peta Sederhana



Untuk membuat peta Indonesia sederhana, buatlah baris-baris perintah berikut di notepad dan simpan dengan ekstensi “.bat”

pscoast -R90/155/-15/15 -JM25c -Ba20g10 -G245/245/200 -S140/235/255 -Dh -Lf100/-10/0/500 > map.ps

Setelah dieksekusi akan muncul file "map.ps" di folder yang sama. Bukalah file tersebut dan hasilnya akan seperti ini.
 




Tuesday, 30 January 2018

Upward Continuation dengan GMT

Kali ini saya akan berbagi cara untuk melakukan upward continuation menggunakan GMT. Upward continuation adalah metode geofisika yang digunakan untuk memperkirakan nilai medan gravitasi atau medan magnet pada ketinggian tertentu. Teknik ini biasa digunakan untuk menggabungkan data yang diperoleh dari ketinggian yang berbeda-beda. Dengan teknik ini, data bisa diperkirakan nilainya pada ketinggian yang sama, sehingga saat digabungkan akan mengurangi data scattering sehingga analisis bisa dilakukan dengan mudah.

GMT menyediakan program untuk melakukan upward continuation, program tersebut adalah grdfft. Disini, saya akan memberikan contoh upward continuation pada data gravitasi yang didapat dati TOPEX (topex.ucsd.edu). Silakan download data gravitasi dan buat file gridnya dengan blockmean  dan surface. Saya tidak akan membahas cara untuk melakukan gridding karena sudah saya bahas di postingan sebelumnya.

Sunday, 16 July 2017

Menyusun Laporan Bulanan Magnet Bumi Dengan Python

Postingan kali ini tidak akan membahas mengenai GMT, tetapi mengenai pekerjaan rutin di kantor saya. Pekerjaan rutin tersebut adalah penyusunan laporan bulanan magnet bumi. Untuk menyusun laporan bulanan magnet bumi ini, dulu saya harus menghitung data magnet bumi rata-rata per menit menjadi rata-rata per jam secara manual menggunakan excel. Pekerjaan ini cukup memakan waktu. Kini saya telah menulis program Python untuk menyusun laporan bulanan ini. Input yang dibutuhkan adalah data magnet bumi dengan format IAGA-2002. Untuk menjalankan program, pastikan di komputer anda sudah terinstal Python 2.7. Pastikan juga modul-modul berikut sudah terpasang :
  • PyQt4
  • numpy
  • openpyxl
  • Matplotlib
  • Pillow


Thursday, 18 May 2017

Menampilkan Wind Barbs dengan GMT

Disini saya akan menjelaskan cara menampilkan Wind Barbs dengan GMT 5. Wind Barbs adalah diagram yang menunjukkan arah dan kecepatan angin. Untuk menampilkan diagram ini, kita harus membuat file definisi simbol Wind Barbs. File ini saya dapat dari sebuah forum di website GMT dan saya modifikasi agar mampu menampilkan data hingga kecepatan lebih dari 200 knot. File definisi tersebut dapat didownload disini. Setelah didownload, simpan di C:\programs\gmt5\share\custom. Download contoh data angin disini dan file cpt disini.


Monday, 24 April 2017

Membuat Animasi Peta Seismisitas

Kali ini saya akan berbagi cara membuat animasi dari peta seismisitas. Pada animasi ini, gempa akan muncul sesuai waktu kejadian dan gempa-gempa yang terdahulu lama kelamaan akan berubah transparansinya. Disini saya menggunakan GMT 5.3.1 di Windows 7. Animasi ini bisa juga dijalankan di Linux namun ada beberapa bagian yang harus dirubah. Sebelumnya pastikan di komputer anda telah terpasang program ImageMagick. Program ini akan saya gunakan untuk mengonversi kumpulan file image menjadi satu file GIF.


Pertama-tama buatlah file .bat berikut dan download file-file pendukung yang sudah ada di link-link dibawah ini kemudian jalankan :

>> set F=animasi.ps
>> set R=95.85/96.5/5/5.65
>> set JM=15
>> set data=data.txt
>> 
>> mkdir tmp
>> @echo off
>> #BARIS AWAL DATA SETELAH HEADER ADALAH BARIS KE 14
>> set start=14
>> set num2=1 
>> for /f "delims=*" %%a in ('gawk "END {print NR}" %data%') do set stop=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $1}" %data%') do set year=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $2}" %data%') do set month=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $3}" %data%') do set day=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $4}" %data%') do set hour=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $5}" %data%') do set minute=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-|.]" "NR==%start% {printf \"%%i\", $6}" %data%') do set second=%%a
>> 
>> #HITUNG JUMLAH DETIK
>> set /a z=(14-100%month%%%100)/12, y=10000%year%%%10000-z
>> set /a ut=y*365+y/4-y/100+y/400+(153*(100%month%%%100+12*z-3)+2)/5+%day%-719469
>> set /a waktu=ut*86400+100%hour%%%100*3600+100%minute%%%100*60+100%second%%%100
>> gawk "NR==%start%  {print %waktu%-25200,$0}" %data% > datatmp
>> 
>> :loop
>> set /a start= %start% + %num2%
>> if %start% GTR %stop% goto close
>> goto open
>> 
>> :open
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $1}" %data%') do set year=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $2}" %data%') do set month=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $3}" %data%') do set day=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $4}" %data%') do set hour=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-]" "NR==%start% {printf \"%%i\", $5}" %data%') do set minute=%%a
>> for /f "delims=*" %%a in ('gawk -F"[\t|:|-|.]" "NR==%start% {printf \"%%i\", $6}" %data%') do set second=%%a
>> set /a z=(14-100%month%%%100)/12, y=10000%year%%%10000-z
>> set /a ut=y*365+y/4-y/100+y/400+(153*(100%month%%%100+12*z-3)+2)/5+%day%-719469
>> set /a waktu=ut*86400+100%hour%%%100*3600+100%minute%%%100*60+100%second%%%100
>> gawk "NR==%start%  {print %waktu%,$0}" %data% >> datatmp
>> goto loop
>> 
>> :close
>> echo on
>> 
>> #MENAMBAHKAN WAKTU SATU JAM SEBELUM DATA AWAL DAN SATU JAM SETELAH DATA AKHIR DENGAN STEP 360 DETIK ATAU 6 MENIT
>> for /f "delims=*" %%a in ('gawk "NR==1 {print $1-3600}" datatmp') do set starteq=%%a
>> for /f "delims=*" %%a in ('gawk "END {print $1+3600}" datatmp') do set stopeq=%%a
>> set step=360
>> 
>> :loopeq
>> set /a starteq= %starteq% + %step%
>> if %starteq% GTR %stopeq% goto closeeq
>> goto openeq
>> 
>> :openeq
>> #MEMBUAT PETA SEISMISITAS
>> pscoast -R%R% -JM%JM% -Dh -W1 -K -Slightblue -Gpalegreen4 -B0.3 > %F%
>> psxy -R -JM sesar.gmt -K -O -W1,black >> %F%
>> psxy -R -JM jlnlokal.gmt -K -O -W1,gray >> %F%
>> psxy -R -JM jlnkolektor.gmt -K -O -W1,white >> %F%
>> psxy -R -JM jlnarteri.gmt -K -O -W2,khaki2 >> %F%
>> echo 96 5.32 Sigli | pstext -R -JM -O -K -F+f12,Bookman-Demi >> %F%
>> 
>> #SET TRANSPARANSI UNTUK DATA GEMPA YANG SUDAH TERJADI
>> gawk "{if ($1<=%starteq%) print $5,$4,$6,$7*0.04}" datatmp | psxy -R -JM -Sci -Ctabel.cpt -W1 -O -t80 -K >> %F%
>> gawk "{if ($1>%starteq% && $1<=%starteq%+%step%) print $5,$4,$6,$7*0.04}" datatmp | psxy -R -JM -Sci -Ctabel.cpt -W1 -O -t60 -K >> %F%
>> gawk "{if ($1>%starteq%+%step% && $1<=%starteq%+%step%+%step%) print $5,$4,$6,$7*0.04}" datatmp | psxy -R -JM -Sci -Ctabel.cpt -W1 -O -t40 -K >> %F%
>> gawk "{if ($1>%starteq%+%step%+%step% && $1<=%starteq%+%step%+%step%+%step%) print $5,$4,$6,$7*0.04}" datatmp | psxy -R -JM -Sci -Ctabel.cpt -W1 -O -t20 -K >> %F%
>> gawk "{if ($1>%starteq%+%step%+%step%+%step% && $1<=%starteq%+%step%+%step%+%step%+%step%) print $5,$4,$6,$7*0.04}" datatmp | psxy -R -JM -Sci -Ctabel.cpt -W1 -O -K >> %F%
>> gawk "BEGIN {print strftime(\"%%d-%%m-%%Y %%H:%%M:00 UTC\",%starteq%);}" | gawk "{print 96.35,5.6,$0}" | pstext -R -JM -O -F+f12,Bookman-Demi -K >> %F%
>> pscoast -R95/99/2/6 -JM4 -Dh -W1 -K -O -Slightblue -Gwhite -B3::wEsN --MAP_FRAME_TYPE=plain --FONT_ANNOT_PRIMARY=8p >> %F%
>> echo 95.85 5 > kotak
>> echo 95.85 5.65 >> kotak
>> echo 96.5 5.65 >> kotak
>> echo 96.5 5 >> kotak
>> echo 95.85 5 >> kotak
>> psxy -R -JM kotak -O -W1,red >> %F%
>> psconvert -A -Tg -P %F% -Ftmp\%starteq% -E100
>> 
>> goto loopeq
>> :closeeq
>> 
>> #KONVERSI KE FILE GIF DENGAN DELAY 10 (FPS=100/10=10) DAN LOOP 0 (KEMBALI KE AWAL)
>> convert -delay 10 -loop 0 tmp/*.png animasi.gif
>> del datatmp gmt.history kotak %F% 
>> rd /S /Q tmp

Proses ini akan memakan waktu yang cukup lama tergantung kemampuan komputer. Anda juga dapat menggunakan data gempa anda sendiri. Pada animasi diatas, saya mendownload data dari repogempa BMKG dan menggunakan data gempa Pidie Jaya yang terjadi akhir 2016 silam. Selamat mencoba. Salam.

Sunday, 18 December 2016



Monday, 12 December 2016

Membuat Windrose dengan psrose

Setelah sebelumnya saya berbagi cara membuat diagram sektor, kali ini saya kan berbagi cara membuat windrose. Windrose adalah diagram yang menggambarkan informasi mengenai kecepatan dan arah angin pada suatu lokasi tertentu. Digambarkan dalam format melingkar dengan skema frekuensi angin yang berhembus dari arah tertentu. Panjang setiap mahkota menunjukkan tingkat frekuensi berhembusnya angin dari arah tersebut, bernilai nol di pusat dan terus meningkat hingga tepi (kata Wikipedia).


 

Sunday, 11 December 2016

Membuat Polar Histogram dengan psrose

Setelah sekian lama, kali ini saya akan membagikan cara membuat polar histogram dengan perintah psrose. Perintah psrose dapat digunakan untuk membuat diagram rose, sektor, atau windrose. GMT yang saya gunakan kali ini adalah GMT 5. Ada dua data yang diperlukan oleh psrose, data tersebut adalah panjang dan azimuth vektor. 



Friday, 14 August 2015

Membuat Grafik 3D

Pada kesempatan kali ini, saya akan menjelaskan cara membuat grafik 3D yang dioverlay dengan peta. Data yang akan saya buat grafiknya adalah data kejadian tsunami di Indonesia. Data yang dipakai pada contoh ini hanya perkiraan saja.