本文介绍批量下载遥感影像时,利用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]是提取链接中的影像特征段,大家依据实际情况修改即可,还可以修改为正则表达式的形式;本文中我的遥感影像数据文件名称就是影像特征段自身,因此就没有对遥感影像文件名称加以提取处理,大家基于实际需要修改即可~

  至此,大功告成。

Python核对遥感影像批量下载情况的方法的更多相关文章

  1. ASP.NET批量下载文件的方法

    一.实现步骤 在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹.然后调用 RAR程序,对临时文件夹进行压缩,然后输出到 ...

  2. Python爬虫实战:批量下载网站图片

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: GitPython PS:如有需要Python学习资料的小伙伴可以 ...

  3. python爬虫练习之批量下载zabbix文档

    # -*- coding: UTF-8 -*- import requests,re,time url = 'https://www.zabbix.com/documentation/3.4/zh/m ...

  4. python爬取并批量下载图片

    import requests from lxml import etree url='http://desk.zol.com.cn/meinv/' add1='.html' urls=[] i = ...

  5. 如何解决Python下 pip install module 下载慢解决方法?

    对于Python来编程的用户最大的一个痛点就是,下载模块是下载速度特别慢,那么有没有解决方法呢? 换Python的pip下载源 1.首先安装一个模块 pqi,在cmd下 pip install pqi ...

  6. 从 NCBI 批量下载基因组的方法

    先下载 assembly summary files The assembly_summary files report metadata for the genome assemblies on t ...

  7. 利用SkyDrive Pro 迅速批量下载SharePoint Server 上已上传的文件

    在上一篇<SharePoint Server 2013 让上传文件更精彩>,我们一起了解了如何快速的方便的上传批量文件到SharePoint Server 2013 ,而在这一篇日志中您将 ...

  8. 分享一款非常好用的Fatkun图片批量下载工具

    Fatkun图片批量下载 相信大家一定遇到过有着大量精美图片的网页,譬如美女照片.各种壁纸.设计素材.甚至是1024套图等等,但常常几十上百张的图要一张张手工去点击下载实在能让人抓狂!小编的工作中也常 ...

  9. GitHub Ribbons : 谈网站的安全性-资源链接如何 预防/实现 爬虫的批量下载!

    GitHub Ribbons : 谈网站的安全性-资源链接如何 预防/实现 爬虫的批量下载! 预防方法: 1. 使用随机数字符串,拼接URL! https://camo.githubuserconte ...

  10. Earthdata批量下载MODIS遥感影像的方法

      本文介绍在Earthdata网站中,批量下载MODIS遥感影像的方法.   首先,打开网页:https://search.earthdata.nasa.gov/search ,如果没有Earthd ...

随机推荐

  1. 关于CSDN获取博客内容接口的x-ca-signature签名算法研究

    前言 源码下载 不知道怎么就不通过了,这篇文章放出去几个月了,然后突然告诉我不行了,所以我打算换个平台(至少不能在一棵树吊死),垃圾审核 我最初想直接获取html博客,然后保存在本地,最后发布到别的博 ...

  2. DTSE Tech Talk 第13期:Serverless凭什么被誉为未来云计算范式?

    摘要:在未来,云上交付模式会逐步从Serverful为主转向Serverless为主. 本文分享自华为云社区<DTSE Tech Talk 第13期:Serverless凭什么被誉为未来云计算范 ...

  3. 零基础学习python的第一天整理——python的安装以及pycharm安装

    ​ 一.python的安装 首先我们来谈一谈python的安装,python的官网地址:Welcome to Python.org​编辑 进入官网后点击Downloads,然后选择自己对应的系统,比如 ...

  4. 【SQL必知必会】SQL知识查缺补漏

    一.使用函数处理数据 1.字符串处理函数-顾客登录名[sql22] 思路1:substring(word,1,n).upper.concat SELECT cust_id, cust_name, UP ...

  5. requests模块和openpyxl模块

    第三方模块的下载和使用 1,第三方模块就是别人大神们已经写好的模块,功能特别强大.我们如果像使用第三方模块就先要进行下载.下载完成后 才可以在python中直接调用 2.下载方式一:pip工具 pip ...

  6. windows上用vs2017静态编译onnxruntime-gpu CUDA cuDNN TensorRT的坎坷之路

    因为工作业务需求的关系,需编译onnxruntime引入项目中使用,主项目exe是使用的vs2017+qt5.12. onnxruntime就不用介绍是啥了撒,在优化和加速AI机器学习推理和训练这块赫 ...

  7. 如何在路由绑定中使用 IParsable

    IParsable 是 .Net 7 中新增的接口,它可以将字符串转换为对应的实体.在 Controller 的 Route 绑定中可以使用 IParsable 来绑定复杂的实体. 实验背景 假设有一 ...

  8. vue3 递归组件 树形组件

    递归组件 第一种方式,直接自己调用自己 Tree.vue <template> <div class="tree"> <div v-for=" ...

  9. CH9120/CH9121 WCH-ETH透传芯片(持续更新)

    网络变压器中心抽头: 如果使用网络变压器,变压器的中心抽头需要看PHY芯片时电流型还是电压型. 如果是电压型,则需要通过一个电容直接接到GND. 如果时电流型的PHY,那么就需要根据PHY芯片来看,从 ...

  10. Vue前后端分离实现登录的一个简单demo

    1.建立一个Maven项目,并添加Spring相关依赖 2.编写Controller类相应的接口和配置类 LoginController类,编写接口的业务逻辑 package com.springbo ...