解决ENVI无法打开Landsat8/9 C2L2数据的问题:Python脚本实现
解决ENVI无法打开Landsat8/9 C2L2数据的问题Python脚本实现常见问题问题及参考博客问题现象解决方案手动解决方法Python脚本实现批量处理常见问题问题及参考博客在处理从USGS网站下载的Landsat8/9 C2 L2数据时常常会遇到将MTL.txt 文件直接拉入ENVI或直接打开Metadata数据文件时提示错误的情况。对于该问题的常见问题及解决方案可以参考文章https://blog.csdn.net/zbh13859825167/article/details/139309431。问题现象当尝试将从USGS网站下载的Landsat8/9 C2 L2数据的MTL.txt 文件直接导入ENVI或者直接打开Metadata数据文件时会出现如下错误提示解决方案手动解决方法Landsat8数据对于Landsat8数据可通过修改下载的MTL.txt 文件来解决问题。具体步骤如下将文件第一行的GROUP LANDSAT_METADATA_FILE修改为GROUP L1_METADATA_FILE。删除文件中第183行GROUP LEVEL1_PROCESSING_RECORD与第227行END_GROUP LEVEL1_PROCESSING_RECORD之间的内容Landsat 9具体行号位置可能有变化也在183行附近注意这几个名称就行。 。完成上述修改后即可在ENVI中直接打开该数据文件。Landsat9数据Landsat9数据的处理在Landsat8数据处理的基础上还需要额外增加一步将文件第53行的SPACECRAFT_ID LANDSAT_9改为SPACECRAFT_ID LANDSAT_8。完成这些修改后也可以在ENVI中直接打开数据文件。Python脚本实现批量处理为了更高效地处理多个数据文件我们可以使用Python编写一个脚本实现批量处理。以下是具体的脚本设计原理、思路及代码脚本设计原理与思路脚本会遍历指定文件夹及其子文件夹中的所有MTL.txt 文件对每个文件按照上述手动处理的规则进行修改。具体来说脚本会完成以下操作将文件第一行的GROUP LANDSAT_METADATA_FILE替换为GROUP L1_METADATA_FILE。检查文件第53行如果包含SPACECRAFT_ID LANDSAT_9则将其替换为SPACECRAFT_ID LANDSAT_8。删除文件中第183 - 227行Python索引从0开始对应索引为182 - 226的内容。脚本代码importosdefprocess_mtl_files(root_folder):forroot,dirs,filesinos.walk(root_folder):forfileinfiles:iffile.endswith(MTL.txt):file_pathos.path.join(root,file)try:withopen(file_path,r,encodingutf-8)asf:linesf.readlines()print(f正在处理文件{file_path})iflen(lines)0:lines[0]lines[0].replace(GROUP LANDSAT_METADATA_FILE,GROUP L1_METADATA_FILE)land_indexlines[53].rfind(9)ifland_index!-1:lines[53]lines[53].replace( SPACECRAFT_ID \LANDSAT_9\, SPACECRAFT_ID \LANDSAT_8\)iflen(lines)227:#判断是否删除过183行到227行之间内容iflines[182].rfind(GROUP LEVEL1_PROCESSING_RECORD)!-1:dellines[182:227]# 182对应第183行226对应第227行else:print(f文件{file}行数不足无法删除指定行)# 写入修改后的内容withopen(file_path,w,encodingutf-8)asf:f.writelines(lines)print(f成功处理文件{file_path})exceptExceptionase:print(f处理文件{file_path}时出错{str(e)})else:print(f{root_folder}文件夹下没有可处理的文件)if__name____main__:target_folderrC:/Users/79877/Downloads/EdgeDownload/test# 替换为实际文件所在文件夹路径process_mtl_files(target_folder)

相关新闻

Mem0 实战:为 AI 应用构建长期记忆层,突破上下文窗口限制

Mem0 实战:为 AI 应用构建长期记忆层,突破上下文窗口限制

1. 为什么我们需要给 AI 装上“长期记忆” 做过对话式 AI 应用的人都有一个共同体会:模型很聪明,但它“记性”特别差。你跟它聊了半小时,把项目背景、个人偏好、技术栈选型都交代得清清楚楚,结果关掉窗口再开一个新会话&#xff0…

