微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据坐标而不是索引更改虹膜立方体中的值

如何解决根据坐标而不是索引更改虹膜立方体中的值

我希望能够根据坐标而不是索引更改 iris 中的值。

例如,考虑以下立方体,并说我希望将值从 -45N 设置为 45N,将 160E 到 240E 设置为 1:

import iris
import numpy as np
from iris.coords import DimCoord
from iris.cube import Cube

latitude_vals = np.linspace(-90,90,4)
longitude_vals = np.linspace(45,360,8)
latitude = DimCoord(latitude_vals,standard_name="latitude",units="degrees")
longitude = DimCoord(longitude_vals,standard_name="longitude",units="degrees")
cube = Cube(
    np.zeros((4,8),np.float32),dim_coords_and_dims=[(latitude,0),(longitude,1)]
)

在这个例子中,我想要的可以通过调用 xarray 来完成:

import xarray as xr
da = xr.DataArray.from_iris(cube)
da.loc[dict(latitude=slice(-45,45),longitude=slice(160,240))] = 1

但这是否可以完全在 iris 内完成,而不必求助于手动指定索引?

手动指定索引的示例:

cube.data[1:3,3:5] = cube.data[1:3,3:5] + 1

更新(2021 年 1 月 22 日):这是一个已知问题,请参阅 this cross-post 和相关讨论的链接

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。