声明:本文转自大佬博文:https://blog.csdn.net/lidahuilidahui/article/details/90486402#sentinelsat_83,大佬博学,关于哨兵数据的各种处理及下载相关可以移步大佬博客,这里我只是以记录为主自己备份。
博主因为科研需要,经常需要下载哨兵2数据,无奈ESA官方的哥白尼分发网站并不好用,尤其是有一个 账号单次只能下载2景数据的限制,亟需批量下载的工具。
需要说明的是,无论什么方法,有一个ESA哥白尼中心的账号是必须的,否则没有下载权限。
紫色为博主标注及自己做的。
使用SNAP批量下载
官方给的SNAP批量下载请移步原作者博文:https://blog.csdn.net/lidahuilidahui/article/details/90486402#sentinelsat_83
这里说下第三方下载方式
Sentinel-1卫星数据
关于Sentinel-1数据的批量下载,可以到下面的Vertex网站(美国阿拉斯加卫星设备处)下载:https://vertex.daac.asf.alaska.edu/#
该网站帮助文档可以查看批量下载功能,见链接:
https://vertex.daac.asf.alaska.edu/help
这个网站可以下载包括Sentinel-1在内的多种SAR数据(如ALOS-1、Radarsat-1、ERS-1/2等)。
我的朋友告诉我这个网站需要翻墙才能下载数据,但是博主亲测不用翻墙也可以。
缺点是:下载速度经常很慢很慢。
博主批注:第一次听说这个分发中心,不过不能当哨兵2 ,速度还慢的话,没必要尝试了
Sentinel-2 卫星数据
USGS(美国地质调查局网站)提供了关于Sentinel-2数据的批量下载的功能,需要安装Java8(或Java7)开发工具包(JDK)及Bulk Dowload Application(BDA)软件。请参照帮助文档实现批量下载。
USGS网址:https://earthexplorer.usgs.gov/
帮助文档:https://lta.cr.usgs.gov/EEHelp/ee_help
缺点:下载流程复杂(从下订单、处理完成到下载,需要接收多个邮件),并且下载速度很慢。
但是美帝的USGS网站的确提供了许多的免费资源(Landsat ,MODIS,DEM数据等等),还是要称赞一下的。
抱歉,Sentinel-3数据我使用的较少,也没有去找其第三方下载网站。
博主批注:第一次听说这个分发中心,不过不能当哨兵2 ,速度还慢的话,没必要尝试了
sentinelsat包简介
-
sentinelsat包是搜索、下载和检索来自哥白尼数据开放访问中心的Sentinel卫星影像数据Python模块包,易于安装,易于使用
-
sentinelsat包实现了哥白尼数据开放访问中心提供两个API(OData和OpenSearch)对应的查询方法,使得对Sentinel卫星数据进行筛选、排序等操作更加方便
-
sentinelsat包由Marcel Wille, Kersten Clauss 等人长期维护和更新,目前最新版本为V0.13, 支持Python versions 2.7 and 3.4+
其详细介绍请查看:
PyPi sentinelsat网址:https://pypi.org/project/sentinelsat/
sentinelsat包 doc文档: https://sentinelsat.readthedocs.io/en/stable/api.html
sentinelsat包安装
基本条件
-
下载并安装Python(2.7或3.4+,可以到Python官网下载,建议安装Python3版本),建议安装Anaconda(可以到Anaconda官网下载)。
-
拥有哥白尼数据开放访问中心账号(The Copernicus Open Access Hub)
安装
- 标准Python版本安装,通过命令行窗口通过pip安装:
pip install sentinelsat
- 在Anaconda上安装,可以在Anaconda Prompt命令行窗口使用pip安装(但是不能conda安装):
pip install sentinelsat
博主主要使用Anaconda,以其为例,成功安装后如下图所示:
Sentinelsat包主要类对象及其方法
SentinelAPI类对象
SentinelAPI类是sentinelsat包中连接到哥白尼开放存取中心,搜索和下载Sentinel卫星影像的类,是该模块包最重要的类,其类别定义如下:
class sentinelsat.SentinelAPI(user, password,
api_url=‘https://scihub.copernicus.eu/apihub/’, show_progressbars=True,
timeout=None)
注意:这里api_url虽然给出了两个URL,但建议使用后者,即 https://scihub.copernicus.eu/dhus ,因为前一个URL:https://scihub.copernicus.eu/apihub ,无法下载历史数据,即使在历史数据由“Offline”变为“Online”时,也无法下载。但 https://scihub.copernicus.eu/dhus , 在历史数据由“Offline”变为“Online”时,可以恢复下载。其中一个URL下载速度慢时,也可以换另一个。
SentinelAPI类对象重要方法
查询方法
query(area=None, date=None, raw=None,
area_relation='Intersects', order_by=None, limit=None, offset=0, **keywords)
使用一个区域的坐标、日期间隔和OpenSearch API接受的任何其他搜索关键字查询产品。
另一个重要的查询方法:
get_product_odata(id, full=False)
使用一个产品id获取对应的产品,full为Odata API接受的搜索查询关键字参数
关于OpenSearch API与Odata API只需知道它们在sentinelsat包中封装起来的方法不同即可。
query()和get_product_odata()方法的区别:
OpenSearch API的query(),它支持根据产品的属性过滤产品,并一次返回所有匹配产品的元数据;
get_product_odata(),它可以一次查询一个产品,但是为每个产品提供完整的元数据,以及关于产品文件的信息,比如文件大小和校验码(MD5码),这些信息在OpenSearch API中是不可用的。
下载方法
与geojson、pandas、geopandas模块交互
上述类、方法及其它的方法请参考详细介绍参照sentinelsat包 doc文档: https://sentinelsat.readthedocs.io/en/stable/api.html