从Eumetsat批量下载哨兵数据等各种数据

news2024/12/24 20:54:59

从Eumetsat批量下载哨兵数据等各种数据

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情!

批量下载Sentinel数据脚本2023

  • 从Eumetsat批量下载哨兵数据等各种数据
    • 🌿前言
    • 🍀脚本构成
      • ClassEumdac.py
      • EUMETSATMain.py
    • 🌸使用教程
      • 🍗设置products_url
      • 🍟设置用户参数
      • 🍔运行程序
    • 🌹结语


📆Date: 2024年1月6日
🎬Author: 小 y 同 学
🔖Language: Python

  批量下载Eumetsat官网的数据(Sentinel-3、Sentinel-6等数据产品以及一些气象数据产品)


🌿前言

  1. 脚本介绍:使用Python+科学上网+多进程,批量下载Eumetsat官网的数据(Sentinel-3、Sentinel-6等数据产品以及一些气象数据产品)

  2. Eumetsat官网:https://data.eumetsat.int/search?

  3. Eumetsat简介:EUMETSAT(European Organisation for the Exploitation of Meteorological Satellites) 是欧洲气象卫星开发组织,其主要宗旨是建立、维护和运行欧洲的气象卫星系统,其官网不仅仅提供有Sentinel-3、Sentinel-6、Jason-3等卫星数据,还包括其他气象数据产品。具体可以进入官网进行查看。

    Eumetsat官网

    Eumetsat检索数据

  4. **敬请关注项目Github仓库地址:**https://github.com/cyloveyou/Eumetsat_Download,若后续脚本有更新将同步到Github。

🍀脚本构成

ClassEumdac.py

包含了UserPrint、ProductsInfoFile、SaveParam、UserInfo、ProductInfo四个类。

  1. UserPrint:包含了一些个性化打印提示函数。
  2. ProductsInfoFile:主要是从获取的JSON数据提取下载链接、读取下载链接等功能。
  3. SaveParam:保存参数,包含缓存文件路径和保存路径的创建。
  4. UserInfo:用户个人信息customer_key、customer_secret、token等
  5. ProductInfo:对单个产品进行下载。

EUMETSATMain.py

  程序入口,包含了一些参数设置,具体设置教程见下文。

🌸使用教程

  主要包括设置products_url,设置用户参数。


🍗设置products_url

  1. 获取products_url,进入EUMETSATM官网https://data.eumetsat.int/search?,选择需要的产品数据文件进行检索,(脚本将会下载检索得到的所有结果)。
    产品检索

  2. 获取JSON url

    准备获取JSON网址

    获取JSON网址

  3. 将JSON url复制粘贴到products_url.txt文件中

    products_url.txt文本

  4. 至此,products_url设置完成。


🍟设置用户参数

  1. consumer_key和consumer_secret参数设置
    登录EUMETSAT,点击API Key,随后即可看到参数,复制替换到脚本

    API Key

    consumer_key&&consumer_secret

  2. products_url_path、products_file_path以及download_path参数设置

  products_url_path:是存放JSON url的文件,这里默认为products_url.txt,也就是第一步的.txt文件。

  products_file_path:用于存放脚本从JSON url获取的产品下载链接文件,同时也用于下载脚本的输入数据。

  download_path:产品保存文件夹,程序会自动以该路径创建缓存文件夹(temp)和完成文件夹(finish),下载完整的数据会被保存到finish文件夹中。

  1. IPPort参数设置

    IPPort为本地代理参数,开启科学上网,具体八仙过海,此处做不赘述。值得注意的是:需要保证代理流量足够
    Windows自带搜索框,搜索Internet属性,按下图操作。

    IPPort参数设置

    需要注意的是,程序中IPPort写法应为替换位置一:替换位置二

  2. multiN参数设置

  multiN为多进程个数参数,一般小于CPU核数,不可过大


🍔运行程序

  1. 经过上述参数设置完成后,可以运行程序,会出现以下提示:

运行程序结果

  1. 对于下载出错的文件,会提示并随机等待几十秒后重新下载:

