结合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

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/