Создание многомерного NetCDF в Matlab

Я пытаюсь создать четырехмерную структуру целых чисел NetCDF, используя Matlab. Это мой код до сих пор...

mode = netcdf.getConstant('NETCDF4');
mode = bitor(mode,netcdf.getConstant('CLASSIC_MODEL'));
ncid = netcdf.create('USTEC_01_01_2010.nc',mode);
latDimId = netcdf.defDim(ncid,'latitude',51);
longDimId = netcdf.defDim(ncid,'longitude',101);
satDimId = netcdf.defDim(ncid,'satellite',33);
timeDimId = netcdf.defDim(ncid,'time',96);
varid = netcdf.defVar(ncid,'TECgrid','int',[latDimId longDimId satDimId timeDimId]);

Мой вопрос... Как мне использовать putVar для вставки значений в определенные четырехмерные позиции? К вашему сведению, я впервые использую NetCDF. Заранее спасибо! -Дом


person GPSmaster    schedule 10.08.2011    source источник


Ответы (1)


Какая у вас версия? Если у вас более поздняя версия, обратите внимание на следующие функции: nccreate и ncwrite. .

Or:

netcdf.endDef(ncid);
% Write one specific value to the last position. 
% See help netcdf.putVar. start is zero based.
% start argument's order corresponds to dimension definition above.
netcdf.putVar(ncid,varid,[50 100 32 95], 10);

netcdf.close(ncid);
person Ashish Uthama    schedule 10.08.2011
comment
Работает отлично! Спасибо... но теперь я понимаю, что добавление значений по отдельности занимает слишком много времени. Есть ли способ передать весь массив Matlab (того же размера, что и структура netcdf)? - person GPSmaster; 11.08.2011
comment
Кроме того... как я могу указать конкретную точку в базе данных, чтобы начать копирование массива? И как мне извлечь определенный «гиперфрагмент» данных с помощью netcdf.getVar? Кажется, я не могу найти много документации в Интернете. - person GPSmaster; 12.08.2011
comment
GPSmaster, вы набрали «help netcdf.putVar»? Должен быть пример, показывающий вам, как это сделать. (то же самое для getVar). Вы можете записать весь массив, просто используя putVar(ncid, varid, ‹ваш массив данных›) - mathworks.com/help/techdoc/ref/netcdf.putvar.html - person Ashish Uthama; 12.08.2011
comment
Разобрался. Я неправильно использовал netCDF.endDef(ncid). Информация об ошибках в библиотеке netcdf загадочна. Потребовалось несколько проб и ошибок, чтобы понять, что не так. - person GPSmaster; 12.08.2011