Matlab处理GPM IMERGM V06月降水数据:单位转换(毫米每时转毫米每月)

该代码示例展示了如何使用Matlab批量读取GPM的mm/hr降水tif文件,计算月平均降水量,并将结果保存为新的tif文件。通过处理每月天数,将原始数据单位转换为mm/month,以便适应科研需求。处理过程包括读取tif文件、计算月均值和保存转换后的地理信息图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇中已经将下载的原始GPM IMERGM V06月降水数据从nc4转为tif格式。由于该数据集储存降水数据的单位为mm/hr,而一般研究中需要的是月降水数据,所以利用matlab将数据单位从mm/hr转为mm/month。

%将GPM的单位从mm/hr转换为mm/month
clc;
clear;

%% 批量读取并输出tif文件
% 批读取tif文件的准备工作
filePath='D:\data\GPM2001-2020\ncTOtif\';  %读取文件所在文件夹
tiffile_list=dir(strcat(filePath,'*.tif'));%用dir函数获取当前文件夹下所有.tif文件,strcat水平串联字符串
tif_length=length(tiffile_list);           %获取tif文件个数

% 批量读取tif信息
for i = 1:tif_length                       %逐一读取tif文件
    tifFilePath = ['D:\data\GPM2001-2020\ncTOtif\',tiffile_list(i).name];   %设定批量读取tif文件路径(文件夹+文件名)
    name = tiffile_list(i).name();         %读取原始tif文件名称,为设置输出文件名称准备
    year = str2num(tiffile_list(i).name(21:24)); %str2num将字符串类型转换为数值型,从文件名中读取年份并转化为数值型
    month = str2num(tiffile_list(i).name(25:26)); %str2num将字符串类型转换为数值型,从文件名中读取月份并转化为数值型
    [A,R] = geotiffread(tifFilePath);      %geotiffread函数读取带有地理信息的tiff图像,如遥感图像等,该方法返回两个参数,第一个参数A是图像的二维矩阵,第二个参数R是地理信息
    info = geotiffinfo(tifFilePath);       %读取tif数据的地理信息,为后面导出为tif数据提供地理信息 
    
    % 计算月均降水数据,将单位从mm/hr转化为mm/月
    monthday = [31,28,31,30,31,30,31,31,30,31,30,31]; %从1月到12月每月天数
    if ((mod(year,4)==0 && mod(year,100)~=0) || mod(year,400)==0)
        monthday(2) = 29;                  % 判断是否闰年,闰年能被4整除且不能被100整除或者能被400整除,闰年2月有29天
    end
    month_days = monthday(month);          %获取计算月份天数
    month_pre= A .* 24 .* month_days;      %计算每月降水量
    

    % 输出,第一个参数(方括号)是输出路径(这里方括号里写入输出文件夹和名称),第二个参数是图像二维矩阵,第三个参数是图像的地理信息,第四、五个参数是投影信息,若以原参考系保存,四五参数不需要变
    geotiffwrite(['D:\data\GPM2001-2020\ncTOtif\month_pre\',name], month_pre, R, 'GeoKeyDirectoryTag', info.GeoTIFFTags.GeoKeyDirectoryTag);
    disp([name,'done'])
end
disp('finish!')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值