【发布时间】:2020-05-26 05:01:44
【问题描述】:
我有两个结构相同的类似 Netcdf 文件,例如:
file1 = xr.open_dataset("file1.nc")
file2 = xr.open_dataset("file2.nc")
print(file1)
Dimensions: (Number_of_points: 232678)
Dimensions without coordinates: Number_of_points
Data variables:
XLON (Number_of_points) float64 ...
XLAT (Number_of_points) float64 ...
VERSION int32 ...
BUG int32 ...
STORAGETYPE |S40 ...
SPLIT_PATCH |S1 ...
SEA |S40 ...
WATER |S40 ...
NATURE |S40 ...
...
print(file2)
Dimensions: (Number_of_points: 232678)
Dimensions without coordinates: Number_of_points
Data variables:
XLON (Number_of_points) float64 ...
XLAT (Number_of_points) float64 ...
VERSION int32 ...
BUG int32 ...
STORAGETYPE |S40 ...
SPLIT_PATCH |S1 ...
NATURE |S40 ...
...
在其中一个文件中,我缺少一些变量(例如上面的变量 SEA 和 WATER) 我想比较这两个文件以获取两个数据集之间的匹配变量名称,然后遍历 file1 以仅加载缺少的维度。 我想要的最终结果是自动加载:
Var1 = file1.SEA
Var2 = file1.WATER
有没有一种简单的方法可以用 Xarray 做到这一点?
谢谢,
泰奥
【问题讨论】:
-
我不确定我是否完全理解这个问题。是用
file1.data_vars获取变量列表,然后在一行普通python 中与file2比较你需要什么? -
是的,我想知道文件1中的变量是否存在于文件2中,然后从file1中只读取匹配的变量列表
-
像这样:
file1[[x for x in file1.data_vars if x in file2.data_vars]]? -
我试过了,效果很好!谢谢!
-
好的,我添加了答案
标签: python-xarray