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. 



Berikut ini adalah skripnya:

>> set F=peta.ps
>>
>> #KOORDINAT STASIUN
>> set lon=97.5755
>> set lat=1.3039
>>
>> #PARAMETER VEKTOR
>> set amp=0.7
>> set azm=146
>>
>> #BATAS KOORDINAT PETA
>> for /f "delims=*" %%a in ('gawk "BEGIN {print %lat%+5}" ') do set atas=%%a
>> for /f "delims=*" %%a in ('gawk "BEGIN {print %lat%-5}" ') do set bawah=%%a
>> for /f "delims=*" %%a in ('gawk "BEGIN {print %lon%-5}" ') do set kiri=%%a
>> for /f "delims=*" %%a in ('gawk "BEGIN {print %lon%+5}" ') do set kanan=%%a
>> set R=%kiri%/%kanan%/%bawah%/%atas%
>>
>> #PLOT PETA
>> pscoast -JM17 -R%R% -B1 -Dh -W0.4 -K --PS_MEDIA=625px625p -Glightgreen -Slightblue > %F%
>> echo %lon% %lat% | psxy -R -JM -O -K -Sc0.3 -Gblack >> %F%
>> echo %amp% %azm% | psrose -M24p+gred+e -Wred -L270/90/180/0 -A -S2i  -R0/1/0/360 -B0.2g0.2/30g30 -O -Xc -Yc --FONT_LABEL=12p --MAP_FRAME_PEN=1p --MAP_GRID_PEN_PRIMARY=0.5p --MAP_DEFAULT_PEN=4p >> %F%
>>
>> #PRINT GAMBAR
>> psconvert %F% -A -Tg -P


Simpan dengan ekstensi .bat lalu jalankan.

Pada peta diatas, saya mengoverlay antara peta biasa dengan diagram sektor. Peta biasa mempunyai sistem koordinat geografis, sedangkan diagram sektor sistem koordinatnya adalah kartesian. Sehingga sulit untuk mengoverlaynya secara langsung. Untuk mengakalinya, saya meletakkan diagram tepat di tengah-tengah peta. Sehingga lokasi titik yang menjadi acuan (misalnya stasiun) saya letakkan juga di tengah.

Pada peta diatas, posisi stasiun (titik acuan) adalah di koordinat 97.5755 BT dan 1.3039 LU. Sehingga peta saya batasi pada radius 5 derajat. Untuk merubahnya dengan nilai radius yang lain ddapat dilakukan di bagian gawk.

Selanjutnya pada bagian plot peta, saya tampilkan garis pantai dengan pscoast. Pada bagian tersebut terdapat baris --PS_MEDIA=625px625p. Artinya saya akan membuat peta seakan-akan pada kertas ukuran 625p x 625p. Nilai ini saya dapat dari coba-coba dengan menghubungkan nilai di -JM17. Jika nilai pada -JM atau --PS_MEDIA diubah, peta tidak akan tepat posisinya. Kemudian saya membuat lingkaran kecil berwarna hitam sebgai titik acuan menggunakan psxy.

Selanjutnya, baris echo %amp% %azm% | psrose -M24p+gred+e -Wred -L270/90/180/0 -A -S2i  -R0/1/0/360 -B0.2g0.2/30g30 -O -Xc -Yc --FONT_LABEL=12p --MAP_FRAME_PEN=1p --MAP_GRID_PEN_PRIMARY=0.5p --MAP_DEFAULT_PEN=4p >> %F% adalah baris untuk menampilkan diagram. Pada diagram tersebut, saya menentukan panjangnya sebesar 0.7 sebagai variabel %amp% dan arahnya 146 derajat sebagai variabel %azm%.

Bagian -M24p+gred+e digunakan untuk parameter vektornya, baris tersebut artinya menampilkan vektor (mata panah) berukuran 24p berwarna merah (+gred) dan diletakkan diakhir garis (+e).  
Bagian -Wred artinya garis pada vektor akan berwarna merah.
Bagian -L270/90/180/0 digunakan untuk menentukan label yang akan ditampilkan pada arah mata angin.
Bagian -A artinya diagram akan ditampilkan sebagai sektor, jika akan ditampilkan sebagai diagram rose, ubah menjadi -Ar dan tentukan lebarnya, misal -Ar10.
Bagian -S2i artinya diagram akan ditampilkan pada ukuran 2i.
Bagian -R0/1/0/360 artinya diagram ditampilkan pada batas radius antara 0 sampai 1 dan azimuth antara 0 sampai 360 derajat.
Bagian -B0.2g0.2/30g30 artinya interval diagram sebesar 0.2 pada variabel panjang dan 30 derajat pada azimuthnya.
Bagian -O artinya baris tersebut akan dioverlay dengan baris sebelumnya.
Bagian -Xc -Yc artinya diagram akan digeser ke tengah-tengah peta.
Bagian --FONT_LABEL=12p artinya label pada penjuru mata angin sebesar 12p.
Bagian --MAP_FRAME_PEN=1p artinya tebal garis tepi diagram sebesar 1p.
Bagian --MAP_GRID_PEN_PRIMARY=0.5p artinya tebal garis pada interval diagram sebesar 0.5p.
Bagian --MAP_DEFAULT_PEN=4p artinya tebal garis pada arah vektor sebesar 4p.

Terakhir, simpan file menjadi format PNG dengan psconvert. Perintah psconvert sama dengan perintah ps2raster. Perintah ini baru ada di GMT versi 5.3.0 ke atas.

Selamat mencoba, semoga bermanfaat.


1 comment:

  1. Assalamualaikum wr.wb.
    Izin bertanya pak, itu kan script untuk daerah sumatera. Jika ingin menentukan arah azimuth di daerah lain hanya mengubah nilai long, lat, azimuth dan amplitudo nya saja?
    Terima kasih

    ReplyDelete