MATLAB读入并处理全球DAT格式气温数据

阅读: 评论:0

MATLAB读入并处理全球DAT格式气温数据

MATLAB读入并处理全球DAT格式气温数据

clc 
clear% 读入.dat文件到变量temp_month
temp_month=dlmread('F:GISyuancru_ts4.02.p.dat'); % dlmread function read ASCII-delimited file of numeric data into matrix% 将二维矩阵temp_month(43200*720)升为三维矩阵temp_year_3d(4320*720*10)
temp_year2=mat2cell(temp_month,[4320 4320 4320 4320 4320 4320 4320 4320 4320 4320],[720]); %10个4320,表示10年
temp_year_3d=cat(3,temp_year2{:});[rows,columns,pages]=size(temp_year_3d);  %返回三维矩阵行、列、页数% 对三维矩阵temp_year_3d(4320*720*10)的每一页拆分成360*720*12大小并求各页平均,得到全球0.5°逐年年均温网格
for page=1:pagestemp_month2=mat2cell(temp_year_3d(:,:,page),[360 360 360 360 360 360 360 360 360 360 360 360],[720]); %12个360,表示12个月temp_month_3d=cat(3,temp_month2{:});temp_year(:,:,page)=mean(temp_month_3d,3); %temp_year(:,:,:)为全球1901~1910年逐年平均气温ASCII数据
end% *************读新的数据时修改以下代码 num2str(page+1900)****************************
% 将二维数组temp_year(:,:,page)(360*720)分别写入,,
for page=1:pagesstr=['F:/GIS/yuan/globe_temp/' num2str(page+2000) '.txt']  % num2str(page+1900)前后都要空一格fid=fopen(str,'wt');%% 插入文件头fprintf(fid,'%sn','ncols 720');fprintf(fid,'%sn','nrows 360');fprintf(fid,'%sn','xllcorner -180.00');fprintf(fid,'%sn','yllcorner -90.00');fprintf(fid,'%sn','cellsize 0.50');fprintf(fid,'%sn','NODATA_value -999');%% 写入数据    input=flipud(temp_year(:,:,page));  % 注意这里要用到flipud()函数,将数组上下颠倒,这样根据文件头读入的数据才是对的,另外再次印证MATLAB真的很强大[row_temp,col_temp]=size(input);for row=1:row_tempfor col=1:col_tempif col==col_tempfprintf(fid,'%gn',input(row,col));elsefprintf(fid,'%gt',input(row,col));endendendfclose(fid);
end
figure  %提示运行结束

本文发布于:2024-01-31 19:51:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170670188030960.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:气温   格式   数据   全球   MATLAB
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23