Вычислять среднедневное значение данных, измеренных четыре раза в день в течение многих лет из файла netcdf? - PullRequest
0 голосов
/ 31 октября 2019

Итак, у меня есть следующие данные:

import xarray as xr
import numpy as np
import pandas as pd
temperature = xr.open_dataset("./Temperature/merged_temp.nc")
temp = temperature.sel(time=slice('1954-04-07', '1957-04-07'))
print(temp)

Out[1]:
<xarray.Dataset>
Dimensions:  (lat: 73, lon: 144, time: 4388)
Coordinates:   * lon      (lon) float32 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5
               * lat      (lat) float32 90.0 87.5 85.0 82.5 80.0 ... -82.5 -85.0 -87.5 -90.0
               * time     (time) datetime64[ns] 1954-04-07 ... 1957-04-07T18:00:00
Data variables:
               air      (time, lat, lon) float32 ...
Attributes:
Conventions:    COARDS
title:          4x daily NMC reanalysis (1950)
description:    Data is from NMC initialized reanalysis\n(4x/day). These...

Данные распределяются 4 раза в день (т.е. переменная 'air; измеряется четыре раза в день)

temp.sel(time='1954-04-07')
Out[2]:
<xarray.Dataset>
Dimensions:  (lat: 73, lon: 144, time: 4)
Coordinates:
  * lon      (lon) float32 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5
  * lat      (lat) float32 90.0 87.5 85.0 82.5 80.0 ... -82.5 -85.0 -87.5 -90.0
  * time     (time) datetime64[ns] 1954-04-07 ... 1954-04-07T18:00:00
Data variables:
    air      (time, lat, lon) float32 ...
Attributes:
    Conventions:    COARDS
    title:          4x daily NMC reanalysis (1950)
    description:    Data is from NMC initialized reanalysis\n(4x/day).  These...
    platform:       Model

Переменная «воздух» измеряется 4 раза в день с 1954-04-07 до 1957-04-07 . Мне нужны те же данные, но вместо этих четырех измерений я хочу ежедневно усреднять значение «воздуха». Как я могу сделать это в Python?

Я использовал следующее для своей задачи:

  • Python 3.6
  • Anaconda 4.7

1 Ответ

0 голосов
/ 09 ноября 2019

Пожалуйста, попробуйте:

temp.resample(time='1D').mean(dim='time')

Это правда, что требуется много времени, наберитесь терпения.

...