python批量读取landsat8的波段
在上一篇文章读取landsat8数据,计算NDVI并保存成tiff文件中,博主介绍了怎么读取landsat8中B4,B5波段的信息,并计算NDVI指数。本文将对landsat8的读取函数做进一步扩展,使其能保存所有波段的路径。以便根据路径直接批量读取相应的波段文件。
本函数的功能是给出一个包含多个landsat8影像的文件夹路径,返回一个列表,这个列表里面包含了所有影像的所有波段的路径信息。返回列表维度为:影像的数量 * 波段的数量。
函数:
"""存储文件的列表维度为:imgs*11,既每个影像的波段文件都存放在单个列表里"""
import osdef read_landsat8_bands(base_path):"""保存landsat8不同波段的路径(共11个波段)base_path: 存储了多张影像的文件夹mid_path: 存储了不同波段的文件夹,对应着单张影像final_path: 最后一层可以直接打开的单张波段文件bands:包含了波段路径的列表"""# 用于存储不同波段路径,维度是影像数量*波段数(11)bands = []num_bands = 11# 用于定位波段用的关键字列表keys = []for k in range(num_bands):key = 'B{num}.TIF'.format(num = k + 1)keys.append(key)# 读取最外层文件base_files = os.listdir(base_path)for i in range(len(base_files)):bands.append([])# 读取中层文件mid_path = base_path + '\\' + base_files[i]mid_file = os.listdir(mid_path)# 得到最内层的波段文件for final_file in mid_file:final_path = mid_path + '\\' + final_filefor j in range(num_bands):if keys[j] in final_file:bands[i].append(final_path)# 原始列表排序是1,10,11,2,3,...# 按照倒数第5个字符进行排序(XXXB1.TIF)bands[i].sort(key=lambda arr: (arr[:-5], int(arr[-5])))# 返回波段列表和影像数量return bands
测试
从速度方便考虑,本文只测试了2张影像。所以直接将bands列表打印出来了。
因此,遍历此列表,你可以按照自己喜欢的方式读取其中的文件。
if __name__ == '__main__':base_path = r'E:\ROMOTE_DATA\LANDSAT_202009'bands = read_landsat8_bands(base_path)print("波段列表为:{band}".format(band = bands))print("影像数量为:{imgs}".format(imgs = len(bands)))
out:
波段列表为:[['E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B1.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B2.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B3.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B4.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B5.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B6.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B7.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B8.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B9.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B10.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T1\\LC08_L1TP_121034_20130402_20200912_02_T1_B11.TIF'], ['E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B1.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B2.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B3.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B4.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B5.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B6.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B7.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B8.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B9.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B10.TIF', 'E:\\ROMOTE_DATA\\LANDSAT_202009\\LC08_L1TP_121034_20130402_20200912_02_T2\\LC08_L1TP_121034_20130402_20200912_02_T2_B11.TIF']]
影像数量为:2
python批量读取landsat8的波段相关推荐
- json字段顺序读取 python_如何利用Python批量读取视频文件的时间长度?
本期的主题是利用Python来实现对视频文件时间长度的读取. 在学习编程语言时,相比较于通过书本来学习知识,我更喜欢通过观看学习视频的方式来进行学习,通过主讲老师的讲解,我能很直观且快速的了解一些知识 ...
- python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...
目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...
- python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...
原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...
- 我用Python批量读取考生成绩单,并自动发送录取通知书邮件
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 欢笑情如旧,萧疏鬓已斑. 01 前 ...
- python 批量读取csv_python批量读取csv文件
请问大神怎样用python批量读取文件夹下的文件? python如何读取CSV文件一部分数据 Python如何批量读取CSV文件并写入TXT? 如何用python把多个csv文件数据处理后汇总到新cs ...
- 自动化神器啊,Python 批量读取身份证信息写入 Excel
大家好,今天分享一个实用技能,利用 Python 批量读取身份证信息写入 Excel. 喜欢记得收藏.关注.点赞. 注:文末提供完整版代码.技术交流方式 读取 以图片形式的身份证为例,信息读取我们使用 ...
- python批量读取csv文件-Python读取/批量读取文件
相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的.在这里特此整理读取外部文件的方法,希望能有助你们快速解决问题.当然本文对读者的假设是有一定的py ...
- python批量读取csv文件-使用Python读写csv文件的三种方法
行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误.PS:已经被这个错误坑过很多次! 使用python I/O写入 ...
- python批量读取grib_windows python读取grib2数据
一.环境准备 (1).python3环境 (3).wgirb2工具(用于读取grib2文件),下载地址:ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2 二.环境测试 ...
- python批量读取文件夹的图片并处理成模型输入格式
我们知道在训练图像模型时,需要从文件夹里读取图片. 这里演示下,怎样从文件夹里批量读取图片,并处理成我们想要的 x,y 即特征和标签. 输入维度理解 以卷积神经网络为例子. 我们知道卷积神经网络con ...
最新文章
- CUDA上深度学习模型量化的自动化优化
- IOI2011 BZOJ2600 ricehub
- 一文看尽2020全年AI技术突破
- node中的流的介绍(Stream)
- 通过Visual Studio 2005的项目模板来加速开发过程
- jQuery的Growl插件
- Vivado ILA无法触发,点Stop Trigger提示There are no armed ILAs
- calendar类_带有时区的字符怎样转换为时间及Java 8中日期 与 Calendar 转换
- php自动合并,php实现合并数组并去除重复的方法
- 剪纸风格的美妆海报设计,你试过吗?
- redirect重定向后https变成了http如何解决
- [转载]oracle定时器
- keepalived vrrp_script脚本不执行解决办法
- DPDK收发包流程分析(一)
- 编译exe不弹窗口_详解matlab mbuild -setup找不到C++编译器解决方案
- C语言抽奖程序随机实现,简单的号码抽奖程序 - oixxan的个人博客 - OSCHINA - 中文开源技术交流社区...
- 聊聊微信内页面发Ajax请求会重复请求的问题
- Oracle 创建用户授权视图,别名通过同义词解决
- oracle表空间权限赋予,Oracle 创建用户、表空间以及授予权限
- docker 打包镜像