爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 26327|回复: 10

[求助] 有关python生成的nc文件grads无法读取的问题

[复制链接]

新浪微博达人勋

发表于 2020-10-31 16:00:36 | 显示全部楼层 |阅读模式

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

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

x
有关代码如下:
#生成一个dataset(今天刚学,若有错误还请大佬指出)
ds = xr.Dataset({'div':(('time','level','lat','lon'),x.values)},coords={'time':pd.date_range('2000-01-
01',periods=14),'level':np.linspace(1000,100,num=19),'y':('lat',np.linspace(0,90,num=37)),'x':('lon',np.linspace(0,180,num=73))})


#本地生成一个nc文件
ds.to_netcdf(r'D:\study\climate_inspection\sx03\output.nc')

图片如下:
7K}U%NB_}W(AHPW}LQ(_RGY.png 可知该nc是有描述的
但grads的sdfopen如下:
8CRLSP7E~X5638~@_}OUT4H.png 也尝试过一些改变coords名称的措施,但没有结果。。。。
又有之后用python和ncl的读取代码:
D0FYEXW{GC{8VJDZ02A9GR4.png 5MURE77RHWI}C8T~CA~%E.png
发现只有grads无法打开!!!!
现暂时已用生成的grd生成了数据,但终归不如生成nc文件来的香。。。

还请各位大佬不吝赐教!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-8-1 08:34:19 | 显示全部楼层

回帖奖励 +10 金钱

楼主,我是想把,grd数据转换成.nc文件,有什么建议吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-9-10 23:01:54 | 显示全部楼层
任性小王子 发表于 2021-8-1 08:34
楼主,我是想把,grd数据转换成.nc文件,有什么建议吗?

可以用python转的,你上网搜一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-11 22:07:36 | 显示全部楼层
同问,我也用python生成nc文件,然后这个玩意打不开,python自己就能读取
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-12 18:37:42 | 显示全部楼层
老实人明明 发表于 2021-9-10 23:01
可以用python转的,你上网搜一下

搜到用命令尝试着转过但出错了。用以下命令试过
from xgrads import open_CtlDataset
open_CtlDataset('E:/Study/Data_assimilation/paper/model2data/DATA_back200/nature/t30.ctl').to_netcdf('output.nc')
但Hi出错信息显示如下:
Traceback (most recent call last):
  File "e:/Study/Data_assimilation/paper/JGR/DATA_back200/result/grd2nc.py", line 3, in <module>
    open_CtlDataset('E:/Study/Data_assimilation/paper/model2data/DATA_back200/nature/t30.ctl').to_netcdf('output.nc')
  File "D:\ProgramData\Anaconda3\lib\site-packages\xarray\core\dataset.py", line 1784, in to_netcdf
    return to_netcdf(
  File "D:\ProgramData\Anaconda3\lib\site-packages\xarray\backends\api.py", line 1035, in to_netcdf
    _validate_attrs(dataset, invalid_netcdf=invalid_netcdf and engine == "h5netcdf")
  File "D:\ProgramData\Anaconda3\lib\site-packages\xarray\backends\api.py", line 172, in _validate_attrs
    check_attr(k, v, valid_types)
  File "D:\ProgramData\Anaconda3\lib\site-packages\xarray\backends\api.py", line 164, in check_attr
    raise TypeError(
TypeError: Invalid value for attr 'pdef': None. For serialization to netCDF files, its value must be of one of the following types: str, Number, ndarray, number, list, tuple
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-9-1 22:41:13 | 显示全部楼层
jl2587t 发表于 2021-9-11 22:07
同问,我也用python生成nc文件,然后这个玩意打不开,python自己就能读取

应该是grads本身支持不到位的问题,ncl应该可以读取,但既然python可以读取,我想就没必要再用grads了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-9-1 22:43:36 | 显示全部楼层
任性小王子 发表于 2021-9-12 18:37
搜到用命令尝试着转过但出错了。用以下命令试过
from xgrads import open_CtlDataset
open_CtlDataset( ...

抱歉没看贴。。。我想你首要解决的不是数据转nc(我这里的写的步骤就是),是怎么将grd读入python。这个网上也有,若还需要可以加我qq1305038164
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-9-2 10:27:44 | 显示全部楼层
老实人明明 发表于 2022-9-1 22:43
抱歉没看贴。。。我想你首要解决的不是数据转nc(我这里的写的步骤就是),是怎么将grd读入python。这个 ...

有有关grd数据读取的相关程序吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-9-2 10:58:15 | 显示全部楼层
我之前也用python生成过一些nc,发现有些是grads能读,有些是grads不能读取,我没去总结过什么样的能什么样的不能。总之,感觉变量的命名要尽量规范,coords的经纬度别写x和y,尽量写longitude和latitude这些,然后是,好像DataArray转成的nc更容易被识别似乎
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-9-3 09:01:05 | 显示全部楼层
雨落森林 发表于 2022-9-2 10:58
我之前也用python生成过一些nc,发现有些是grads能读,有些是grads不能读取,我没去总结过什么样的能什么样 ...

嗯嗯,好的,我自己找一下相关的代码,非常感谢。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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