1 回答
TA贡献1843条经验 获得超7个赞
你应该能够使用向量化的 NumPy 函数来做你想做的事。现在,我不太确定比较浮点数的相等性,但这应该与你的相似。我没有专门使用 xarray 但使用过 netCDF4,所以它说<array>我的意思是为该变量/坐标获取一个 numpy(或等效)数组。另外,请注意,我没有选择一个单独的时间值,它看起来像你有,但我只是使用latitudes 的整个 3D 数组。
import numpy as np
latitude = <3D latitudes array>
delta_time = <2D delta_time array>
# 3D boolean array with our required condition
condition = (latitude == 51.2) | (latitude == 51.8)
# Expand tuple of indices, one for each of the 3 dims, but ignore ground_pixel dim
# Each of these idx arrays is 1D
time_idx, scanline_idx, _ = condition.nonzero()
# Get 1D array of delta_times by using time and scanline indices
delta_times = delta_time[time_idx, scanline_idx]
这应该为您留下所有三个维度中所有相关单元格的坐标 ( condition.nonzero()),以及delta_times这些单元格的坐标。
no2请注意,如果您不使用实际值并且只关心latitude和,则不需要实际数组delta_time,但您始终可以使用 之类的方法获取相关单元格的值no2[condition]。
添加回答
举报