下载出错的文件运行结果

  1. 对于已经存在的文件,会跳过下载:

已经存在的文件运行结果

  1. 对于Token过期,会重新获取Token并重新下载(这里目前还未遇到,不便截图)

🌹结语

  1. 项目源码已托管与Github仓库,公众号回复关键字“240101”获取~

  2. 就目前而言,脚本对于断网、token过期等常见现象抵抗能力良好,还遇到过异常情况,欢迎邮箱私信。

  3. 对于本脚本,还有很多可以优化的地方,希望大家可以多给些建议,不忘收藏关注😉

  4. 本人也是测绘遥感方向的学习者,愿意结交志同道合的伙伴,对于脚本的相关问题可在一定程度上提供帮助。

  5. 脚本进程数不宜设置过大,若修改脚本进程过大放在多核服务器上执行导致对EUMETSAT服务器的攻击行为,本站不承担任何责任。

  6. …最终解释权归作者所有。作者邮箱:3232076199@qq.com,烦请说明来意。


  • 路虽远,行则将至;事虽难,做则必成。希望认真学习的你能够有所收获~

  • 本公众号的原创成果,在未经允许的情况下,请勿用于任何商业用途!

  • 如果本文有幸可以帮到您,欢迎您的点赞、收藏与关注;您的点赞、收藏与关注是我创作的最大动力~


微信公众号

CSDN博客二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1361242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原生微信小程序如何动态修改svg图片颜色及尺寸、宽高(封装svgIcon组件)解决ios不显示问题

最终效果 前言 动态设置Svg图片颜色就是修改Svg源码的path中的fill属性, 通过wx.getFileSystemManager().readFile读取.xlsx文件 ios不显示需要把encoding设置 binary 把文件转成base64 封装svg-icon组件 1、在项目的components下新建svg-icon文件夹,新…

no usable temporary directory found in %s“ % dirlist 问题解决

提示其实就是没有可用空间,那我们就找到占用空间大且无用的数据文件删除掉 du -sh * 删除掉/tmp目录下的文件。 重启 问题解决

cpufreq子系统

cpufreq是linux上负责实现动态调频的关键,这篇笔记总结了linux内核cpufreq子系统的关键实现(Linux 3.18.140)。 概述 借用一张网络上的图片来看cpufreq子系统的整体结构: 用户态接口:cpufreq通过sysfs向用户态暴露接…

2022年多元统计分析期中试卷

