读取多个.nc文件

时间:2018-05-01 07:50:32

标签: matlab plot time-series netcdf

我有很多.nc文件名为' MERRA2_100.tavg1_2d_rad_Nx。 19800101 .SUB.nc'从 19800101 20180330 (yyyymmdd)包含变量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 :(得分:0)

您可以阅读所有文件,提取日期,按正确顺序排列

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作为扩展名的所有文件的属性。然后它for循环遍历它们并提取名称,将其放入n。从n开始,您可以使用datetime获取数据,因为您的日期似乎总是在28 to 35字符中。如果不是,请使用regexpr查找。最后一行将24小时添加到找到的日期,因此您可以使用时间向量与绘图一起使用。

从这一点开始,您应该能够输入自己的代码并使其发挥作用。