将虹膜约束与OR结合?

将虹膜约束与OR结合?

问题描述:

虹膜用户指南提供了大量有关将坐标约束与逻辑与的组合约束的信息。是否也可以将它们与逻辑OR进行组合?将虹膜约束与OR结合?

我想提取一个立方体的部分,其中(coord1 == xcoord2 == y)或(coord1 == z)。

谢谢。

约束确实支持“&”运算符,但不支持“|”。
我认为它的逻辑是,当应用于从一个立方体提取时,结果应该总是只是一个单一的立方体 - 如果允许一个'OR',情况不总是这样。
因此,对于立方体抽取,您可以将约束想象为指定仅允许为超矩形的“剪切形状”:这与numpy索引操作相似。实际上,你建议“(x = 1和y = 2)或z = 3”的确切情况是一个反例:其结果并不总是“正方形”,所以一般不能一个立方体。

负载从一组数据文件的情况下,然而,有些不同:结果可以无论如何有不兼容的形状的多个立方体。
在这种情况下,您有时可以使用“多维数据集函数”类型的约束来选择部分数据,可能使用'或'类逻辑。
然而,结果将取决于源数据格式,即它最初加载的“原始立方体”是什么,从而从中选择。
例如,像一个立方体功能:

def cubefn(cube): 
    return (cube.name() == 'air_temperature' or 
      cube.coord('model_level').points[0] < 7) 

这可能导致的空气温度超过立方体各级,和各种其它的立方体的所有限制在首次7级。
同样,您可以看到为什么不是可在立方体提取的上下文中使用。

+0

感谢您的解释。在我的情况下,两个坐标都在同一个维度上,但我看到你的观点,这通常不是真实的(我知道如果你尝试在多维坐标上提取一个异常,Iris会抛出一个异常,所以存在一致性那里)。我认为限制负荷适用于我的情况,或者我最好的选择可能是添加一个新的坐标,其中点是从现有坐标上的点的函数计算出来的。 – RuthC