将 Iris 约束与 OR 相结合?
Combine Iris constraints with OR?
Iris 用户指南提供了很多关于将坐标约束与逻辑 AND 相结合的信息。是否也可以将它们与逻辑或组合起来?
我想提取立方体的一部分,其中 (coord1 == x
AND coord2 == y
) OR (coord1 == z
).
谢谢。
约束支持“&”运算符,但不支持“|”。
我认为其逻辑是,当应用于从立方体中提取时,结果应该始终只是一个立方体——如果 'OR' 被允许。
所以对于立方体提取,你可以认为约束是指定一个 'cutout shape',它只允许是超矩形:这就像 numpy 索引操作。
事实上,您建议的确切情况“(x=1 and y=2) or z=3”是一个反例:结果并不总是 "square",所以可以'一般不会是一个立方体。
然而,从一组 数据文件 加载的情况有些不同:结果可能有多个不兼容的多维数据集形状。
在这种情况下,您有时可以对数据的 select 部分使用 "cube function" 类型的约束,可能使用类似 'or' 的逻辑。
但是,结果将取决于源数据格式,即它最初加载的 "raw cubes" 是什么 + 因此 select 来自.
例如,像这样的立方体函数:
def cubefn(cube):
return (cube.name() == 'air_temperature' or
cube.coord('model_level').points[0] < 7)
这可能会导致所有级别的气温立方体,以及其他各种立方体都限制在前 7 个级别。
同样,您会明白为什么 在立方体提取的上下文中 不可行。
Iris 用户指南提供了很多关于将坐标约束与逻辑 AND 相结合的信息。是否也可以将它们与逻辑或组合起来?
我想提取立方体的一部分,其中 (coord1 == x
AND coord2 == y
) OR (coord1 == z
).
谢谢。
约束支持“&”运算符,但不支持“|”。
我认为其逻辑是,当应用于从立方体中提取时,结果应该始终只是一个立方体——如果 'OR' 被允许。
所以对于立方体提取,你可以认为约束是指定一个 'cutout shape',它只允许是超矩形:这就像 numpy 索引操作。
事实上,您建议的确切情况“(x=1 and y=2) or z=3”是一个反例:结果并不总是 "square",所以可以'一般不会是一个立方体。
然而,从一组 数据文件 加载的情况有些不同:结果可能有多个不兼容的多维数据集形状。
在这种情况下,您有时可以对数据的 select 部分使用 "cube function" 类型的约束,可能使用类似 'or' 的逻辑。
但是,结果将取决于源数据格式,即它最初加载的 "raw cubes" 是什么 + 因此 select 来自.
例如,像这样的立方体函数:
def cubefn(cube):
return (cube.name() == 'air_temperature' or
cube.coord('model_level').points[0] < 7)
这可能会导致所有级别的气温立方体,以及其他各种立方体都限制在前 7 个级别。
同样,您会明白为什么 在立方体提取的上下文中 不可行。