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 ...
随机推荐
- 快速创建Jenkins Job
Jenkins Job 类型 **1.Freestyle project ** 这个是jenkins的基础功能,可以用它来执行各种构建任务,他只能构建在一个电脑上,如果没有太多的需求,这个job基本够 ...
- day32 6 请求转发与重定向的区别、session会话对象 & cookie & 8 应用程序上下文对象ServletContext & 5 请求转发与jsp页面内置对象
1 请求转发与重定向的区别 2 session与cookie的区别 3 过滤器与监听器的区别 4 web-inf目录 web-inf目录是安全目录,无法从客户端访问,只能通过(服务端的)servlet ...
- 【Linux】通过Crontab和shell脚本实现定期备份和删除PG数据库表数据
〇.参考资料 一.Crontab使用 1.查看状态 service crond status 2.新建crontab任务 crontab -e 输入字符串 * * * * * cd /home/big ...
- .NET性能优化-ArrayPool同时复用数组和对象
前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下.读者的问题是这样的: 大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB ...
- 分布式计算MapReduce究竟是怎么一回事?
前言 如果要对文件中的内容进行统计,大家觉得怎么做呢?一般的思路都是将不同地方的文件数据读取到内存中,最后集中进行统计.如果数据量少还好,但是面对海量数据.大数据的场景这样真的合适吗?不合适的话,那有 ...
- MySQL事务(四大特征)-存储过程
目录 一:事务 1.四大特性(ACID) 2.事物存在的必要性(真实比喻) 3.如何使用事务 4.开启事务-回滚-确认 二:事务案例实战 1.模拟消费 2.创建 3.插入数据 4.开启事务 5.修改操 ...
- 如何让铁威马NAS可以通过互联网访问?
当你在家或者出差去外地时候,可能要通过互联网访问你的TNAS设备,而使用远程访问功能,你可以随时随地访问你的TNAS 设备.读取你TNAS 中的文件或是对你的TNAS 设备进行配置.远程访问能给你的工 ...
- vue 引入vant 上传图片oss处理
<van-uploader :before-read="beforeRead" v-model="product.images" max-size=&qu ...
- [编程基础] Python格式化字符串常量f-string总结
Python格式化字符串常量f-string总结 本文主要总结在Python中如何使用格式化字符串常量f-string(Formatted string literals).在 Python 程序中, ...
- session取不到值
今天鼓捣项目时出现了一个问题 项目重启后,设置session值后,第一次请求经过过滤器时 session取不到值,导致被拦截 经过半天的研究,终于...我请教了别人 把代码给了朋友,在朋友一段时间的琢 ...