NetCDF Сеанс временных рядов с Python 3

Boolean И операторы вернут первое значение 5, если выражение оценивается как false, а второе значение 2, если выражение оценивается как true. Поскольку 5 и 2 являются действительными, не-ложными и ненулевыми значениями, выражение оценивается как true.

Если вы хотите напечатать обе переменные, вы можете связать их с строкой и напечатать это.

five = 5
two = 2
print five + " and " + two

Или распечатать свою сумму, которую вы могли бы использовать

print five + two

В этом документе объясняется, как использовать логические логические операторы.

0
задан Lukə 13 July 2018 в 15:20
поделиться

1 ответ

Кажется, что sel, использующий срез времени в сочетании с method='nearest', просто не поддерживается:

не может использовать аргумент method, если любые индексы являются объектами среза

Это как-то имеет смысл, поскольку выбор nearest для фрагмента кажется немного странным.

Вы можете обойти это, выполнив sel в два шага, то есть сначала выберите временной срез, и с этого временного фрагмента выберите местоположение (или наоборот). Я не уверен, что это лучшее решение, но по крайней мере оно работает.

Быстрый пример с некоторыми данными ERA5:

import xarray as xr

ds1 = xr.open_dataset('20160502_cabauw_model_fc.nc')

# Works:
dsloc1 = ds1.sel(time='2016-05-02 10:00', longitude=4.9, latitude=51.2, method='nearest')

# Doesn't work:
#dsloc2 = ds1.sel(time=slice('2016-05-02 10:00', '2016-05-02 12:00'), longitude=4.9, latitude=51.2, method='nearest')

# Works:
tmp    = ds1.sel(time=slice('2016-05-02 10:00', '2016-05-02 12:00'))
dsloc2 = tmp.sel(longitude=4.9, latitude=51.2, method='nearest')

Это приводит к чему-то вроде:

In [23]: dsloc2
Out[23]: 
<xarray.Dataset>
Dimensions:    (level: 137, time: 3)
Coordinates:
    longitude  float32 4.8
    latitude   float32 51.3
  * level      (level) int32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
  * time       (time) datetime64[ns] 2016-05-02T10:00:00 2016-05-02T11:00:00 ...
Data variables:
    z          (time, level) float32 ...
0
ответ дан Bart 17 August 2018 в 13:06
поделиться
  • 1
    Спасибо за ответ. Разделение его на два этапа отлично работает и имеет прекрасный смысл. Кажется, я не могу подтвердить ваш комментарий (пока), но спасибо, что нашли время ответить! – Lukə 16 July 2018 в 10:07
Другие вопросы по тегам:

Похожие вопросы: