高分辨率的土地覆盖产品是我们对小区域进行研究时不可或缺的数据。清华大学的宫鹏教授团队发布过一套10m分辨率的地物覆盖产品。并且这一套产品面向全球公开。
数据的下载地址为:
http://data.ess.tsinghua.edu.cn/fromglc10_2017v01.html
打开网址我们就可以看到包含所有地物覆盖数据的表格:
第一个文件是对像元值所代表的地物进行介绍:
但是,这全球10m分辨率的地物覆被的数据量挺大的。如果我们想下载全球的数据又不可能一个一个的去点击下载。
虽然我也不知道下载全球数据有什么用,但就是喜欢自己硬盘装的满满的感觉,哈哈哈。
下面我们就看一下怎么用python把这一页的数据都下载到你硬盘上吧。
import requests
from bs4 import BeautifulSoup
import time
url='http://data.ess.tsinghua.edu.cn/fromglc10_2017v01.html'
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/80.0.3987.132 Safari/537.36'}
url_data=requests.get(url)
contend = BeautifulSoup(url_data.content,'lxml')
trs = contend.find_all('tr')
tif_url=[i.find_all('td')[1].find('a')['href'] for i in trs]
#毕竟下载那么多数据,总有失败的,把下载失败的链接保存起来,接下来可以重新下载
fail_url=[]
for i in tif_url:
try:
tif_data = requests.get(i, headers=head, stream=True, timeout=15)
open(r'替换为你的路径\{}'.format(i.split('/')[-1]), 'wb').write(tif_data.content)
del tif_data
print("done")
except requests.exceptions.RequestException as e:
print(i.split('/')[-1],'失败')
fail_url.append(i)
continue
time.sleep(3)
#对失败的链接重新下载
for i in fail_url:
try:
tif_data = requests.get(i, headers=head, stream=True, timeout=15)
open(r'替换为你的路径\{}'.format(i.split('/')[-1]), 'wb').write(tif_data.content)
del tif_data
print("done")
except requests.exceptions.RequestException as e:
print(i.split('/')[-1],'又失败了,就先不下载它了')
continue
time.sleep(3)
我们把上面代码的路径替换一下就可以运行,小编这个代码也没有运行完,因为下载了30多个G的时候,电脑一不小心关机了,哭泣!
不过应该是可以把所有10m分辨率地物覆盖数据都下载下来的!