Слишком большой размер массива netCDF - PullRequest
0 голосов
/ 18 марта 2019

, поэтому я пытаюсь распаковать файл netCDF, и я попал в точку, где я поместил интересующие меня переменные в массив np.Тем не менее, моя проблема заключается в размере массива, который я пытаюсь проанализировать.Ниже приведены переменные и их размеры:

_parameters ()
globalx (1, 231)
globaly (1, 231)
globaltime (6,)
vz (6, 100, 1, 231)
uz (6, 100, 1, 231)
u (6, 1, 231)
v (6, 1, 231)
ustz (6, 100, 1, 231)

Меня интересуют vz, uz и ustz (объяснение того, что они содержат ... (количество итераций, nz, ny, nx)не интересует ny и не имеет значения.

, поэтому вопрос в том, могу ли я сделать размер (количество итераций, nz, nx) и распаковать nz и nx за итерацию.

Спасибо

вот мой код,

from netCDF4 import Dataset
import numpy as np
import pandas as pd

ncfile = 'xboutput.nc'
jan = Dataset(ncfile, more = 'r')

#print (file.variables)

_parameters = jan.variables['_parameters']
globalx = jan.variables['globalx'].units
globaly = jan.variables['globaly'].units
globaltime = jan.variables['globaltime'].units
vz = jan.variables['vz'][:]
uz = jan.variables['uz'][:]
ustz = jan.variables['ustz'][:]
v = jan.variables['v'][:]
u = jan.variables['u'][:]

for i in jan.variables:
    print (i,jan.variables[i].shape)

vz_ar = np.array(jan.variables['vz'])
u_ar = np.array(jan.variables['u'])

1 Ответ

1 голос
/ 18 марта 2019

Эта проблема - то, для чего предназначен пакет xarray .В особенности из-за интеграции с dask , xarray является идеальным инструментом для работы с большими файлами netcdf с разными размерами.

Попробуйте вместо этого открыть данные с помощью xarray

import xarray as xr
ds = xr.open_dataset('xboutput.nc')

Затем работайте с данными напрямую через API xarray.Правила вещания Xarray упрощают работу с данными с различными комбинациями измерений.

...