爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 882|回复: 0

python wrfout输出与绘图

[复制链接]

新浪微博达人勋

发表于 2023-11-22 11:38:56 | 显示全部楼层 |阅读模式
1金钱

  1. 我想问问大家,我把许多的wrfout文件合并成了一个文件,然后从中提取了一个变量T2,在绘制T2的季节性平均图时<b><font color="#f4a460">,出现了keyError:"projection",</font></b>请问应该怎么处理?<font color="#4169e1"><b>并且如何确定我的nc变量中存在projection</b></font>?因为我不止一次遇到了这种情况,因此,<font color="#2e8b57"><b>我想彻底知道问题来源与最后的解决方法。</b></font>
复制代码


代码:
  1. <div>pathlib = "/mnt/hgfs/J/0hsyPaper202406/4data/4-wrfout-231106/copy_merge/wrfout_wuwei1_T2_yearmean.nc"</div><div>ds=xr.open_dataset(pathlib)</div>
复制代码

ds显示内容如图
  1. <div></div><div><div>fig = plt.figure(figsize=(12,6))</div><div>
  2. </div><div>
  3. </div><div>#######################获取经纬度点</div><div>lats,lons=latlon_coords(ds)</div><div># print(lats,lons)</div><div>
  4. </div><div>########################################设置地理坐标系投影为wrf中的投影</div><div>
  5. </div><div>cart_proj=get_cartopy(ds["T2"])</div><div>ax=plt.axes(projection = cart_proj)</div><div>print(ax)</div><div># ax.set_extent((95,105,35,45),ccrs.PlateCarree())</div><div>
  6. </div><div>##################################绘制网格线</div><div>#ax.coastlines()</div><div># ax.stock_img()</div><div>gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, linewidth=2, color='gray',</div><div>                  ls="dotted",x_inline=False,y_inline=False)</div></div><div></div>
复制代码

以下为部分代码以及报错内容:
Output exceeds the size limit. Open the full output data in a text editor---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[14], line 11
      6 lats,lons=latlon_coords(ds)
      7 # print(lats,lons)
      8
      9 ########################################设置地理坐标系投影为wrf中的投影
---> 11 cart_proj=get_cartopy(ds["T2"])
     12 ax=plt.axes(projection = cart_proj)
     13 print(ax)

File ~/anaconda3/lib/python3.10/site-packages/wrf/util.py:3523, in get_cartopy(var, wrfin, varname, timeidx, method, squeeze, cache)
   3459 def get_cartopy(var=None, wrfin=None, varname=None, timeidx=0, method="cat",
   3460                 squeeze=True, cache=None):
   3461     """Return a :class:`cartopy.crs.Projection` subclass for the
   3462     map projection.
   3463
   (...)
   3521
   3522     """
-> 3523     return _get_proj_obj("cartopy", var, wrfin, varname, timeidx, method,
   3524                          squeeze, cache)

File ~/anaconda3/lib/python3.10/site-packages/wrf/util.py:3385, in _get_proj_obj(ob_type, var, wrfin, varname, timeidx, method, squeeze, cache, **kwargs)
   3325 def _get_proj_obj(ob_type, var, wrfin, varname, timeidx, method, squeeze,
...
   3313 except AttributeError:
   3314     raise ValueError("variable does not contain projection "
   3315                      "information")

KeyError: 'projection'



ds

ds

ds["T2"]

ds["T2"]
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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