Чтение нескольких файлов .nc - PullRequest
0 голосов
/ 01 мая 2018

У меня есть много файлов .nc с именем 'MERRA2_100.tavg1_2d_rad_Nx. 19800101 .SUB.nc' от 19800101 до 20180330 (ггггммдд), содержащих переменные CLDHGH , CLDLOW, CLDMID, CLDTOT с размерами 65 * 80 * 24.

Как построить график временных рядов для одной переменной 'CLDHGH' за полный период времени (с 1980-01-01 по 2018-03-30), используя эти файлы ?????

Я сделал график временных рядов для CLDHGH на день (24 часа), используя этот код:

cldhigh = ncread('D:\cloudnc\MERRA2_100.tavg1_2d_rad_Nx.19800101.SUB.nc','CLDHGH');
cldhigh(cldhigh==0)=NaN;
cldhighmean=nanmean(cldhigh);
cldhighmean2=nanmean(cldhighmean,2);
CLDHGH=reshape(cldhighmean2,[24 1]);
ts1=timeseries(CLDHGH,1:24);
ts1.Name= 'High Cloud';
ts1.TimeInfo.Units = 'hours';

plot(ts1);

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете прочитать все файлы, распаковать дату, расположить их в правильном порядке

d = dir('*.nc');
for ct = 1:length(d)
    n=d(ct).name;
    date = datetime(n(28:35),'Format','yyyyMMdd');
    times = date+hours(0:23);
end

Этот код сначала создает структуру, которая имеет свойства всех файлов с расширением .nc. Затем он зацикливается на них и извлекает имя, помещает его в n. Из n вы можете получить данные, используя datetime, потому что кажется, что ваша дата всегда в символе 28 to 35. Если это не так, используйте regexpr, чтобы найти его. Последняя строка добавляет 24 часа к найденной дате, поэтому у вас есть временной вектор для использования с графиком.

С этого момента вы сможете ввести свой собственный код и заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...