利用Python下载Landsat数据
程序员文章站
2022-07-12 23:49:03
...
尽管Landsat数据应用广泛,但是数据下载一直都是比较困难的事情。国内数据一般采用地理空间数据云或者中科院的网站勉强都可以搞定。但是国外的数据一般很难下载到。这里面主要存在两个问题:
1)因为下载数据的网站经常性连接不上,包括EarthExplore和Glovis。
2)批量数据下载困难。
最近在思考如何更简单的进行数据的批量下载。下面介绍一下使用方法,代码依然采用的是Python。下载方式其实非常简单,主要用到landsatxplore这个库,这个库的github地址是https://github.com/yannforget/landsatxplore。里面有详细的介绍,我主要介绍一下我的使用心得。使用前,你需要先注册EarthExplore的账户,记住你的username 和 password
安装:
pip install landsatxplore
用户登录:
api = landsatxplore.api.API(username, password)
数据搜索:这里面我没换位置,因为显然经纬度的点在国外,数据集你可以选择TM,ETM和Landsat8 (LANDSAT_TM_C1|LANDSAT_ETM_C1|LANDSAT_8_C1),这里我以Landsat8为例,设置数据筛选时间,云量
scenes = api.search(
dataset='LANDSAT_8_C1',
latitude=19.53,
longitude=-1.53,
start_date='2014-01-01',
end_date='2016-01-01',
max_cloud_cover=10)
数据筛选结果:
数据下载:
Earth_Down = EarthExplorer(username, password)
Earth_Down.download(scene_id='LC81960462014022LGN01', output_dir='E:\data')
数据下载结果:
下载速度大概4M/s,速度还可以。目前批量下载没有问题,就是还不清楚批量下载是网络连接是不是稳定。
详细代码如下:
import landsatxplore.api
from landsatxplore.earthexplorer import EarthExplorer
def request_Landsat(username,password,product,lat,lon,start_date,end_date,cloud_max):
api = landsatxplore.api.API(username, password)
scenes = api.search(
dataset=product,
latitude=lat,
longitude=lon,
start_date=start_date,
end_date=end_date,
max_cloud_cover=cloud_max)
print('{} scenes found.'.format(len(scenes)))
api.logout()
return scenes
def download_landsat(username,password,Landsat_name,output_dir):
Earth_Down = EarthExplorer(username, password)
for scene in Landsat_name:
ID = scene['entityId']
print('Downloading data %s '% ID)
Earth_Down.download(scene_id=ID, output_dir=output_dir)
Earth_Down.logout()
if __name__ == '__main__':
username = ''
password = ''
product = 'LANDSAT_8_C1'
lat = 19.53
lon = -1.53
start_date='2014-01-01'
end_date='2016-01-01'
cloud_max = 10
output_dir = '.\data'
Landsat_name = request_Landsat(username,password,product,lat,lon,start_date,end_date,cloud_max)
download_landsat(username,password,Landsat_name,output_dir)
祝好!
2020.01.02
下一篇: 文件名后缀添加删除.bat
推荐阅读
-
利用python对Excel中的特定数据提取并写入新表的方法
-
Python使用scrapy采集数据过程中放回下载过大页面的方法
-
从贵州茅台上市的第一天起,每天买一手茅台能够盈利多少?-利用python进行茅台股票数据分析
-
利用Python进行数据分析_Pandas_处理缺失数据
-
[python爬虫]爬取英雄联盟所有英雄数据并下载所有英雄皮肤
-
利用python如何处理百万条数据(适用java新手)
-
荐 Python爬虫:基于Scrapy爬取京东商品数据并保存到mysql且下载商品图片
-
利用python进行数据分析
-
第二章 如何利用Python读取Oracle表数据和表头转化为字典类型
-
Python利用PyQt5制作一个获取网络实时NBA数据并播报的GUI程序