微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xarray sel数据集方法返回“ nan”

如何解决xarray sel数据集方法返回“ nan”

我正在使用.nc4 python库从AgMerra xarray文件提取数据。

代码基本上是:

lat = [37.99,36.18,38.2 ]
lon = [-100.82,37.55,-85.24]
files_name = ['coord_1','coord_2','coord_3']
var_names = ['srad','tmax','wndspd','prate']

def rawData(var2get_xr,var_name2get):
    x = var2get_xr[var_name2get].sel(longitude=xr.DataArray(lon),latitude=xr.DataArray(lat),method='nearest').values
    return x

for n,var_name2get in enumerate(var_names):
    var2get_xr = xr.open_mfdataset(f'files/AgMERRA_*_{var_name2get}.nc4',combine='by_coords',decode_times = False,chunks = {"time": 10})
    
    print(var2get_xr)
    if n == 0:
        var_ar = rawData(var2get_xr,var_name2get)
        n_lines = var_ar.shape[0]
        time = var2get_xr.time.values
    else:
        var_ar = np.c_[var_ar,rawData(var2get_xr,var_name2get)]


time = [datetime.date(1980,1,1) + datetime.timedelta(days = int(t)) for t in time]

#  saving
for n in range(len(lat)):
    print('arquivo {} de um total de {}'.format(n+1,len(lat)))
    name_file = f'{files_name[n]}.csv'
    file = var_ar[:,n::len(lon)]
    pd.DataFrame(file,index=time,columns=var_names).to_csv(name_file,float_format='%.1f')

结果是三个CSV。只有一个(“ coord_2”)不是一个完整的空数据集。

我也尝试使用三个接近的坐标。这样:

lat = [38.2,38.92,38.85]
lon = [-96.6,-97.65,-99.31]
files_name = ['coord_1','coord_3']

对于最后一个示例,只有coord_1一个完整的空数据集。

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。