本文介绍批量下载遥感影像时,利用Python实现已下载影像文件的核对,并自动生成未下载影像的下载链接列表的方法。

  批量下载大量遥感影像数据对于GIS学生与从业人员可谓十分常见。然而,对于动辄成千上万景的遥感影像文件,下载过程中可能会出现各类失败问题,且或许在下载软件或工具中还不能很好显示失败的文件有哪些(这一点在批量下载MODIS产品时显得尤为突出,因为目前LandsatSentinel这些遥感数据还可以用常见下载软件进行批量下载,但MODIS批量下载却变得越来越麻烦),从而使得最终下载完成后的文件夹中遥感影像文件数量与预期下载数量不符合,即部分影像文件没有下载下来。

  针对这种情况,需要我们对缺失的文件加以筛选,并重新生成下载链接并下载;在文件数量很大时,手动实现上述功能显然是不现实的;而我们可以用Python短短几行代码来实现这一过程。

  首先,展示代码如下:

import os

all_url_file_path='H:/s2021_3.txt'
download_hdf_file_path='H:/s2021_3_test/'
lost_url_file_path='H:/s2021_3_lost.txt' download_hdf=os.listdir(download_hdf_file_path) with open(all_url_file_path,'r') as all_url_file:
all_url=all_url_file.readlines()
for url in all_url:
url_single_hdf=url[63:108]
if url_single_hdf not in download_hdf:
with open(lost_url_file_path,'a') as lost_url_file:
lost_url_file.write(url)

  其中,all_url_file_path是包含我们全部需要下载的遥感影像下载链接的文件,一般都会是.txt格式(因此如果大家用GEE等方法下载可能就不适用啦);download_hdf_file_path是存放下载后遥感影像的文件夹,lost_url_file_path是程序生成未下载遥感影像文件下载链接的.txt文件(程序自动创建,大家无需手动建立)。

  其实原理很简单,就是依据已下载文件名称和全部链接中的名称进行对比,将为在已下载文件中对比到的影像文件下载链接复制到新.txt文件中。在这里,需要大家的下载链接和遥感影像数据中具有一致且和其它遥感影像数据不重复的部分(一般下载LandsatMODIS等常见遥感数据产品都满足这一要求),在这里将其称为影像特征段;其中,url[63:108]是提取链接中的影像特征段,大家依据实际情况修改即可,还可以修改为正则表达式的形式;本文中我的遥感影像数据文件名称就是影像特征段自身,因此就没有对遥感影像文件名称加以提取处理,大家基于实际需要修改即可~

  至此,大功告成。

最新文章

  1. java的几种连接池
  2. 里面的div怎么撑开外面的div让高度自适应
  3. vi/vim基本使用方法
  4. .net 使用ffmpeg.exe进行音频转码
  5. 对象化的Http和请求对象HttpRequest
  6. TCP协议中的计时器
  7. ORACLE数据库常见问题汇总
  8. Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现
  9. (转) Spring Boot MyBatis 连接数据库
  10. 通过grub-install命令把grub安装到u盘
  11. Scala编程入门---函数式编程之集合操作
  12. Linux自启动执行脚本方法
  13. IDEA环境下GIT操作浅析之一Idea下仓库初始化与文件提交涉及到的基本命令
  14. Java关于远程调试程序教程
  15. Activiti动态设置办理人扩展
  16. flask小例
  17. Windows Phone Splash Screen
  18. 纯css实现
  19. nodejs学习笔记<七> 路由
  20. js,javascript,打印对象,object

热门文章

  1. ArcEngine要素编辑遇到的一些问题
  2. JavaScript中的Error错误对象与自定义错误类型
  3. 【面试题总结】JVM01-组成及垃圾回收
  4. selenium常用配置
  5. 安装es可视化软件Kibana
  6. psutil模块使用(系统监控,性能分析,进程管理)
  7. webShell攻击及防御
  8. 【FAQ】在华为鸿蒙车机上集成华为帐号的常见问题总结
  9. Jenkins&&gitlab2
  10. 【机器学习】李宏毅——Explainable ML(可解释性的机器学习)