在上一篇文章读取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的波段相关推荐

  1. json字段顺序读取 python_如何利用Python批量读取视频文件的时间长度?

    本期的主题是利用Python来实现对视频文件时间长度的读取. 在学习编程语言时,相比较于通过书本来学习知识,我更喜欢通过观看学习视频的方式来进行学习,通过主讲老师的讲解,我能很直观且快速的了解一些知识 ...

  2. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

  3. python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...

    原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...

  4. 我用Python批量读取考生成绩单,并自动发送录取通知书邮件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 欢笑情如旧,萧疏鬓已斑. 01 前 ...

  5. python 批量读取csv_python批量读取csv文件

    请问大神怎样用python批量读取文件夹下的文件? python如何读取CSV文件一部分数据 Python如何批量读取CSV文件并写入TXT? 如何用python把多个csv文件数据处理后汇总到新cs ...

  6. 自动化神器啊,Python 批量读取身份证信息写入 Excel

    大家好,今天分享一个实用技能,利用 Python 批量读取身份证信息写入 Excel. 喜欢记得收藏.关注.点赞. 注:文末提供完整版代码.技术交流方式 读取 以图片形式的身份证为例,信息读取我们使用 ...

  7. python批量读取csv文件-Python读取/批量读取文件

    相信很多人的日常工作中,数据源除了来自数据库以外,其次就是外部文件,因此掌握读取文件的技能是相当必要的.在这里特此整理读取外部文件的方法,希望能有助你们快速解决问题.当然本文对读者的假设是有一定的py ...

  8. python批量读取csv文件-使用Python读写csv文件的三种方法

    行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误.PS:已经被这个错误坑过很多次! 使用python I/O写入 ...

  9. python批量读取grib_windows python读取grib2数据

    一.环境准备 (1).python3环境 (3).wgirb2工具(用于读取grib2文件),下载地址:ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2 二.环境测试 ...

  10. python批量读取文件夹的图片并处理成模型输入格式

    我们知道在训练图像模型时,需要从文件夹里读取图片. 这里演示下,怎样从文件夹里批量读取图片,并处理成我们想要的 x,y 即特征和标签. 输入维度理解 以卷积神经网络为例子. 我们知道卷积神经网络con ...

最新文章

  1. CUDA上深度学习模型量化的自动化优化
  2. IOI2011 BZOJ2600 ricehub
  3. 一文看尽2020全年AI技术突破
  4. node中的流的介绍(Stream)
  5. 通过Visual Studio 2005的项目模板来加速开发过程
  6. jQuery的Growl插件
  7. Vivado ILA无法触发,点Stop Trigger提示There are no armed ILAs
  8. calendar类_带有时区的字符怎样转换为时间及Java 8中日期 与 Calendar 转换
  9. php自动合并,php实现合并数组并去除重复的方法
  10. 剪纸风格的美妆海报设计,你试过吗?
  11. redirect重定向后https变成了http如何解决
  12. [转载]oracle定时器
  13. keepalived vrrp_script脚本不执行解决办法
  14. DPDK收发包流程分析(一)
  15. 编译exe不弹窗口_详解matlab mbuild -setup找不到C++编译器解决方案
  16. C语言抽奖程序随机实现,简单的号码抽奖程序 - oixxan的个人博客 - OSCHINA - 中文开源技术交流社区...
  17. 聊聊微信内页面发Ajax请求会重复请求的问题
  18. Oracle 创建用户授权视图,别名通过同义词解决
  19. oracle表空间权限赋予,Oracle 创建用户、表空间以及授予权限
  20. docker 打包镜像

热门文章

  1. 无线路由器实现局域网内中继功能
  2. mc服务器地图无限大吗,我的世界:4个小秘密,没想到啊,地图的范围这么大!...
  3. 编写c高级语言程序步骤,高级语言程序设计知识点总结一
  4. Nokia手机S40平台手机开发环境的搭建的过程
  5. SSM汽车销售平台的设计与实现毕业设计源码171619
  6. 百度之星1004度度熊的午饭时光
  7. My Firest FireMonkey App
  8. linux佳入门教程,命令行基础工具的更佳替代品
  9. 标段模板、审批流程模板
  10. 梦幻西游热门服务器卡顿延迟,Win10梦幻西游很卡反应很慢该如何处理