Python iris 如何在Iris中提取某个NEMO海洋模型输出的区域?

Python iris 如何在Iris中提取某个NEMO海洋模型输出的区域?,python-iris,Python Iris,是否有一种简单的方法可以从由二维纬度和经度变量(例如使用NEMO海洋模型数据)描述的Iris立方体中提取区域 我找到了解决办法,但想知道是否有一种方法可以在“纯”Iris中实现这一点,而不必去定义一个新函数 例如,如果我有这个立方体 In [30]: print(cube) mole_concentration_of_dimethyl_sulfide_in_sea_water / (mol m-3) (time: 780; cell index along second dimension: 3

是否有一种简单的方法可以从由二维纬度和经度变量(例如使用NEMO海洋模型数据)描述的Iris立方体中提取区域

我找到了解决办法,但想知道是否有一种方法可以在“纯”Iris中实现这一点,而不必去定义一个新函数

例如,如果我有这个立方体

In [30]: print(cube)
mole_concentration_of_dimethyl_sulfide_in_sea_water / (mol m-3) (time: 780; cell index along second dimension: 330; cell index along first dimension: 360)
     Dimension coordinates:
          time                                                       x                                       -                                      -
          cell index along second dimension                          -                                       x                                      -
          cell index along first dimension                           -                                       -                                      x
     Auxiliary coordinates:
          latitude                                                   -                                       x                                      x
          longitude                                                  -                                       x                                      x

。。。然后尝试提取一个区域,我得到这个

>>> subset = cube.intersection(longitude=(-10, 10))

CoordinateMultiDimError: Multi-dimensional coordinate not supported: 'longitude'


谢谢

从错误消息中可以看出,iris目前不支持多维坐标的子集设置,因此您必须在该博文中编写类似于
bbox\u extract\u 2Dcoords()
的函数。它所做的只是创建一个布尔掩码,在您感兴趣的区域内将值设置为
True
,在外部将值设置为
False
。然后将该区域的边界作为索引来子集立方体


另一种方法是将数据重新划分为由1D经纬度定义的规则网格,然后使用标准的
Constraint()
方法对数据进行子集划分。

非常感谢!这会在Iris中重新划分为1D经纬度吗?@jonnyhtw是的,使用Hi Denis应该是可能的,谢谢!