1 回答

TA貢獻1843條經驗 獲得超7個贊
你應該能夠使用向量化的 NumPy 函數來做你想做的事?,F在,我不太確定比較浮點數的相等性,但這應該與你的相似。我沒有專門使用 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]。
添加回答
舉報