Sunday, September 19, 2021

16-Python : Basemap Plotting With Etopo

 Assalam wbt. Jumpa lagi.

Post lalu kita telah melihat asas plotting basemap. Post kali ini saya akan berkongsi sedikit tambahan daripada post ke 15 yang lalu dengan mempelbagaikan map bagi tujuan tertentu. Kali ini saya akan menggunakan peta Etopo bagi menghasilkan peta yang cantik dan jelas kelihatan topografi mukabumi di sesebuah kawasan atau negara.

Seperti biasa copy skrip berikut dan save kepada nama yang korang tentukan sendiri serta simpan di folder kerja semasa.

## copy script from here##
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap, cm

plt.rcParams.update({'font.size':12,'font.family':'arial'})

## setting frame size
fig = plt.figure(figsize=(10,8))

## setting area if interest
lat_min = -5
lat_max = 15.1
lon_min = 95
lon_max = 130

## main command plotting basemap
map = Basemap(projection = 'merc', llcrnrlat=lat_min, urcrnrlat=lat_max,llcrnrlon=lon_min, urcrnrlon=lon_max, resolution='h')

## draw coastlines
map.drawcoastlines(linewidth=0.5)

## draw countries boundary
map.drawcountries(linewidth=0.5)

## plot ETOPO
map.etopo()

## draw parallel lines
map.drawparallels(np.arange(-90,91,5),fontsize=10,
   labels=[1,0,0,0],color='black',linewidth=0.25)

## draw meridian lines
map.drawmeridians(np.arange(-180,180,5),fontsize=10,
labels=[0,0,0,1],color='black',linewidth=0.25)

## plot title
plt.title('Malaysia', fontsize=18)

#### METHOD SAVING IMAGE USING CURRENT FILE NAME
import inspect
frame = inspect.currentframe()
path = inspect.getfile(frame)
fname = path.split('.')[0]
plt.savefig(fname + ".png",dpi=280, bbox_inches='tight')
plt.show()

#### end copy script##

Paparan imej:
Catatan:
a) Hanya command map.etopo()ini yang berbeza berbanding skrip terhadulu.

Selamat mencuba!.





No comments:

Post a Comment

23-Python : Plotting Temperature Histogram

  Assalamualaikum wbt dan jumpa lagi. Post kali ini kita akan cuba untuk membuat analisa taburan suhu purata setiap data yang telah dibelakk...