#python #arrays #numpy #netcdf #netcdf4
#python #массивы #numpy #netcdf #netcdf4
Вопрос:
итак, я пытаюсь распаковать файл 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:
Именно для решения этой проблемы был разработан пакет xarray. Особенно благодаря своей интеграции с dask, xarray является идеальным инструментом для работы с большими файлами netcdf многих размеров.
Попробуйте вместо этого открыть свои данные с помощью xarray
import xarray as xr
ds = xr.open_dataset('xboutput.nc')
Затем работайте с данными напрямую через xarray API. Правила вещания Xarray очень упрощают работу с данными с различными комбинациями измерений.