- 积分
- 2415
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-11-25
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-2-19 10:40:36
|
显示全部楼层
本帖最后由 po_po1 于 2014-7-24 17:33 编辑
我只能绘出全球地形图:
程序:
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
q=Dataset(r'C:/Users/Administrator/Desktop/GTOPO30_10min.nc') #数据在桌面放着
a=q.variables['HT'][:] #读取的地形数据
fig=plt.figure(figsize=(8,8))
m=Basemap(projection='cyl')
m.drawcountries()
m.drawcoastlines(linewidth=0.4)
ny=a.shape[0]
nx=a.shape[1]
x,y=m.makegrid(nx,ny)
lons,lats=m(x,y)
cs=plt.contourf(lons,lats,a)
plt.show()
q.close()
#######################################
#######################################
#######################################
#######################################
2014年7月24修改
最终代码:
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
q=Dataset(r'D:/Desktop/GTOPO30_2min.nc')
a=q.variables['HT'][:]
lat=q.variables['lat'][:]
lon=q.variables['lon'][:]
fig=plt.figure(figsize=(8,8))
fig.add_axes([0.05,0.05,0.9,0.9])
m=Basemap(projection='cyl',llcrnrlon=70, urcrnrlon=135,\
llcrnrlat=10, urcrnrlat=56, lon_0=125, lat_0=25, resolution='l')
m.drawcountries(color='w')
m.drawcoastlines(linewidth=0.4,color='w')
m.drawparallels(circles=np.arange(-80,90,20),labels=[0,1,0,0])
m.drawmeridians(meridians=np.arange(0,360,20),lables=[0,0,0,1],fontsize=10)
ny=a.shape[0]
nx=a.shape[1]
map0=r'D:\Program Files\WinPython-64bit-2.7.5.3\data\China boundary\province boundary\bou2_4l'
m.readshapefile(map0,'world',linewidth=0.5)
########
########设定绘图区域
index1=np.logical_and(lat>=10,lat<=56)#数组与常数逻辑运算(比较大小),得到布尔数组
index2=np.logical_and(lon>=70,lon<=135)
y=lat[index1]
x=lon[index2]
a=a[index1,:]
a=a[:,index2]
########
cs=plt.contourf(x,y,a)
cbar=m.colorbar(cs,location='bottom',pad=0.1,extend='both',extendfrac='auto')
plt.show()
q.close()
|
|