我正在尝试下载一组GOES-16辐射数据,并在xarray中一起打开,以使用^{t
,这是我试图用作连接的时间戳,但是当我尝试这样做时,我得到了错误ValueError: Could not find any dimension coordinates to use to order the datasets for concatenation
。下面是我的代码以及下载两个示例.nc文件的链接
下载以下两个文件:
wget https://noaa-goes16.s3.amazonaws.com/ABI-L1b-RadF/2019/141/02/OR_ABI-L1b-RadF-M6C14_G16_s20191410240370_e20191410250078_c20191410250143.nc
wget https://noaa-goes16.s3.amazonaws.com/ABI-L1b-RadF/2019/141/03/OR_ABI-L1b-RadF-M6C14_G16_s20191410310370_e20191410320078_c20191410320142.nc
以及守则:
import xarray as xr
ds_sst = xr.open_mfdataset("OR_ABI-L1b-RadF*nc", concat_dim='t',combine='by_coords')
有什么我可以做的,使这项工作,使我可以一起打开几十个这些文件
改用
combine='nested'
从Xarray documentation关于通过coords进行合并:
“t”不是维度坐标,因此xarray魔术在本例中不起作用,因为xarray的
combine_by_coords
在导入的NetCDF之间查找匹配的维度坐标在这种情况下,您需要更加具体:使用
combine = 'nested'
并使用concat_dim='t'
指定新维度名称。由于已经有一个名为“t”的坐标,xarray将自动将其升级为标注坐标ds_sst = xr.open_mfdataset("OR_ABI-L1b-RadF*nc", concat_dim='t', combine='nested')
生成的数据集如下所示
或者,您可以定义一个函数,将坐标“t”提升为维度坐标,并将其传递给
open_mfdataset
中的preprocess
参数。此函数应用于每个导入的NetCDF,然后再与其他NetCDF连接结果与上述相同
相关问题 更多 >
编程相关推荐