结合ESA和OceanColor下载OLCI数据(解决需要下载大量Offline数据的问题)

本文主要是介绍结合ESA和OceanColor下载OLCI数据(解决需要下载大量Offline数据的问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.前言
2.oceancolor上的OLCI数据链接
3.从ESA上下载OLCI的快视图
4.根据快视图的名称从oceancolor下载OLCI数据

建了一个QQ群,大家可以在里边聊聊水色遥感数据下载和数据处理方面的事情:1087024529

1.前言

Sentinel-3卫星搭载的OLCI传感器,作为MERIS传感器的继承者,因其较好的数据质量,受到了广泛的关注。通常情况下,下载Sentinel数据的官方地址是:https://scihub.copernicus.eu/dhus/#/home。经常使用该网站的小伙伴会知道,ESA有个LTA政策,对该政策的简单理解就是一年前的数据被标记为offline,不能立刻下载。点击offline数据的下载按钮,去激活该数据,然后等待大约半个小时即可下载,但一个用户半个小时只能激活一景数据(千万不要重复点击)。当需要下载大量历史数据时变得十分不便(大批offline数据,半小时激活一景,这得到什么时候)。
其实在oceancolor上(https://oceandata.sci.gsfc.nasa.gov/)也有OLCI的L1级数据,且不存在offline数据的问题,但是在oceancolor上根据研究区域和研究时间选择OLCI数据十分不便。
那么是否有可能结合两个网站,实现快速批量下载OLCI的offline数据呢?答案是肯定的。

2.oceancolor上的OLCI数据链接

我们先观察ocean color上的OLCI数据的下载链接:

https://oceandata.sci.gsfc.nasa.gov/sentinel/getfile/S3A_OL_1_EFR____20190105T063307_20190105T063607_20190106T095636_0180_040_034_3780_LN1_O_NT_002.zip

通过观察可以发现,ocean color上的OLCI数据下载链接,除了最后的数据文件名不一样,其他地方一模一样。那现在思路就清晰了,只要在ESA上,检索出来所要数据的文件名,然后根据文件名就可以构建出OLCI的下载链接。构建出数据的下载链接后,将下载链接放入IDM就可以愉快下载了。

3.从ESA上下载OLCI的快视图

在ESA上可以方便地根据研究区域、时间范围等条件检索需要的OLCI数据。检索到数据之后,能够通过爬虫获取到数据的下载链接(当然直接在页面上粘贴复制数据下载链接和数据的文件名也是可以的)。

对于OLCI数据,并不提供云筛选功能,所以需要通过数据的快视图来判断该数据是否值得下载,而在网页上一景一景点开看快视图查看非常麻烦,不如把检索到的快视图全部下载下来,然后进行筛选,根据筛选后的快视图文件名,得到需要的OLCI数据文件名。
这里举一个例子:
1.我随便检索了某个区域,某段时间的OLCI数据
在这里插入图片描述
2.点开一景影像的快视图,把鼠标光标放在快视图上,浏览器的左下角会出现快视图的下载链接(标记2):
在这里插入图片描述
图中标记1是该数据的下载链接,通过对比标记1和标记2可以发现,快视图的下载链接比数据的下载链接多了:/Products(‘Quicklook’)

https://scihub.copernicus.eu/dhus/odata/v1/Products('6a6b1d14-e8f6-4770-859b-819e13c9616d')/$value
https://scihub.copernicus.eu/dhus/odata/v1/Products('6a6b1d14-e8f6-4770-859b-819e13c9616d')/Products('Quicklook')/$value

而我之前做过爬取检索到的数据链接,稍加就可以使用。下面描述具体步骤。

3.将检索到数据的网页保存下来,最好在红框处点击右键另存网页(如果检索的数据很多,最好调整每页数据数到最大):
在这里插入图片描述
在弹出另存网页对话框时,切记将保存类型选为:网页,完成在这里插入图片描述
4.打开保存网页的HTML可以发现,数据的下载链接在一个class属性为list-link selectable的div标签下的a标签中。通过这些信息我们就可以找到数据的下载链接,并且构建出快视图的下载链接,代码如下(最后的快视图链接保存为一个txt文件):

from bs4 import BeautifulSoup
import time
import os
webPage=['F:/MyCSDN/ESA+oceancolor/Page1.html']                    #构建保存文件的路径列表,保存多个网页也可以使用该方案
outFileName='F:/MyCSDN/ESA+oceancolor/quickLookLink.txt'nodeattrs={"class" :"list-link selectable"}  with open(outFileName,'w+') as ofn:for wp in webPage:with open(wp,'rb') as f:ss=f.read()soup=BeautifulSoup(ss,'html.parser') divfind=soup.find_all('div',attrs=nodeattrs)dataLinkList=[]for df in divfind:link=df.find('a').stringid=link.split('\'')[1]qklink="https://scihub.copernicus.eu/dhus/odata/v1/Products('"+id+"')/Products('Quicklook')/$value"#print(qklink)ofn.writelines(qklink+'\n')

保存的结果:
在这里插入图片描述

5.将这些链接导入IDM中,就可以批量进行下载。下载的结果如图所示,可以看到,下载的快视图中包括了数据的文件名。
在这里插入图片描述

4.根据快视图的名称从oceancolor下载OLCI数据

1.根据上一步下载到的快视图文件名(这里可以通过快视图判断影像质量,做一个筛选,把不用的数据删除掉。想不想筛选都随你),构建oceancolor上的OLCI数据下载链接。

import os
qkFileDir='F:/MyCSDN/ESA+oceancolor/QucikLook/'
fileList=os.listdir(qkFileDir)
OLCILink='F:/MyCSDN/ESA+oceancolor/olcilink.txt'
with open(OLCILink,'w') as ol:for fl in fileList:fileName=fl[:-7]dataLink='https://oceandata.sci.gsfc.nasa.gov/sentinel/getfile/'+fileName+'.zip'ol.writelines(dataLink+'\n')

生成的文件结果:
在这里插入图片描述
然后就可以将数据下载链接加入IDM进行批量下载了。

2.将数据加入到IDM之前,需要对IDM进行配置,在(通过菜单栏:下载->选项->站点管理)站点管理器中,加入你的账号名和密码。注意服务器路径写入urs.earthdata.nasa.gov,而不是oceancolor.gsfc.nasa.gov

在这里插入图片描述

这篇关于结合ESA和OceanColor下载OLCI数据(解决需要下载大量Offline数据的问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273480

相关文章

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息