- 积分
- 1957
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-4-18
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 dongtingwang 于 2019-5-14 10:50 编辑
我写了一段读取ISCCP hgm产品的Matlab代码,我是对多年的数据做一个平均,想把数据重新绘制成下面的图,可是我Matlab不熟,画不出类似如下的图,还有我想把平均后的数据重新写入.nc文件,也没有成功!希望哪位大牛帮帮忙,谢谢!
clc; %清屏
clear all; %清空
%nc批量读取5年的1-12月数据
datadir1='D:\ncei_isccp\hgm\'; %指定批量数据所在的文件夹
filelist1=dir([datadir1,'ISCCP.HGM.v01r00.GLOBAL.*.99.9999.GPC.10KM.CS00.EQ1.00.nc']); %指定批量数据的类型
%filelist1=dir([datadir1,'*.nc']); %指定批量数据的类型
a=filelist1(1).name; %查看你要读取的文件的编号。filelist(1).name在window下为第一个标号数据
b=filelist1(2).name; %查看你要读取的文件的编号。filelist(2).name在window下为第二个标号数据
k1=length(filelist1);
%mean_1_month =zeros(,);
for s=1:k1
filename=[datadir1,filelist1(s).name]; %数据路径+文件名
ncid=netcdf.open(filename,'NC_NOWRITE'); %打开nc文件
cldamt_01(:,s)= ncread(filename,'cldamt'); %打开平均云量表,读入变量cldamt
% LatData=ncread(filename,'lat'); %读入变量lat
% LonData=ncread(filename,'lon'); %读入变量lon
netcdf.close(ncid); %关闭nc文件
end
[row,col] = size(cldamt_01); %行row,列col
sum_cldamt_01 = sum(cldamt_01,2);
avg_cldamt_01 = sum_cldamt_01/col;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画图
%[X, Y] = meshgrid(LatData,LonData);
%contourf(Y-180.0,X,avg_cldamt_01); %画9月份等值面图
% shading flat; %去掉等值线
% colorbar('SouthOutside','Position',[0.142,0.03,0.75,0.04]); %添加颜色条 [左右,上下,长,宽]
%
% load coast %加载全球海岸线,但是不显示出来
% geoshow(lat,long); %显示出海岸线,lat和long是coast的属性
% hold on;
%
% set(gca,'LineWidth',1,'FontSize',10,'Ylim',[-90,90],'Xlim',[-180,180],'Position',[0.142,0.09,0.75,0.84]...
% ,'XTick',[-180:60:180],'XTicklabel',{'-180W','-120W','-60W','0','60E','120E','180E'}...
% ,'YTick',[-90:30:90],'YTicklabel',{'-90S','-60S','-30S','0','30N','60N','90N'}); %添加经纬度信息
% hold off;
%
% netcdf.close(ncid); %关闭nc文件
%
%写入新nc文件
% outid = netcdf.create('D:\ncei_isccp\hgm-2008-2012\ecco_ekman_mon_mean1.nc','CLOBBER'); %创建一个存放数据的nc文件
% dimidx = netcdf.defDim(outid,'meancldamout',41252);
% lat_dimID = netcdf.defDim(outid,'latitude',180);
% long_dimID = netcdf.defDim(outid,'lontitude',360);
%
% varid = netcdf.defVar(outid,'meancldamout','double',dimidx);
% netcdf.putVar(outid,varid,avg_cldamt_01);
% netcdf.close(outid);
% nccreate('ecco_ekman_mon_mean1.nc','peaks',...
% 'Dimensions',{'r',41251,'c',1},...
% 'Format','classic');
% %ncwrite('myncclassic.nc','peaks',peaks(200))
% ncwrite('ecco_ekman_mon_mean1.nc','peaks',avg_cldamt_01);
% ncdisp('ecco_ekman_mon_mean1.nc');
其中注释的代码是有问题的,画图和写入.nc文件都有错误!求大神帮助,谢谢
|
-
|