Как записать OrderedDict в netcdf с python netcdf4? - PullRequest
0 голосов
/ 28 февраля 2020

Я пересэмплировал данные NetCDF и организовал их в OrderedDict (это оригинальная организация исходных данных). Но когда я использую следующий скрипт для записи его в новый файл netcdf:

ncout.createDimension('lat', len(y))
ncout.createDimension('lon', len(x))


# create latitude axis
lat = ncout.createVariable('lat', np.dtype('float64').char, ('lat'))
lat.standard_name = 'latitude'
lat.long_name = 'latitude'
lat.units = 'degrees_north'
lat.axis = 'Y'

# create longitude axis
lon = ncout.createVariable('lon', np.dtype('float64').char, ('lon'))
lon.standard_name = 'longitude'
lon.long_name = 'longitude'
lon.units = 'degrees_east'
lon.axis = 'X'

# create variable array
for key, value in variables.items():
    var = ncout.createVariable(key+'re', np.dtype('float32').char, ('lon', 'lat'))
    var.long_name =key
    var=value


# copy axis from the original dataset
#time= nc_file.time_coverage_end
lon = lons
lat= lats

Выходное значение внутри нового файла становится таким же значением: '9969209968386869046778552952102584320.000' Я не могу найти, где проблема и как Я могу это сделать. Я убедился, что вывод resample правильный. Не могли бы вы дать мне совет?

1 Ответ

0 голосов
/ 02 марта 2020

Вам нужно написать:

var[:]=value

Вместо

var=value

В первом случае вы устанавливаете значения существующей переменной NetCDF равными value; во втором случае вы просто создаете новую переменную var (не связанную с файлом NetCDF).

...