Python批量下载ERA5数据

news2024/11/26 4:28:13

1. ERA5数据简介

ERA5是第五代ECMWF大气再分析全球气候数据(ECMWF),该数据集的第一部分现在可以公开使用(1979年到3个月内)。ERA5数据提供每小时的大气、陆地和海洋气候变量的估计值,地球数据精确到了30km网格,包括了137层的大气数据。
网址:ERA-5

2. 下载数据的准备工作

(1) 注册CDS账号

可使用邮箱直接注册,注册网址如下:https://cds.climate.copernicus.eu/user/register?destination=%2F%23!%2Fhome
注册完后查看自己的邮箱,会给个链接设置密码。

(2) 获取API key

  • 注册完成后,进行登录,点击右上角的用户,查看用户信息,找到下图框出的API key:
    在这里插入图片描述

(3) 创建".cdsapirc"文件

  • 在路径 “C:\Users\用户名” 底下创建 “.cdsapirc” 文件(打开文本文档,输入下面内容后,另存为,选择文件类型-”所有文件“,文件名: “.cdsapirc”),在 “.cdsapirc” 文件输入的内容如下:
url: https://cds.climate.copernicus.eu/api/v2
key: UID:API Key

其中UID替换为上图红框给出的UID的数字,API key也替换为红框框住部分的数字。

(4) 安装cdsapi第三方库

pip install cdsapi

在这里插入图片描述

3. 批量下载

以下载ERA5-Land hourly data from 1950 to present中的数据举例:

  • 选择自己需要的数据、年份、月份、天、时间、以及空间位置

在这里插入图片描述

  • 然后下滑到最后,点击“Show API request” 选项,得到下面所示的图,其中“Terms of use”是一些条例,得先点击同意,才能下载。
    在这里插入图片描述
  • 将上述代码复制到一个.py文件下,然后Python运行,即可下载再分析数据。

4. 批量下载数据

  • 例如,要下载 “ERA5 hourly data on single levels from 1979 to present” 数据集中1979年到2020年每个月的全球2 m温度再分析数据,并保存为nc文件。
import cdsapi
import calendar

c = cdsapi.Client()  # 创建用户

# 数据信息字典
dic = {
    'product_type': 'reanalysis',  # 产品类型
    'format': 'netcdf',  # 数据格式
    'variable': '2m_temperature',  # 变量名称
    'year': '',  # 年,设为空
    'month': '',  # 月,设为空
    'day': [],  # 日,设为空
    'time': [  # 小时
        '00:00', '01:00', '02:00', '03:00', '04:00', '05:00',
        '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
        '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
        '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'
    ]
}

# 通过循环批量下载1979年到2020年所有月份数据
for y in range(1979, 2021):  # 遍历年
    for m in range(1, 13):  # 遍历月
        day_num = calendar.monthrange(y, m)[1]  # 根据年月,获取当月日数
        # 将年、月、日更新至字典中
        dic['year'] = str(y)
        dic['month'] = str(m).zfill(2)
        dic['day'] = [str(d).zfill(2) for d in range(1, day_num + 1)]
        filename = 'E:\\Data\\ERA5\\1979-2020\\2m_temperature\\' 
        			+ str(y) + str(m).zfill(2) + '.nc'  # 文件存储路径
        c.retrieve('reanalysis-era5-single-levels', dic, filename)  # 下载数据

5. 可使用IDM加速下载

详情请参考:https://blog.csdn.net/qq_39373443/article/details/118086241

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

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

相关文章

【教3妹学编程-算法题】最大单词长度乘积

3妹:哇,今天好冷啊, 不想上班。 2哥:今天气温比昨天低8度,3妹要空厚一点啊。 3妹 : 嗯, 赶紧把我的羽绒服找出来穿上! 2哥:哈哈,那倒还不至于, 不过气温骤降&…

使用Anaconda安装TensorFlow环境以及没有搜到的报错的解决方法

1.在官网下载Anaconda 这一步几乎不会有人报错 下稳定的版本 或者最新的版本都可以 2.TensorFlow分两个版本 一个是用cpu跑 另一个是用gpu跑 显而易见 cpu的计算性能已经比不上现在主流的显卡了 所以有独显的电脑尽量安装gpu版本 CPU版本: 先给出cpu版本的安装方法: 打开A…

体坛巨星商业价值完美呈现,B体育等超巨品牌堪称经典案例

近几年,伴随着互联网的发展,我们惊喜的发现体坛巨星的商业代言越来越多,他们代言的广告已经融入到我们的生活之中,陪伴很多人度过了美妙的时刻。越来越多的品牌也意识到,比起娱乐明星,体坛巨星的全球属性对…

EMS员工管理系统 python

python基础练习,简单的增删改查,涉及python基础语法,逻辑、分支结构以及一些基础数据格式的操作,文件操作,思路理解等等 部分代码如下 print(""*20,"欢迎使用员工管理系统",""*20)# em…

浏览器自动播放音视频-前端实现方案

目录 前言 浏览器自动播放策略 策略详情: 实现方案 方案1: 互动后播放 方案2: 互动后出声 总结 前言 在开发中可能有遇到这样的需求,当用户打开页面后,需要自动播放视频或音频,按理说那就打开页面…

Vue2和Vue3生命周期映射关系及异同

生命周期映射关系表 beforeCreate -> 使用 setup() created -> 使用 use setup() beforeMount ->onBeforeMount mounted -> onMounted beforeUpdate -> onBeforeUpdate updated -> onUpdated beforeDestroy-> onBeforeUnmount destroyed ->onUnmounted…

