接上篇OMI廓线数据结果分析不好,最终决定用OMI/MLS臭氧对流层数据,虽然空间分辨率太粗,,,

太感谢博主的分享了,关键时刻的救命稻草!!!

数据处理——OMI/MLS的臭氧卫星数据读取和处理_omi臭氧数据_J同学的大气笔记的博客-CSDN博客

代码完全参考博主,自己按照自己的数据需求加了循环,并且重新写入了nc,并转为tif方便后续分析;

%%%%2005-2019
year = {'05','06','07','08','09','10','11','12','13','14','15','16','17','18','19'};
month = {'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'};
m=['01';'02';'03';'04';'05';'06';'07';'08';'09';'10';'11';'12'];
y=['2005';'2006';'2007';'2008';'2009';'2010';'2011';'2012';'2013';'2014';'2015';'2016';'2017';'2018';'2019'];
lat=-59.5:1:59.5;            %定义纬度
lon=-179.375:1.25:179.375;   %定义经度

for iy = 1:15                %年份循环
    O3 = nan(288,120);     %预定义O3数组
    for im = 1:3            %月份循环
    fn = ['L3_tropo_ozone_column_',month{im},year{iy},'.txt']; %设置文件名
    fid = fopen(fn);         %打开文件
 
    for i = 1:3
        fgetl(fid);          %这个循环的目的是跳过数据文件的前三行title信息
    end
 
    
    for ilat = 1:120
        data(:,ilat) = fscanf(fid,'%3d',288); %读取文件(3个字符为对应一个经度的数据)
        fgetl(fid);
    end
    
    fclose(fid);              %关闭文件
    data(data == 999) = NaN;  %将缺省值999变为NaN,不过实际上好像没有999出现
    O3(:,:) = data./10; %注意原数据文件里面把数据乘了10倍
    
    % 创建nc文件并导入经纬度信息
        InPath=strcat('D:\ERL\datapre\omi_mls_nc\OMI-Aura_L2-MLS_',y(iy,:),m(im,:),'.nc');
        nccreate(InPath,'lon','Dimensions',{'lon',288});
        nccreate(InPath,'lat','Dimensions',{'lat',120});
         % 读取经纬度信息
        ncwrite(InPath,'lon',lon);
        ncwrite(InPath,'lat',lat);
        % 创建变量并导入计算好的数据
        nccreate(InPath,'ozo',...
                 'Dimensions', {'lon',288,'lat',120},...
                 'FillValue','disable'); 
        ncwrite(InPath,'ozo',O3);
        %%%输出tif
        out='D:\ERL\datapre\omi_mls_tif\';
        OutPath=strcat(out,'OMI-Aura_L2-MLS_',y(iy,:),m(im,:),'.tif');
        ozo3=ncread(InPath,'ozo');
        ozommm=rot90(ozo3,1);
        GeoRef = georasterref('Rastersize',size(ozommm),'Lonlim',[double(min(lon)),double(max(lon))],'Latlim',[double(min(lat)),double(max(lat))]);
        ozo_Tif =OutPath;
        geotiffwrite(ozo_Tif,flip(ozommm),GeoRef);
        %%%打印提示
        fprintf(strcat(y(iy,:),m(im,:)))
    end
end

和近地表臭氧数据集时间序列变化吻合,后续的分析结果较好!再次感谢博主!!!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