天天看點

如何使用linux優雅的下載下傳雲檢測Biome資料集

最近在研究遙感影像雲檢測相關課題。其中,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平台比較高效的下載下傳該資料集呢?

思路大緻就是:

  1. 爬蟲擷取資料集連結,存放至txt檔案中(換行區分)
  2. 使用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

           

繼續閱讀