问题描述
我希望能够根据坐标而不是索引更改 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)]
)
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 (将#修改为@)