打不开原因及其解决方法
- 打开下载的数据头文件txt
- 首行的“GROUP = LANDSAT_METADATA_FILE”改为“GROUP = L1_METADATA_FILE”
- 编辑—查找—“GROUP = LEVEL1_PROCESSING_RECORD”&END_GROUP = LEVEL1_PROCESSING_RECORD之间代码全部删除
- 将END_GROUP = LANDSAT_METADATA_FILE 改为END_GROUP = L1_METADATA_FILE
- 参考链接: 单个处理
目前需求需要批量修改python实现
- 数据组织
–datas\原始数据\LC08_L2SP_121037_20130402_20200913_02_T1
–datas\原始数据\LC08_L2SP_121037_20130903_20200913_02_T1
–datas\原始数据\LC08_L2SP_121037_20130903_20200913_02_T1
–datas\原始数据\LC08_L2SP_121037_20130903_20200913_02_T1
-python代码实现:
import glob
import os
current_path = r'datas\原始数据'#根路径
file_list = glob.glob(os.path.join(current_path, '*_T1', '*MTL.txt'))#获取根路径下带处理的所有影像数据
for file in file_list:
in_file = open(file, "r")#读取元文件TXT
find_replace_word = {'GROUP = LANDSAT_METADATA_FILE': 'GROUP = L1_METADATA_FILE'}#查找字段和替换字段做成字典形式
find_word = list(find_replace_word.keys())
replace_word = list(find_replace_word.values())
# 删除行区间数据
start_stop_row = {'GROUP = LEVEL1_PROCESSING_RECORD': 'END_GROUP = LEVEL1_PROCESSING_RECORD'}
start_row = list(start_stop_row.keys())[0]
stop_row = list(start_stop_row.values())[0]
lines = in_file.readlines()
# 替换
start_index = 0
stop_index = 0
new_lines = []#中间变量存储新的数据
for index, i in enumerate(lines):
# TXT文本的查找和替换
for f_index, f_word in enumerate(find_word):
if i.find(f_word) != -1:
i = i.replace(f_word, replace_word[f_index])
# 删除TXT所在的行
if i.find(start_row) != -1 and i.find(stop_row) == -1:
start_index = index
if i.find(stop_row) != -1:
stop_index = index
new_lines.append(i)
in_file.close()
print(new_lines[0])
with open(file, mode='w+') as f:
for index, line in enumerate(new_lines):
if (index > start_index and index < stop_index):#删除 {'GROUP = LEVEL1_PROCESSING_RECORD': 'END_GROUP = LEVEL1_PROCESSING_RECORD'}之间左右的行
continue
else:
f.write(line)