800*A. Domino piling(规律数学)

Problem - 50A - Codeforces #include<bits/stdc.h> using namespace std; const int N1e55; int n,m,res; signed main(){scanf("%d%d",&n,&m);if(n>1){resn/2*m;n%2; }if(n1) resm/2;cout<<res;return 0; }

WPS表格无法粘贴信息,原因是复制区域与粘贴区域形状不同

WPS表格无法粘贴信息&#xff0c;原因是复制区域与粘贴区域形状不同 问题描述 我是选中了一整列&#xff0c;复制&#xff0c;但是无法粘贴到另一个EXCEL表格中 原因 首先我的数据量很大&#xff0c;有20万行&#xff0c;然后需要复制的EXCEL是.xls格式的&#xff0c;.xls格…

缓解缓存击穿的大杀器之---singleflight深入浅出

singleflight简单介绍 singlefight直译“单飞”&#xff0c;那顾名思义就是有一堆鸟&#xff0c;但是咱只让一只鸟单飞。。。&#x1f604; singleflight 提供了重复函数调用抑制机制&#xff0c;使用它可以避免同时进行相同的函数调用。第一个调用未完成时后续的重复调用会等…

20231106_抽象类abstract

抽象类abstract 关键字 abstract运用抽象类抽象方法:修饰抽象类中的某个方法,强制子类重写该方法 归纳 关键字 abstract 对于子类必须要实现特定方法,当时父类无法明确时,可定义为抽象类及抽象方法 不合理: 动物吃东西是基础,在这里写吃的方法过于简单,信息没有实际意义; 怎…

FSDiffReg:心脏图像的特征和分数扩散引导无监督形变图像配准

论文标题&#xff1a; FSDiffReg: Feature-wise and Score-wise Diffusion-guided Unsupervised Deformable Image Registration for Cardiac Images 翻译&#xff1a; FSDiffReg&#xff1a;心脏图像的特征和分数扩散引导无监督形变图像配准 摘要 无监督可变形图像配准是医学…

人工智能:技术进步与未来趋势

人工智能&#xff1a;技术进步与未来趋势 随着科技的快速发展&#xff0c;人工智能(AI)已经深入影响到我们生活的方方面面。从智能手机、自动驾驶汽车&#xff0c;到医疗诊断、工业自动化&#xff0c;AI的应用越来越广泛。这篇文章将探讨人工智能的技术发展、现状以及未来趋势。…

Webpack 中 Plugin 的作用是什么?常用 plugin 有哪些?

说说webpack中常见的Plugin&#xff1f;解决了什么问题&#xff1f;- 题目详情 - 前端面试题宝典 1、plugin 的作用 Plugin 是一种计算机应用程序&#xff0c;它和主应用程序互相交互&#xff0c;以提供特定的功能。 是一种遵循一定规范的应用程序接口编写出来的程序&#…

制作甘特图

教程秒懂百科​​​​​​

一文学会Scala【Scala一站式学习笔记】

文章目录 为什么要学习Scala语言什么是Scala如何快速掌握Scala语言Scala环境安装配置Scala命令行 Scala的基本使用变量数据类型操作符if 表达式语句终结符循环高级for循环 Scala的集合体系集合SetListMapArrayArrayBuffer数组常见操作Tuple总结 Scala中函数的使用函数的定义函数…

双十一运动健身好物推荐,这几款健身好物一定不要错过!

双十一购物狂欢节又要到了&#xff0c;又要到买买买的时候了&#xff01;相信有很多想健身的小白还在发愁不知道买啥装备&#xff1f;别急&#xff0c;三年健身达人这就给你们分享我的年度健身好物&#xff01; 第一款&#xff1a;南卡Runner Pro4s骨传导耳机 推荐理由&#…

批量导出有道云笔记并放入Logseq

出发点 大学的时候用有道云笔记&#xff0c;积累了不少文章和总结 随这这几年的网盘等业务关停&#xff0c;个人重要数据依赖互联网总感觉没有安全感 前几年换成了纯本地的双链笔记Logseq&#xff0c;感觉非常简洁好用&#xff08;LogseqPC端/移动端Synology Dive同步&#…

【渗透测试】垂直越权(高危)、水平越权(中危)

目录 一、简介1.1 水平越权&#xff08;中危&#xff09;1.2 垂直越权&#xff08;高危&#xff09;1.3 方便记忆方法 二、修复方案2.1 水平越权修复2.2 垂直越权修复 一、简介 1.1 水平越权&#xff08;中危&#xff09; 漏洞危害&#xff1a; 水平越权 是相同级别&#xff0…

LangChain+LLM实战---私有化部署RAG大模型,ChatGLM2-6B、Baichuan2-13B

图1&#xff1a;RAG的架构流程 经过之前一段时间的捣腾&#xff0c;个人感觉我们的RAG应用已经来到了一个全新的层面&#xff0c;在语义理解&#xff08;相关度&#xff09;和准确度上都有了长足进步。 但是问题来了。之前和菊厂的业务交流中&#xff0c;对方明确提出一些客户…

Android 扩大View可点击区域范围

有时候会遇到这种需求&#xff1a;本身控件显示在很小的范围内&#xff0c;但是要求扩大可点击的区域。根据官方文档https://developer.android.com/develop/ui/views/touch-and-input/gestures/viewgroup?hlzh-cn#delegate可以得知通过 TouchDelegate 类&#xff0c;让父视图…