利用MATLAB批量读写tif数据(Landsat7&8)

文章讲述了使用MATLAB进行Landsat7和Landsat8的tif图像批量读取与处理。在读取Landsat7数据时因行列号差异导致导出错误,而Landsat8数据则能正常处理。主要步骤包括读取tif文件,计算NDVI,以及根据特定坐标系统导出图像。

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

利用MATLAB批量读写tif数据(Landsat7&8)

代码来源于:批量读写
代码如下:

clc;clear
%% 读取NDVI-tif文件
file_path_N = 'E:\';% 图像文件夹路径 
img_path_list_N = dir(strcat(file_path_N,'*.tif'));%获取该文件夹中所有TIF格式的图像 
img_num_N = length(img_path_list_N);%获取图像总数量
II_N=cell(1,img_num_N);

if img_num_N > 0
    for jj = 1:img_num_N
        image_name_N = img_path_list_N(jj).name;% 图像名
        [image_N,geo] = geotiffread(strcat(file_path_N,image_name_N));
        II_N{jj}=image_N;
        fprintf(' %d %s\n',jj,strcat(file_path_N,image_name_N));% 显示正在处理的图像名
    end
end
%% 计算植被覆盖度
NDVImax = 0.8;
NDVImin = 0.2;
fc_1 = cell(1,img_num_L);
for i = 1:img_num_L
    fc_1{i} = ((II_N{i}-NDVImin)./(NDVImax-NDVImin)).^2;
end
 %% 输出TIF图像
 for j = 1:1:img_num_L
     CoordRefSysCode=32648; 
     outpath='E:\';
     outFile=strcat(outpath,img_path_list_L(j).name);
     geotiffwrite(outFile,fc_1{i},geo,'CoordRefSysCode',CoordRefSysCode);
 end

遇到的问题: 在读取Landsat7的数据时,批量导出数据一直失败,原因在于,下载的Landsat7的数据,每一幅影像的行列号有差异,导致导出时的地理信息‘geo’与各个影像并不匹配,因此出错。在换成Landsat8的数据时,数据已经可以正常导出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值