爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 24603|回复: 10

[源代码] 分享Python读取NC文件并画阴影图的源代码

[复制链接]

新浪微博达人勋

发表于 2019-5-10 10:55:48 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
这段时间在家园里学习Python,从安装到画图,受益匪浅,学习了很多老师的Python代码,这里分享一下我学习之后画的nc阴影图~谢谢家园~代码如下:
#!/usr/bin/python
#coding=utf-8
# -*- coding: gbk -*-
#coding=gbk
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
import netCDF4
from netCDF4 import Dataset

#绘制基础地图
map = Basemap(projection='cyl',llcrnrlat=15,urcrnrlat=55,llcrnrlon=70,urcrnrlon=140,resolution='l')
map.drawmapboundary()   
map.drawstates()        
map.drawcoastlines()   
map.drawcountries()     
lons,lats=map.makegrid(71,41)
lats=lats[::-1]
x,y=map(lons,lats)
map.drawparallels(np.arange(15.,56.,10.),labels=[1,0,0,0],fontsize=12)
map.drawmeridians(np.arange(75.,141.,15.),labels=[0,0,0,1],fontsize=12)
plt.title('China basemap u-shaded')

nc_obj=Dataset('E:\\uwnd.2015.nc')

#读取数据
LEVEL=(nc_obj.variables['level'][1])
TIME=(nc_obj.variables['time'][1])
LAT=(nc_obj.variables['lat'][:])
LON=(nc_obj.variables['lon'][:])
UWIND=(nc_obj.variables['uwnd'][1,1,:,:])

#将原始数据变成网格数据形式
X,Y = np.meshgrid(LON,LAT)

#绘制等值线和阴影图
curve=map.contour(X,Y,UWIND)
#这里是使用了NCL的colorbar
cmap_color=plt.cm.get_cmap('RdYlBu_r')      
shade=map.contourf(X,Y,UWIND,cmap=cmap_color)
cbar=map.colorbar()
cbar.ax.tick_params(labelsize=12)
plt.savefig('u-shaded.png')

效果图如下:




评分

参与人数 4金钱 +13 贡献 +1 收起 理由
可乐香蕉牛奶 + 1
lllllys + 2 赞一个!
chongzika + 10 赞一个!
直孔吧-坚扎 + 1 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-5-10 11:17:08 | 显示全部楼层
不错不错,鼓励一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-10 11:52:52 | 显示全部楼层
不错不错,鼓励一下

分享是最高级的学习方式!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-10 15:23:17 | 显示全部楼层
谢谢楼主分享~~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-10 16:03:14 | 显示全部楼层
很通俗易懂了,多谢楼主分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-13 09:09:18 | 显示全部楼层
感谢楼主分享,提供学习参考,非常感谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-5-31 10:55:21 | 显示全部楼层
提供学习参考,分享和介绍!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-6-5 11:09:13 | 显示全部楼层
本帖最后由 subtropical 于 2019-6-5 15:17 编辑

谢谢楼主分享,楼主我试用你的程序时候出错了,请问怎么解决? error1.png


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-5 17:50:01 | 显示全部楼层
楼主您好,TIME=(nc_obj.variables['time'][1]),这里把1改成别的时间,怎么图形没有变化呢?请指导,谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-5 17:58:11 | 显示全部楼层
小其其格 发表于 2019-5-10 11:52
不错不错,鼓励一下

分享是最高级的学习方式!

小其其格您好,TIME=(nc_obj.variables['time'][1]),这里把1改成别的时间,怎么图形没有变化呢?请指导,谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表