MATLAB对TIFF遥感影像批量辐射定标
将HDF格式的MODIS数据批量拼接、投影及格式转换、重采样、裁剪到研究区后,想批量对数据进行辐射定标(把DN值计算为具有物理意义的值),这里以MOD13A2产品为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | inpath= 'E:\1SMAPDATA\NDVIREF2016_2019\05CATEGORY\02CLASS\NDVI' ; %NDVI原始数据 NDVI文件夹下都是TIFF格式的NDVI遥感影像 outpath= 'E:\1SMAPDATA\NDVIREF2016_2019\06SCALE' ; %输出路径 min =-2000; %最小值 max =10000; %最大值 fill =-3000; %填充值 back=-32768; %背景值 这个需要注意 需要先在MATLAB中先读取一幅影像后确定 有时为65535(LST) scale=0.0001; %缩放因子 off=0; %偏移量 EqualFillBackSca(inpath,outpath, fill ,back, min , max ,scale,off); %统一辐射定标函数 % fill back min max scale off MOD13A2 % REF: -1000 -32678 0 10000 0.0001 % NDVI EVI :-3000 -32678 -2000 10000 0.0001 % min=0; % max=10000; % fill=-1000; % back=-32768; % scale=0.0001; % off=0; %读取TIFF数据 [A,R]=geotiffread( 'E:\02CLASS\blue\A2015353.1_km_16_days_blue_reflectance.tif' ); |
统一辐射定标函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function [] = EqualFillBackSca(imagepath,outpath, fill ,background, min , max ,scale,offset) %EqualFillBackSca %imagepath表示含有某一种类数据的文件夹 %outpath 影像输出路径 %有些影像没有offset值,相应位置就为0 %统一至:背景值 填充值均为nan 这样在ArcGIS中显示时就是正常范围 %背景值可能是最大的LST:65535 也可能是0 建议先读取数据确认 %Fill值一般是产品说明中有的,还是再确定一些比较好 % 要在有效值范围内 fileFolder= fullfile (imagepath); dirOutput= dir ( fullfile (fileFolder, '*.tif' )); fileNames={dirOutput.name}'; l for i =1: length (fileNames) filepath=[imagepath,'\',fileNames{ i }]; [A,R]=geotiffread(filepath); %注意这里读取的数据矩阵A是不是double格式,这个格式不能为负数或者是nan A= double (A); A(A== fill )=nan; A(A==background)=nan; A((A< min ))=nan; A((A> max ))=nan; A=A*scale+offset; info = geotiffinfo(filepath); geotiffwrite([outpath, '\',fileNames{i}],A,R,' GeoKeyDirectoryTag', info .GeoTIFFTags.GeoKeyDirectoryTag); end end |
最后结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下