多元正态均值检验 一、去年卖出的一岁牛犊的平均身高为 51 英寸,平均背脂厚度是 0.3 英寸,平均肩高是 56 英寸。已知今年卖出的 76 头一岁牛犊的 3 项平均指标为(50, 0.2, 54)‘,样本协差阵及其逆矩阵为 S [ 3.00 − 0.053 2.97 − 0.053 0…

【Bootstrap5学习 day12】

Bootstrap5 导航 Bootstrap5提供了一种简单快捷的方法来创建基本导航,它提供了非常灵活和优雅的选项卡和Pills等组件。Bootstrap5的所有导航组件,包括选项卡和Pillss,都通过基本的.nav类共享相同的基本标记和样式。 创建基本导航 要创建简单…

eureka注册列表 某服务出现多个服务实例

最近文件导出功能偶发成功,大部分情况都失败,开始以为接口被拦截,gateway服务没有接口调用日志,发现测试环境可以,正式环境功能无法正常使用。 偶然看到注册中心如下 发现file服务有3个实例,调用接口将错误…

Java十种经典排序算法详解与应用

数组的排序 前言 排序概念 排序是将一组数据,依据指定的顺序进行排列的过程。 排序是算法中的一部分,也叫排序算法。算法处理数据,而数据的处理最好是要找到他们的规律,这个规律中有很大一部分就是要进行排序,所以需…

Excel中快速隐藏中间四位手机号或者身份证号等

注意:以下方式必须再新增一列,配合旧的一列用来对比操作,即根据旧的一列的数据源,通过新的一列的操作逻辑来生成新的隐藏数据 1、快捷方式是使用CtrlE 新建一列:手动输入第一个手机号隐藏后的号码,即在N2单…

VS+QT五子棋游戏开发

1、首先安装好VS软件和QT库,将其配置好,具体不在此展开说明。 2、文件结构如下图: 3、绘制棋盘代码,如下: void Qwzq::paintEvent(QPaintEvent* event) {QPainter painter(this);painter.setRenderHint(QPainter::An…

Unity之键盘鼠标的监控

小编最近在玩大表哥2,通过 W、A、S、D 来移动亚瑟,鼠标左键来不吃牛肉 我们都知道玩家通过按键鼠标来控制游戏人物做出相应的行为动作,那在Unity引擎里是怎么知道玩家是如何操作的呢?本篇来介绍Unity是怎样监控键盘和鼠标的。 首先…

智创有术开发公司,星潮宇宙开发。

2024年,星潮宇宙全网首发,一个全新的赛道将被开启,这将对游戏产业产生深远的影响。本文将深入探讨这场首发的对接团队以及他们的突破性举措,以展示其对游戏界的重要意义。 星潮宇宙全网首发概述 星潮宇宙的全网首发意味着将有一…

Cloud模型matlab

学习资料python 多维正态云python 预备知识: 如何获取具有特定均值和方差的正态分布随机数。首先,初始化随机数生成器,以使本示例中的结果具备可重复性。 rng(0,twister);基于均值为 500 且标准差为 5 的正态分布创建包含 1000 个随机值的向…

损失函数篇 | YOLOv8 引入 Shape-IoU 考虑边框形状与尺度的度量

作者导读:Shape-IoU:考虑边框形状与尺度的度量 论文地址:https://arxiv.org/abs/2312.17663 作者视频解读:https://www.bilibili.com 开源代码地址:https://github.com/malagoutou/Shape-IoU/blob/main/shapeiou.py…

Linux第16步_安装NFS服务

NFS(Network File System)是一种在网络上实现的分布式文件系统,它允许不同的操作系统和设备之间共享文件和资源。 在创建的linux目录下,再创建一个“nfs“文件夹,用来供nfs服务器使用,便于”我们的开发板“…

Android Studio 模拟器卡死的解决方法!

目录 前言 一、常规方法 二、简便解决方法 前言 在开发过程中,使用Android Studio模拟器是一种常见的方式来测试和调试应用程序。然而,有时候你可能会遇到模拟器卡死的情况,这给开发工作带来了一定的困扰。模拟器卡死可能会让你无法正常进…

设计模式——迭代器模式(Iterator Pattern)

概述 迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。 在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有…

密码学入门 古老的围栏密码技术

1、简述 由于隐私和安全的重要性不断增加,已经开发了多种加密方法和技术来保护我们的敏感数据。随着时间的推移而演变,从经典密码学发展到现代密码学。 在本文中,我们将了解一种被称为围栏密码技术的技术,涵盖其加密和解密过程及其…

Unity组件开发--升降梯

我开发的升降梯由三个部分组成,反正适用于我的需求了,其他人想复用到自己的项目的话,不一定。写的也不是很好,感觉搞的有点复杂啦。完全可以在优化一下,项目赶工期,就先这样吧。能用就行,其他的…

MidJourney笔记(10)-faq-fast-help-imagine-info-public-stealth

/faq 在官方 Midjourney Discord 服务器中使用可快速生成流行提示工艺频道常见问题解答的链接。 不过这个命令,我也是没有找到入口,之前还能在MidJourney的频道里使用,然后最近发现没有权限,有点奇怪。不知道系统又做了什么升级。 /fast 切换到快速模式。

Vue3-34-路由-路由配置参数 props

说明 路由的路径中可以携带参数, 形式如 :/a/:pname ,这个:表示这是个参数,pname :表示 参数名称。 在组件中,可以通过 当前路由对象的 params 属性来获取到这个参数, 当前路由对象 可以通过 us…