Как получить среднее значение переменной во времени в данном граничном поле (lon1, lon2, lat1, lat2)? - PullRequest
0 голосов
/ 05 марта 2019

У меня есть это среднее значение площади графика переменной EDIR по времени, используя код ниже.Тем не менее, я хотел бы знать, как я мог бы установить минимальный и максимальный широту / долготу как граничный прямоугольник, чтобы я мог построить среднее значение площади переменной EDIR в пределах установленного широты / долготы.Спасибо!

ld0 = xr.open_mfdataset('path/*LDASOUT*', condcat_dim='time')

t2=ld0.EDIR.mean(dim='x','y'))

t2.plot.line('-',color='black',linewidth=3,label='control_run')

plt.legend()
plt.show

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Если lat и lon являются координатными переменными в вашем наборе данных, вы можете использовать метод sel.

da = ld0['EDIR'].sel(lon=slice(min_lon, max_lon), lat=slice(min_lat, max_lat))

Дополнительные примеры использования выбора на основе координат xarray можно найти в документации по xarray: http://xarray.pydata.org/en/stable/indexing.html

0 голосов
/ 05 марта 2019

Из документации здесь кажется, что вы можете выбрать границы в координатах, используя, например, t2.where(t2.x < lon2, drop=True).Я нахожусь на моем телефоне, поэтому я не могу проверить его прямо сейчас, но что-то вроде:

temp = ld0.where( ( (t2.x > lon1)  &  (t2.x < lon2) & (t2.y > lat1)  &  (t2.y < lat2)  ), drop=True)

должно дать вам соответствующую маску.Затем вы можете рассчитать и построить график пространственного среднего значения этого массива.

...