Assalamualaikum wbt dan jumpa lagi.
Post kali ini kita akan melihat lanjutan daripada post ke-18 tetapi menggunakan World Physical Map Service menggunakan EPSG Geodetic Parameter Dataset atau Coordinate System Worldwide. No EPSG untuk Malaysia adalah 4326. Untuk contoh ini saya akan menggunakan pilihan service World_Physical_Map
## start copy from here
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.collections import PatchCollection
from matplotlib.patches import PathPatch
from matplotlib.patches import Polygon
plt.figure(figsize = (9, 8))
## CREATE AREA MAP
minlon = 99.0
maxlon = 120.0
minlat = 0.0
maxlat = 9.0
map = Basemap(projection='mill',llcrnrlon=minlon ,llcrnrlat=minlat,
urcrnrlon=maxlon ,urcrnrlat=maxlat, resolution = 'i',
epsg = 4326)
map.drawcoastlines(linewidth=0.1)
map.drawcountries(linewidth=0.1)
map.drawparallels(np.arange(-90,90,2),fontsize=10,
labels=[1,0,0,0],color='black',linewidth=0.05)
map.drawmeridians(np.arange(-180,180,2),fontsize=10,
labels=[0,0,0,1],color='black',linewidth=0.05)
## SILA TUKARKAN SERVICE PILIHAN ANDA
map.arcgisimage(service='World_Physical_Map', epsg = 4326, xpixels = 5000, verbose= False)
## SETTING SHAPEFILE ANDA
path='D:/PROJEK-SHAPEFILE/Data-GADM/'
map.readshapefile(path+'gadm36_MYS_shp/gadm36_MYS_1', name='NAME_1', drawbounds=True)
###### PLOT AND COLOR STATES
ax = plt.subplot()
patches = []
#
for info, shape in zip(map.NAME_1_info, map.NAME_1):
if info['NAME_1'] == 'Sarawak':
patches.append( Polygon(np.array(shape), True) )
#
ax.add_collection(PatchCollection(patches, facecolor='m', edgecolor='k', linewidths=0.5, zorder=2))
### PLOT TEKS NAMA NEGERI
labels = ['Sarawak']
lons = [110.0]
lats = [4.0]
x,y = map(lons, lats)
for label, xpt, ypt in zip(labels, x, y):
plt.text(xpt, ypt, label,fontsize=12)
## PLOT TITLE IMEJ
fname="Peta Malaysia"
plt.title(fname, fontsize=18)
#################AUTO FILE NAMING######################
import inspect
frame = inspect.currentframe()
path = inspect.getfile(frame)
fname = path.split('.')[0]
plt.savefig(fname + ".png",dpi=500, bbox_inches='tight')
#######################################################
plt.show()
##end copy script here #####
Paparan Imej:
Catatan:
a) Anda mempunyai pilihan service seperti berikut :
- World_Physical_Map
- World_Shaded_Relief
- World_Topo_Map
- NatGeo_World_Map
- ESRI_Imagery_World_2D
- World_Street_Map
- World_Imagery
- ESRI_StreetMap_World_2D
- Ocean_Basemap
Sila tetapkan nama pilihan service di barisan :
map.arcgisimage(service='World_Physical_Map', epsg = 4326, xpixels = 5000, verbose= False)
Anda juga boleh meningkatkan ketajaman pixel pada xpixels mengikut kesesuaian.
Anda boleh mencuba untuk mendapatkan peta yang menarik menggunakan pilihan service-service tersebut. Bacaan lanjut boleh diperolehi di laman web berikut:
http://qingkaikong.blogspot.com/2016/06/nice-python-basemap-background.html
Selamat mencuba!
No comments:
Post a Comment