Python核对遥感影像批量下载情况的方法
本文介绍批量下载遥感影像时,利用Python实现已下载影像文件的核对,并自动生成未下载影像的下载链接列表的方法。
批量下载大量遥感影像数据对于GIS学生与从业人员可谓十分常见。然而,对于动辄成千上万景的遥感影像文件,下载过程中可能会出现各类失败问题,且或许在下载软件或工具中还不能很好显示失败的文件有哪些(这一点在批量下载MODIS产品时显得尤为突出,因为目前Landsat、Sentinel这些遥感数据还可以用常见下载软件进行批量下载,但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文件中。在这里,需要大家的下载链接和遥感影像数据中具有一致且和其它遥感影像数据不重复的部分(一般下载Landsat、MODIS等常见遥感数据产品都满足这一要求),在这里将其称为影像特征段;其中,url[63:108]是提取链接中的影像特征段,大家依据实际情况修改即可,还可以修改为正则表达式的形式;本文中我的遥感影像数据文件名称就是影像特征段自身,因此就没有对遥感影像文件名称加以提取处理,大家基于实际需要修改即可~
至此,大功告成。
Python核对遥感影像批量下载情况的方法的更多相关文章
- ASP.NET批量下载文件的方法
一.实现步骤 在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹.然后调用 RAR程序,对临时文件夹进行压缩,然后输出到 ...
- Python爬虫实战:批量下载网站图片
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: GitPython PS:如有需要Python学习资料的小伙伴可以 ...
- python爬虫练习之批量下载zabbix文档
# -*- coding: UTF-8 -*- import requests,re,time url = 'https://www.zabbix.com/documentation/3.4/zh/m ...
- python爬取并批量下载图片
import requests from lxml import etree url='http://desk.zol.com.cn/meinv/' add1='.html' urls=[] i = ...
- 如何解决Python下 pip install module 下载慢解决方法?
对于Python来编程的用户最大的一个痛点就是,下载模块是下载速度特别慢,那么有没有解决方法呢? 换Python的pip下载源 1.首先安装一个模块 pqi,在cmd下 pip install pqi ...
- 从 NCBI 批量下载基因组的方法
先下载 assembly summary files The assembly_summary files report metadata for the genome assemblies on t ...
- 利用SkyDrive Pro 迅速批量下载SharePoint Server 上已上传的文件
在上一篇<SharePoint Server 2013 让上传文件更精彩>,我们一起了解了如何快速的方便的上传批量文件到SharePoint Server 2013 ,而在这一篇日志中您将 ...
- 分享一款非常好用的Fatkun图片批量下载工具
Fatkun图片批量下载 相信大家一定遇到过有着大量精美图片的网页,譬如美女照片.各种壁纸.设计素材.甚至是1024套图等等,但常常几十上百张的图要一张张手工去点击下载实在能让人抓狂!小编的工作中也常 ...
- GitHub Ribbons : 谈网站的安全性-资源链接如何 预防/实现 爬虫的批量下载!
GitHub Ribbons : 谈网站的安全性-资源链接如何 预防/实现 爬虫的批量下载! 预防方法: 1. 使用随机数字符串,拼接URL! https://camo.githubuserconte ...
- Earthdata批量下载MODIS遥感影像的方法
本文介绍在Earthdata网站中,批量下载MODIS遥感影像的方法. 首先,打开网页:https://search.earthdata.nasa.gov/search ,如果没有Earthd ...
随机推荐
- kubernetes数据持久化PV-PVC详解(一)
官方文档地址: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/ 1. 什么是PV,PVC? 1.1 什么是P ...
- Linux下用rm误删除文件的三种恢复方法
Linux下用rm误删除文件的三种恢复方法 对于rm,很多人都有惨痛的教训.我也遇到一次,一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍.但是很多人可能就不像我这么幸运了.本文 ...
- LeetCode HOT 100:子集(简单易懂的回溯)
题目:78. 子集 题目描述: 给你一个整数数组,数组中元素互不相同.返回数组中所有可能的子集,且子集不能重复! 什么是子集?举个例子:原数组[1, 2, 3],[].[1].[1, 2].[1, 3 ...
- (已转)Linux基础第六章 信号
6.1 前言 本章简单描述信号.信号是Linux系统中,内核和进程通信的一种方式.如果内核希望打断进程的顺序执行,那么内核会在进程的PCB中记录信号.而当这个进程被分配到CPU,进入执行状态时,首先会 ...
- Azure DevOps 的架构窥探
工作的缘故,接触 TFS (Team Foundation Server)挺多的,现在改名为 Azure DevOps,分为 可私有化部署版本 Azure DevOps Server,简称ADS,以及 ...
- [常用工具] OpenCV_contrib库在windows下编译使用指南
本文主要讲述opencv及opencv_contrib库在windows下基于vs2017编译安装指南.所用OpenCV版本为OpenCV4.4,编译平台为vs2017. 文章目录 1 下载 2 编译 ...
- 【MySQL】MySQL8安装
1. MySQL8安装 安装环境 操作系统:CentOS7 MySQL版本:8.0.28 安装方式:二进制Generic 软件路径:/app/database 数据路径:/data/3306 日志路径 ...
- ASP.NET 6.0 Core 迁移 ASP.NET Core 7.0
2022年微软发布了.NET 7, 同时提供了详细的升级迁移方案. Migrate from ASP.NET Core 6.0 to 7.0 今天给大家简单整理.分享一篇文章. 一.首先需要升级Vis ...
- 记一次CVE实战挖掘记录
CVE实战挖掘记录 前一段时间在学习代码审计,然后为了学习就开始在github上面找开源的项目进行练手学习代码审计,这样就可以获取CVE编号. 0x01 cve编号获取流程 首先登录CVE官方网站,选 ...
- 编程思想转换-Lambda表达式
编程思想转换 做什么,而不是怎么做 我们真的希望创建一个匿名内部类对象吗?不.我们只是为了做这件事情而不得不创建一个对象.我们真正希望做的事情是︰将run方法体内的代码传递给 Thread类知晓. 传 ...