ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ENVI无法打开landsat level2级产品--matlab

2021-11-15 22:01:01  阅读:411  来源: 互联网

标签:end fid temp -- landsat level2 MTL txt dir


% @wang 2021\11\15
% 批量修改Landsat8 Level_2 MTL.txt数据
% 由于从USGS上下载的Landsat8-SR-Level2级别的数据无法以打开MTL.txt方式载入ENVI
% 本程序可以将MTL.txt文件中的格式进行修改,输出到同名文件夹下,之后便可以使用MTL.txt载入数据

clear
clc
close all

MTL_st = readtable('MTL_st.txt');   % ENVI可以识别的结构
filepath = uigetdir; % 打包数据文件路径
dirOutput = dir(filepath);
Dataset_Name = {dirOutput.name};
Dataset_Name = Dataset_Name(3:end);   % 获取文件夹下的所有数据包名
% 修改MTL文件
for i = 2:length(Dataset_Name)
    datapath = [filepath,'\',Dataset_Name{i}];
    dir_MTL = dir(fullfile(datapath,'*MTL.txt'));
    dir_MTL_name = dir_MTL.name;
    MTL_0 = readtable([datapath,'\',dir_MTL_name]);  % 待修改的MTL文件
    MTL_0.Properties.VariableNames{3} = 'L1_METADATA_FILE';
    MTL = MTL_0(1:8,:);
    MTL = [MTL;MTL_st];
    MTL = [MTL;MTL_0(31:end,:)];   % 初步调整的MTL文件
    % 修改读入的影像文件名
    for j = 1:size(MTL_st(:,1))
        % 取影像命名文件后几位
        temp0 = MTL_st.L1_METADATA_FILE(j);  % 读取文件名
        temp = temp0{1};  %转化为字符串
        % 修改MTL中读入文件名
        MTL(j+8,3) = {[Dataset_Name{i},temp(41:end)]};
    end
    MTL(end-1,3) = {'L1_METADATA_FILE'};  % 修改名称
    % 为非数字字符添加""
    for k = 2:size(MTL(:,1))-2
        temp = MTL(k,3);
        temp = table2cell(temp);
        temp = temp{1};
        flag = str2double(temp);
        if isnan(flag)
            temp0 = MTL.L1_METADATA_FILE(k);
            MTL(k,3) = {['"',temp0{1},'"']};
        end
    end
    MTL(195:218,:) = MTL(9:32,:);  % 调整文件名
    % 输出MTL文件
    [nrows,ncols]= size(MTL);
    filename = [datapath,'\','MTL.txt'];  % 输出路径为同名文件夹
    fid = fopen(filename, 'w');
    fprintf(fid, '%s', 'GROUP = L1_METADATA_FILE');
    fprintf(fid, '\n');
    for row = 1:nrows
        temp = table2array(MTL(row,:));
        fprintf(fid, '%s', temp{:});
        fprintf(fid, '\n');
    end
    fclose(fid);
end
 

标签:end,fid,temp,--,landsat,level2,MTL,txt,dir
来源: https://blog.csdn.net/weixin_40972452/article/details/121344473

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有