Tujuan dari tulisan kali adalah membuat Peta Gempa Bumi seperti pada gambar di bawah ini dengan menggunakan Python. Untuk mengetahui bagaimana cara membuatnya, silahkan baca lebih lanjut tulisan ini.
Install Packages
OS yang saya gunakan adalah Ubuntu, jadi packages yang perlu diinstal yakni sebagai berikut
sudo apt-get install python-matplotlib
sudo apt-get install python-mpltoolkits.basemap
(Diupdate 18 Agustus 2016)
Untuk pengguna Windows, cara menginstall python dan basemap dapat dilihat pada link berikut ini
http://gear-second19.blogspot.jp/p/install-basemap-di-windows.html
http://gear-second19.blogspot.jp/p/install-basemap-di-windows.html
Membuat Peta
Pertama, kita akan membuat peta sederhana dengan cukup menjalan program python di bawah ini
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='ortho', lat_0=0, lon_0=125,
resolution='l', area_thresh=1000)
plt.figure()
peta.drawcoastlines()
plt.show()
Menambahkan detail negara
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='ortho', lat_0=0, lon_0=125,
resolution='l', area_thresh=1000)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
plt.show()
Memberi warna gray
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='ortho', lat_0=0, lon_0=125,
resolution='l', area_thresh=1000)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.fillcontinents(color='gray')
plt.show()
Memberi warna coral
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='ortho', lat_0=0, lon_0=125,
resolution='l', area_thresh=1000)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.fillcontinents(color='coral')
plt.show()
Memberi warna bluemarble
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='ortho', lat_0=0, lon_0=125,
resolution='l', area_thresh=1000)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.bluemarble()
plt.show()
'Robin' Projection
Sebelum menjalan program di bawah ini pastikan RAM anda cukup, misal 4GB.
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='robin', lat_0=0, lon_0=125,
resolution='l', area_thresh=10000)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.bluemarble()
plt.show()
Diperbesar
saat anda memperbesar peta, jangan lupa perhatikan rentang longitude dan latitude-nya.
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='merc', lat_0=0, lon_0=125,
resolution='l', area_thresh=1000,
llcrnrlon=90, llcrnrlat=-15,
urcrnrlon=155, urcrnrlat=15)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.bluemarble()
plt.show()
Resolusi
Untuk membuat gambar tampak lebih detail, area_thresh = 1000 $\text{km}^2$ dibuat menjadi lebih kecil lagi, misalkan 0.1 $\text{km}^2$.
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='merc', lat_0=0, lon_0=125,
resolution='l', area_thresh=0.1,
llcrnrlon=90, llcrnrlat=-15,
urcrnrlon=155, urcrnrlat=15)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.bluemarble()
plt.show()
Plot sebuah titik
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
peta = Basemap(projection='merc', lat_0=0, lon_0=125,
resolution='l', area_thresh=0.1,
llcrnrlon=90, llcrnrlat=-15,
urcrnrlon=155, urcrnrlat=15)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.bluemarble()
lon = 114
lat = -2
x, y = peta(lon,lat)
peta.plot(x,y,'ro',markersize=5)
plt.show()
Plot data gempa Bumi di Indonesia
Data gempa Bumi di Indonesia dapat didownload di website BMKG http://inatews.bmkg.go.id/
import matplotlib.pyplot as plt
peta = Basemap(projection='merc', lat_0=0, lon_0=125,
resolution='l', area_thresh=0.1,
llcrnrlon=90, llcrnrlat=-15,
urcrnrlon=155, urcrnrlat=15)
plt.figure()
peta.drawcoastlines()
peta.drawcountries()
peta.bluemarble()
lon = [140.54,96.01,117.73,128.17,126.97,119.72,
106.72,123.65,99.15,127.28,110.43,123.71,
123.61,140.58,129.53,133.44,127.45,99.11,
119.42,128.03,96.2,133.33,123.6,140.33,
123.69,115.73,126.59,113.03,119.34,131.3,
128.33,130.7,107.03,122.53,129.04,94.53]
lat = [-2.6,4.8,-9.65,-3.4,3.8,-0.4,-7.26,-10.29,
-0.58,-3.8,-7.94,-10.52,-10.2,-2.54,-0.19,
-2.26,1.93,-2.64,-10.59,-2.75,2.66,-2.18,
-10.38,-2.5,-10.1,-8.39,4.04,-9.17,-9.77,
-0.64,-3.81,-0.73,-7.35,-5.4,0.91,5.18]
x, y = peta(lon,lat)
peta.plot(x,y,'ro',markersize=5)
plt.show()
Listing program dapat di download di link ini.
Jangan lupa, untuk menjalankan program tersebut, ketik di terminal anda seperti contoh berikut
python namafile
Selamat mencoba dan semoga bermanfaat.
Maaf Pak,
ReplyDeleteKemarin saya mendapat tugas untuk membuat kode python untuk link ini >> https://users.hepforge.org/~dgrell/ictp16/landcover.html. Boleh tidak saya menggunakan/memodifikasi kode bapak untuk membuat program dengan tsb spesifikasi sbb:
1. Input: koordinat, output: land / water?
2. Input: koordinat gempa (extra task1), output: pusat gempa di darat atau di laut..?
3. Input: koordinat, output: plot peta 10'x10' (extra task 2)
Mohon petunjuknya Pak... :)
Dipake aja Mas, tidak apa2, bebas kok. Toh saya juga dapat dari menyelam di Internet namun saya lupa untuk menambahkan referensi-nya hehehe
Deletejika memakai OS windows packages apa pak yang harus diinstal? karena saya coba running program terjadi error.
Deletemohon penjelasannya, saya user baru
terima kasih
Terima atas pertanyaannya.
DeleteSilahkan buka link berikut ini http://gear-second19.blogspot.jp/p/draft.html
Pada bagian python, buka saja "install basemap di Windows". Di situ terdapat langkah2 menginstall python dan package dasar yang dibutuhkan untuk membuat peta.
Semoga programnya berhasil dijalankan.
SAYA PAKE YA PAK , MOHON IJIN ???
ReplyDelete