2/21/2016

Membuat Peta Gempa Bumi menggunakan Python

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

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/
 
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 = [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.

5 comments:

  1. Maaf Pak,
    Kemarin 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... :)

    ReplyDelete
    Replies
    1. Dipake aja Mas, tidak apa2, bebas kok. Toh saya juga dapat dari menyelam di Internet namun saya lupa untuk menambahkan referensi-nya hehehe

      Delete
    2. jika memakai OS windows packages apa pak yang harus diinstal? karena saya coba running program terjadi error.
      mohon penjelasannya, saya user baru
      terima kasih

      Delete
    3. Terima atas pertanyaannya.
      Silahkan 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.

      Delete
  2. SAYA PAKE YA PAK , MOHON IJIN ???

    ReplyDelete