Sentinel-2 (哨兵2号) 数据批量下载教程 [python]

Sentinel-2 [哨兵2号] 数据批量下载教程 [python]

    • 1. 选择数据
    • 2. 数据下载
      • 2.1 下载链接文件
      • 2.2 安装Python及data_downloader包
      • 2.3 创建.netrc
      • 2.4 批量下载

最近要用到哨兵2号数据,发现只能一个一个手动下,而且不能同时下载多个,只能下完一个再下另一个。下载数量多的时候太浪费时间了,想了个办法快一点,在此记录一下。

1. 选择数据

先到哨兵官网:https://scihub.copernicus.eu/dhus/#/home ,登录自己的帐号(没有的话注册一个), 选择需要的数据,加入购物车。

哨兵2号数据介绍及数据选择,可参考:https://blog.csdn.net/qq_41718357/article/details/83536322

2. 数据下载

2.1 下载链接文件

打开购物车,不要勾选任何影像,直接点击右下角的下载图表,会下载一个包含下载链接的 products.meta4 文件

Sentinel-2 (哨兵2号) 数据批量下载教程 [python]_第1张图片

2.2 安装Python及data_downloader包

本文使用的是Python脚本,来批量下载文件。如果使用本文的下载方式,请先下载Python3.6以上的版本,并使用pip安装data_downloader包:

pip install data_downloader

2.3 创建.netrc

创建 .netrc ,可以保存网站的帐号密码信息,当程序下载时,会自动读取对应网站的帐号密码,无须用户反复输入。

下载哨兵数据需要账户与密码,如果没有请先在官网注册一个。

将下面代码中的your_usernameyour_password,改为自己在哨兵官网注册的用户名与密码,并复制到Python编辑器中执行。

from data_downloader import downloader

netrc = downloader.Netrc()
netrc.add('scihub.copernicus.eu','your_username','your_password')

执行后会在用户目录创建一个.netrc文件,当下载需要帐号密码的时候,会读取此文件。

如果账号或密码输入错误,执行以下代码进行更新:

netrc.add('scihub.copernicus.eu','your_username','your_password',overwrite=True)

2.4 批量下载

创建一个Python文件,复制下面代码,并根据自己情况改变folder_outurl_file路径,执行即可批量下载。

  1. 可以通过改变folder_outurl_file路径,来改变文件下载目录与包含url的文件路径
  2. 本脚本会自动跳过已下载的文件,并且支持断点续传。如果下载中断,个别文件下载不完整,重新执行本脚本即可。
#!/usr/bin/env python3
"""
Created on Fri Sep 11 09:45:33 2020

@author: Chengyan Fan
"""
from xml.dom.minidom import parse
from data_downloader import downloader

####################################################################################################
#  在此修改输入输出文件路径
#########################

# 文件输出目录,需确保此文件夹存在
folder_out = r'D:\哨兵2号数据'
# 第一步下载的包含url的 products.meta4 文件
url_file = r'C:\Users\Chengyan Fan\Desktop\products.meta4'
####################################################################################################
    
    
data = parse(url_file).documentElement
urls = [i.childNodes[0].nodeValue for i in data.getElementsByTagName('url')]

downloader.download_datas(urls,folder_out)

Sentinel-2 (哨兵2号) 数据批量下载教程 [python]_第2张图片

你可能感兴趣的:(地理空间数据下载与处理,python)