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.


Saturday, 20 June 2015

Membuat Animasi Dengan GMT

Kali ini saya akan berbagi cara membuat animasi dengan GMT. Untuk membuat animasi, kita menggunakan program tambahan yaitu ImageMagick. Sebelumnya, download ImageMagick disini. Kemudian ekstrak dan letakkan di folder C:\programs. Selanjutnya lakukan setting environment dengan cara masuk ke Control Panel > System and Security > System. Klik Advanced system settings. Pada tab Advanced klik Environment Variables. Kemudian pada User Variables klik path dan edit. Pada Variable value tambahkan ";C:\programs\ImageMagick-6.9.1-5" tanpa tanda petik dan ingat untuk menggunakan tanda ";" sebelum lokasi folder. Atau sesuaikan dengan versi ImageMagick anda. Disini instalasi ImageMagick selesai.



Monday, 25 May 2015

Membuat Peta Kontur Model IGRF

Sekian lama tidak diupdate, kali ini saya akan berbagi cara membuat peta kontur intensitas medan magnet dari model IGRF (International Geomagnetic Reference Field). Terinspirasi dari pertanyaan kawan yang menanyakan cara mengambil data IGRF di beberapa lokasi sekaligus, saya kembangkan menjadi cara membuat peta kontur intensitas medan magnetnya. Perlu diketahui bahwa model IGRF diupdate setiap 5 tahun sekali. Di GMT 5 (GMT 5.1.0) telah tersedia data IGRF dari tahun 1900-2015. Sehingga data yang bisa digunakan hanya sampai tanggal 1 Januari 2015. Di versi terbaru dari GMT 5 (GMT 5.1.2) mungkin hal ini telah diupdate. Saya sendiri belum mencoba GMT 5.1.2.

Disini kita menggunakan perintah "mgd77magref" untuk mengambil data IGRF. Contoh syntax modul ini adalah:

echo 98 3.5 | mgd77magref -A+a1+t1989-10-29T10:00:00 -Frt/0

98    3.5     41464.6232039

Saturday, 21 March 2015

Install Geopsy di Ubuntu

Geopsy adalah software yang digunakan untuk pengolahan sinyal seismik. Software ini adalah software open source dan dapat diinstall di sistem operasi Windows, Linux, maupun Mac. Kali ini saya akan menjelaskan cara menginstal Geopsy di Ubuntu. Geopsy yang saya akan install adalah versi 2.7.0 di Ubuntu 14.04 LTS 64 bit.



Thursday, 11 December 2014

Install GMT 5 Pada Ubuntu

Untuk menginstal rilis terbaru GMT 5 pada Ubuntu, kita dapat mendownloadnya di website GMT atau menggunakan subversion. Kali ini saya akan menggunakan subversion untuk menginstal versi terbaru GMT.

Pertama, install subversion, cmake, dan library pendukung lainnya. Kemudian jalankan subversion.

sudo apt-get install subversion
sudo apt-get install cmake
sudo apt-get install libnetcdf-dev
svn checkout svn://gmtserver.soest.hawaii.edu/gmt5/trunk gmt5-dev

Subversion akan membutuhkan waktu yang agak lama untuk mendownload file-file GMT tergantung kecepatan koneksi internet anda. Setelah selesai, akan terbentuk folder gmt5-dev di /home. Selanjutnya downloadlah file-file GSHHG dan DCW. Ekstrak GSHHG dan rename foldernya dengan nama "coast" dan salin ke gmt5-dev/share. Begitu juga dengan DCW, ekstrak dan rename foldernya dengan nama "dcw" dan salin ke gmt5-dev/share.

Monday, 8 December 2014

Menampilkan Relief Bathymetri Pada Peta

Setelah sekian lama vakum, kali ini saya akan menjelaskan cara untuk menampilkan relief bathymetri pada peta. Pada contoh ini, saya menggabungkan antara data usia kerak samudera global dengan relief bathymetri. Perhatikan pada peta dibawah. Wilayah di sebelah kiri bujur 80 derajat hanya menampilkan data usia kerak samudera, sedangkan data di sebelah kanan bujur 80 derajat menampilkan data usia kerak samudera yang digabung dengan relief bathymetri. Data usia kerak samudera global didapat dari EarthByte dan data bathymetri dari GEBCO. Saya menggunakan GMT versi 5.