У меня есть набор данных за год (netCDF) с координатами времени, широты и долготы и переменной KBDI-AWAP, которая выбирается каждый день.
Данные загружаются в набор данных xarray с помощью Python ипечатается как показано ниже:
print(mds_kbdi)
Вывод:
<xarray.Dataset>
Dimensions: (latitude: 106, longitude: 193, time: 365)
Coordinates:
* latitude (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
* longitude (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
* time (time) datetime64[ns] 2017-01-01 2017-01-02 ... 2017-12-31
Data variables:
KBDI-AWAP (time, latitude, longitude) float32 dask.array<shape=(365, 106, 193), chunksize=(31, 106, 193)>
Attributes:
creationTime: 1525760660
creationTimeString: Mon May 7 23:24:20 PDT 2018
Conventions: COARDS
Укажите это подробно (для каждой широты и долготы):
Date KBDI-AWAP
2017-01-01 10.5
2017-01-02 9.2
2017-01-03 9.8
... ...
2017-12-31 8.2
Я хотел быпересчитать значения KBDI-AWAP с интервалом в час.Таким образом, размер набора данных будет пересчитан (широта: 106, долгота: 193, время: 8760).Каждое значение KBDI-AWAP для часа в пределах одной и той же даты должно иметь то же значение, что и значение даты в исходном наборе данных.
Данные с передискретизацией будут (для каждой широты и долготы):
Date KBDI-AWAP
2017-01-01T00:00:00 10.5
2017-01-01T01:00:00 10.5
2017-01-01T02:00:00 10.5
...
2017-01-02T00:00:00 9.2
2017-01-02T01:00:00 9.2
2017-01-02T02:00:00 9.2
...
2017-01-03T00:00:00 9.8
2017-01-03T01:00:00 9.8
2017-01-03T02:00:00 9.8
... ...
... ...
2017-12-31T21:00:00 8.2
2017-12-31T22:00:00 8.2
2017-12-31T23:00:00 8.2
Думая, что я должен использовать функцию resample
в наборе данных, я попытался использовать mds_kbdi_hourly = mds_kbdi.resample(time='H')
, но это только выводит объект DatasetResample вместо нового набора данных.
Я пробовал и pad (), и ffill() с объектом DatasetResample.Похоже, что переделанные данные пропустили некоторые данные ни по одному из них.Сгенерированные ['time'] координаты:
['2017-01-01T00:00:00.000000000'
'2017-01-01T01:00:00.000000000'
'2017-01-01T02:00:00.000000000' ...
'2017-12-30T22:00:00.000000000'
'2017-12-30T23:00:00.000000000'
'2017-12-31T00:00:00.000000000'].
В нем отсутствуют метки времени от 2017-12-31T01:00:00.000000000
до 2017-12-31T23:00:00.000000000
.Как решить эту проблему?