2026/10/14 20:17:34 阅读更多 →
UG的一些操作步骤(自用笔记2)

UG的一些操作步骤(自用笔记2)

目录 1.曲面操作和编辑 2.工程图 3.尺寸标注 4.钣金基本特征 5.钣金高级特征 6.建立有限元模型 7.模型编辑与后处理 8.机构分析基础 9.模型准备与运动分析 10.运动分析总结 1.曲面操作和编辑 1.曲面操作: 偏置曲面:菜单——插入——偏置/缩放…

2026/10/14 20:17:34 阅读更多 →
Markdown公式

Markdown公式

显示形式 嵌入 内容xxxxxx ${公式}$ 内容xxxxxx 机器人关节的负载为: R = [ 690 1260 565 694 ] T R= \left[ \begin{matrix} &690 &1260 &565 &694 \\ \end{matrix} \right]^T R=[​690​1260​565​694​]T,这种负载可以保证机器人具有良好的机动性能。 …

2026/10/14 20:17:34 阅读更多 →

最新新闻

原生JS组态软件实战:无后台监控界面的数据格式与架构设计

原生JS组态软件实战:无后台监控界面的数据格式与架构设计

简介:一份基于原生JavaScript实现的组态软件源码包,面向Web前端与工业自动化开发者,用于在无后台依赖环境中通过拖拽方式快速构建电力一次接线图、工业流程图等图形界面。压缩包共1013个文件,约14.4MB,以svg、png、gif…

2026/10/14 22:55:37 阅读更多 →
离职原因这样回答,面试官当场刮目相看:三步包装法详解

离职原因这样回答,面试官当场刮目相看:三步包装法详解

“我的离职原因是个人的职业发展规划……”这话一出口,对面面试官的眼神是不是闪了一下?别觉得奇怪,很多求职者都折在这句话上。明明说的是真心话,怎么就变成了减分项?干了十几年招聘,我筛过几万份简历、做…

2026/10/14 22:55:37 阅读更多 →
HEIC转JPG全攻略:格式原理、工具选择与批量转换实战

HEIC转JPG全攻略:格式原理、工具选择与批量转换实战

做图像处理这几年,被问得最多的问题之一就是:HEIC格式怎么转成JPG。来源基本都是iPhone用户,拍的照片在手机上看一切正常,发到Windows电脑上打不开,传到某些网络平台上不认,发给安卓朋友半天收不到预览。HE…

2026/10/14 22:55:37 阅读更多 →
Selenium自动化测试实战:定位策略、等待机制与框架搭建

Selenium自动化测试实战:定位策略、等待机制与框架搭建

1. 为什么还在用Selenium:一个老牌框架的历久弥新做Web自动化测试的朋友,几乎没人绕得过Selenium。哪怕这几年新工具层出不穷,Playwright、Puppeteer、Cypress一个比一个火,但我在一线项目里兜兜转转这么多年,但凡遇到…

2026/10/14 22:55:37 阅读更多 →
腾讯开源 Octop Agent 实战:任务编排与工具调用标准化解析

腾讯开源 Octop Agent 实战:任务编排与工具调用标准化解析

1. 从标题拆解 Octop 的定位与野心 第一次看到“Octop:像 WorkBuddy 的腾讯开源 Agent”这个标题,我的直觉是:这又是一个把“Agent”当卖点的项目,但“像 WorkBuddy”这个类比很关键。WorkBuddy 在圈内的口碑是“把复杂任务拆成可…

2026/10/14 22:55:37 阅读更多 →
Axure交互动效入门:事件、用例与动作三要素实战解析

Axure交互动效入门:事件、用例与动作三要素实战解析

很多刚接触原型设计的人,一听到“Axure交互动效”就觉得这是进阶内容,得先把元件、样式、页面这些基础吃透了才敢碰。我实际带新人的过程中发现,这个顺序其实是反过来的:动效不但不是进阶内容,反而是理解Axure底层逻辑…

2026/10/14 22:54:32 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →