最近在研究遥感影像云检测相关课题。其中,Biome是USGS发布的一个公开数据集。其官方地址如下:
Landsat 8 Cloud Cover Assessment Validation Data
该数据集共包含96张多波段遥感图像。官网并未提供一键下载方式且下载地址并无明显命名递增规律(指的是*01.gz,*02.gz … 这种),但是可以确定的是命名都类似 https://landsat.usgs.gov/cloud-validation/cca_l8/(*).tar.gz
。
0. 确定思路
如何在linux平台比较高效的下载该数据集呢?
思路大致就是:
- 爬虫获取数据集链接,存放至txt文件中(换行区分)
- 使用wget命令编写shell脚本实现批量下载。
1. 爬虫
这段代码的主要功能就是爬虫删选出数据的链接并保存到文本文件中。
# coding = utf-8
import os
import requests
import re
url = "https://landsat.usgs.gov/landsat-8-cloud-cover-assessment-validation-data"
res = requests.get(url)
res.encoding = 'utf-8'
res = res.text
it = re.finditer(r"https://landsat.usgs.gov/cloud-validation/cca_l8/(.*).tar.gz",res)
with open("urls.txt", "w+") as f:
for match in it:
print (match.group() )
f.write(match.group() + '\n')
Windows用户到这布就可以不用看了,直接复制到迅雷之类的软件批量下载就可以。
2. shell脚本批量下载
shell脚本主要是循环读取下载链接并做到依次下载
!/bin/bash
# desc: download resource
# author: John
while read line
do
echo $line
url=$(echo "$line" | tr -d '\r')
wget $url
done < url.txt