Я пытаюсь сократить объем данных, считываемых с продуктов NARR, доступных в NOAA.После сокращения наборы данных заполнены значениями NaN.Следующий код должен продемонстрировать проблему:
import xarray as xr
# xarray
url = 'https://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/NARR/Dailies/monolevel/apcp.2016.nc'
ds = xr.open_dataset(url, decode_cf=True, decode_times=True)
# make a reduced dataset for the data required
cond1 = (ds.lon > -130) & (ds.lon < -110)
cond2 = (ds.lat > 40) & (ds.lat < 50)
df_red = ds.where(cond1 & cond2, drop=True)
Если вы сравните:
data = ds.apcp[311,:,:]
data.max()
Out[4]:
<xarray.DataArray 'apcp' ()>
array(108.046875)
Coordinates:
time datetime64[ns] 2016-11-07
с:
data_red = df_red.apcp[311,:,:]
data_red.max()
Out[6]:
<xarray.DataArray 'apcp' ()>
array(0.)
Coordinates:
time datetime64[ns] 2016-11-07
Вы видите, что максимальное значение во втором«Сокращенный» набор данных равен нулю.Но я знаю, что там должны быть некоторые данные, как видно на графике full data set .И затем нули в увеличении , показывающие подмножество области сюжет.
Есть идеи, что происходит и почему данные не возвращаются?
[ОБНОВЛЕНИЕ]
Это еще кое-что странное поведение ... заставляет меня думать, что я, должно быть, делаю что-то не так!Когда я повторяю запрос данных, вы можете увидеть изменения значения data.max (), несмотря на то, что индекс времени остается постоянным!
# Plot Data
data = ds.apcp[246,:,:]
data.max()
Out[31]:
<xarray.DataArray 'apcp' ()>
array(96.710938)
Coordinates:
time datetime64[ns] 2016-09-03
# Plot Data
data = ds.apcp[246,:,:]
data.max()
Out[32]:
<xarray.DataArray 'apcp' ()>
array(102.835938)
Coordinates:
time datetime64[ns] 2016-09-03
# Plot Data
data = ds.apcp[246,:,:]
data.max()
Out[33]:
<xarray.DataArray 'apcp' ()>
array(129.399796)
Coordinates:
time datetime64[ns] 2016-09-03
# Plot Data
data = ds.apcp[246,:,:]
data.max()
Out[34]:
<xarray.DataArray 'apcp' ()>
array(139.259796)
Coordinates:
time datetime64[ns] 2016-09-03
# Plot Data
data = ds.apcp[246,:,:]
data.max()
Out[35]:
<xarray.DataArray 'apcp' ()>
array(70.351738)
Coordinates:
time datetime64[ns] 2016-09-03
[Второе обновление]
Похоже, этонекоторые проблемы с сервером DODS в NOAA.Когда я загружаю файл и использую его напрямую, поведение такое же, как и ожидалось.