本文主要向您展示如何读取netcdf数据并在matplotlib底图上绘制。内容简单易懂,条理清晰。希望能帮你解开疑惑。让边肖带领您学习如何阅读netcdf数据并绘制matplotlib底图。
Netcdf是一种数据格式;
Matplotlib是python中的一个绘图插件。
使用python进行地图效果是工作的需要。气象数据一般存储在netcdf中,python语言还没有深入研究,但已经按照要求达到了实现效果。
下面的代码详细列出了如何从netcdf读取数据以及在底图地图上绘制数据的效果。
Python的开发环境和各种轮子在下载代码,请百度搜索部署,我不太熟悉。下面的代码是基于python2.7开发的,netcdf的样例数据也可以从网上下载。
#设置编码格式,参考各种需要的类库。
#coding=utf-8
将matplotlib.pyplot导入为plt
将numpy作为np导入
导入scipy.ndimage
来自mpl_toolkits .底图导入底图,cm
将netCDF4导入为nc
将matplotlib.colors作为颜色导入
使用反斜杠的#netcdf文件的路径设置不同于windows常用的路径设置。
filename=' e :/git/grib2json/20171011/20171011-3KM _ west . NC '
#打开nc文件,从中根据变量获取数据,详细学习nc数据的格式。
数据=nc。数据集(文件名)
lat=data . variables[' XLAT '][:]。挤压()
lon=data . variables[' XLONG '][:]。挤压()
pm25=data . variables[' pm25 '][:]。挤压()
cutpm=pm25[20,4,]
#初始化底图对象,将坐标系设置为纬度和经度,然后是范围。
m=底图(epsg=4326,分辨率='i ',llcrnrlat=23,urcrnrlat=37,llcrnrlon=97,urcrnrlon=112)
图1=PLT . fig()
x,y=m(lon,lat)
#初始化颜色级别,根据不同的值渲染不同的颜色。
级别=[0,35,75,115,150,250,350,500]
myRBB=np.array([[153,219,231],[26,161,206],[0,123,217],[103,255,136],[10,227,50],[50,244,62],[228,243,62],[226,151,62]])
cmap=颜色。ListedColormap(myRBB/255.0)
norm=颜色。边界范数(边界=级别,ncolors=len(级别))
#根据上面的x\y\值数组在地图上绘制。
CS2=m.contourf(x,y,cutpm,cmap=cmap,alpha=0.75)
#画海岸线和国界
m . draw海岸线(线宽=0.5)
m.drawcounties(线宽=0.3)
plt.title('pm25 ',大小=20)
#加载底部附带的地图图像
m.etopo()
#显示绘图窗口
plt.show()
注意:使用时请去掉所有注释,很容易报错。以下是效果图:
以上就是“如何读取netcdf数据并在matplotlib底图上绘制”一文的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/136913.html