GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

news/2024/5/2 20:44:58/文章来源:https://blog.csdn.net/qq_32306361/article/details/129333716

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

  • 1.ERA5介绍
  • 2.初始ERA5数据
    • 2.1 DAILY代码
    • 2.2 MONTHLY代码
  • 3.遥感影像查看(DAILY之mean_2m_air_temperature)
  • 4.逐日数据分析和获取(以mean_2m_air_temperature为例)
  • 5.逐月数据分析和获取(以mean_2m_air_temperature为例)
    • 5.1 代码一(ERA5/MONTHLY)
    • 5.2 代码二(ERA5/DAILY)
    • 5.3 代码三(ERA5/DAILY)
  • 6.逐年数据分析和获取(以mean_2m_air_temperature为例)
    • 6.1 代码一(ERA5/MONTHLY)
    • 6.2 代码二(ERA5/DAILY)
    • 6.3 代码三 (ERA5/MONTHLY)(下载遥感影像推荐)
    • 6.4 代码四(ERA5/DAILY)(下载遥感影像推荐)

前言:ERA5主要提供DAILY和MONTHLY两大类别数据,其中主要包括“mean_2m_air_temperature"、“minimum_2m_air_temperature”、“maximum_2m_air_temperature”、“dewpoint_2m_temperature”、“total_precipitation”、“surface_pressure”、“mean_sea_level_pressure”、“u_component_of_wind_10m”、"v_component_of_wind_10m"数据。
本博客参考《 GEE数据集:ERA5 每日汇总 - 由 ECMWF / Copernicus Climate Change Service制作的最新气候再分析数据集》


1.ERA5介绍

  • ERA5是ECMWF(欧洲中期天气预报中心)对全球气候的第五代大气再分析。再分析将模型数据与来自世界各地的观测数据结合起来,形成一个全球完整的、一致的数据集。ERA5取代了其前身ERA-Interim再分析。
  • ERA5 DAILY提供每天7个ERA5气候再分析参数的汇总值:2米空气温度、2米露点温度、总降水量、平均海平面气压、表面气压、10米u风分量和10米v风分量。(参数较多,其他参数可自行查看)此外,根据每小时的2米空气温度数据,计算出2米处的每日最低和最高空气温度。每日总降水值以每日总和给出。所有其他参数都以日平均数提供。
  • ERA5 MONTHLY提供的都是月数据。
  • ERA5的数据从1979年到实时的三个月都有。

2.初始ERA5数据

2.1 DAILY代码

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
var dataset = ee.ImageCollection('ECMWF/ERA5/DAILY')
.filterDate('2019-01-01', '2019-12-31')
.filterBounds(geometry);
print(dataset)

在这里插入图片描述

2.2 MONTHLY代码

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
var dataset = ee.ImageCollection('ECMWF/ERA5/MONTHLY')
.filterDate('2019-01-01', '2019-12-31')
.filterBounds(geometry);
print(dataset)

在这里插入图片描述

3.遥感影像查看(DAILY之mean_2m_air_temperature)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,7);
var dataset = ee.ImageCollection('ECMWF/ERA5/DAILY').select('mean_2m_air_temperature')
.filterDate('2019-05-01', '2019-05-31')
.filterBounds(geometry);var vis2mt = {min: 250,max: 320,palette: ['#000080', '#0000D9', '#4000FF', '#8000FF', '#0080FF', '#00FFFF', '#00FF80','#80FF00', '#DAFF00', '#FFFF00', '#FFF500', '#FFDA00', '#FFB000', '#FFA400','#FF4F00', '#FF2500', '#FF0A00', '#FF00FF']
}Map.addLayer(dataset.mean().clip(geometry), vis2mt,'mean_2m_air_temperature');

在这里插入图片描述

4.逐日数据分析和获取(以mean_2m_air_temperature为例)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,7);
var dataset = ee.ImageCollection('ECMWF/ERA5/DAILY')
.filterDate('2018-05-01', '2018-05-31')
.filterBounds(geometry)
.select('mean_2m_air_temperature');
//换算单位 
var subtract= function(image){ var img = image.subtract(272.15);  return img.set('system:time_start',image.get('system:time_start'));
};
dataset = dataset.map(subtract);//mean_2m_air_temperature1 开氏度(开尔文)=-272.15 摄氏度
print(ui.Chart.image.series(dataset, geometry, ee.Reducer.mean(), 1000));
function exportImageCollection(imgCol) {var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");indexList.evaluate(function(indexs) {for (var i=0; i<indexs.length; i++) {var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();image = image.clip(geometry);//tif数据下载Export.image.toDrive({image: image,description: 'mean_2m_air_temperature_'+indexs[i],fileNamePrefix: 'mean_2m_air_temperature_'+indexs[i],folder: 'mean_2m_air_temperature',region: geometry,scale: 1000,crs: "EPSG:4326",maxPixels: 1e13});}});
}
exportImageCollection(dataset);

在这里插入图片描述

在这里插入图片描述

5.逐月数据分析和获取(以mean_2m_air_temperature为例)

5.1 代码一(ERA5/MONTHLY)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,7);
var dataset = ee.ImageCollection('ECMWF/ERA5/MONTHLY')
.filterDate('2018-01-01', '2018-12-31')
.filterBounds(geometry)
.select('mean_2m_air_temperature');
//换算单位 
var subtract= function(image){ var img = image.subtract(272.15);  return img.set('system:time_start',image.get('system:time_start'));
};
dataset = dataset.map(subtract);//mean_2m_air_temperature1 开氏度(开尔文)=-272.15 摄氏度
print(ui.Chart.image.series(dataset, geometry, ee.Reducer.mean(), 1000));
function exportImageCollection(imgCol) {var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");indexList.evaluate(function(indexs) {for (var i=0; i<indexs.length; i++) {var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();image = image.clip(geometry);//tif数据下载Export.image.toDrive({image: image,description: 'mean_2m_air_temperature_'+indexs[i],fileNamePrefix: 'mean_2m_air_temperature_'+indexs[i],folder: 'mean_2m_air_temperature',region: geometry,scale: 1000,crs: "EPSG:4326",maxPixels: 1e13});}});
}
exportImageCollection(dataset);

在这里插入图片描述
在这里插入图片描述

5.2 代码二(ERA5/DAILY)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
var dataset = ee.ImageCollection('ECMWF/ERA5/DAILY').filterBounds(geometry).select('mean_2m_air_temperature');
//时间范围
var years = ee.List.sequence(2018, 2018);
var months = ee.List.sequence(1, 12);//将逐日数据生成月平均数据
var monthlysum =  ee.ImageCollection.fromImages(years.map(function (y) {return months.map(function(m) {return dataset.filter(ee.Filter.calendarRange(y,y, 'year')).filter(ee.Filter.calendarRange(m, m, 'month')).mean().set('year', y).set('month', m).set('system:time_start', ee.Date.fromYMD(y, m, 1));});}).flatten());//换算单位 
var subtract= function(image){ var img = image.subtract(272.15);  return img.set('system:time_start',image.get('system:time_start'));
};
dataset = monthlysum.map(subtract);//mean_2m_air_temperature1 开氏度(开尔文)=-272.15 摄氏度print(dataset);
print(ui.Chart.image.series(dataset, geometry, ee.Reducer.mean(), 1000));function exportImageCollection(imgCol) {var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");indexList.evaluate(function(indexs) {for (var i=0; i<indexs.length; i++) {var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();image = image.clip(geometry);//tif数据下载Export.image.toDrive({image: image,description: 'pre_2020_'+indexs[i],fileNamePrefix: 'pre_2020_'+indexs[i],folder: 'pre',region: geometry,scale: 1000,crs: "EPSG:4326",maxPixels: 1e13});}});
}
exportImageCollection(dataset);

在这里插入图片描述
在这里插入图片描述

5.3 代码三(ERA5/DAILY)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,6);
var dataset =ee.ImageCollection("ECMWF/ERA5/DAILY");
for(var i=2018;i<=2020;i++){for(var j=1;j<=12;j++){var data_collection = null;switch(j){case 1:case 3:case 5:case 7:case 8:case 10:case 12:data_collection = dataset.filterDate(i+'-'+j+'-01',i+'-'+j+'-31').select('mean_2m_air_temperature');break;case 4:case 6:case 9:case 11:data_collection = dataset.filterDate(i+'-'+j+'-01',i+'-'+j+'-30').select('mean_2m_air_temperature');break;case 2:data_collection = dataset.filterDate(i+'-'+j+'-01',i+'-'+j+'-28').select('mean_2m_air_temperature');break;}var YR_collection = data_collection.mean().subtract(272.15).clip(geometry);//mean_2m_air_temperature1 开氏度(开尔文)=-272.15 摄氏度Export.image.toDrive({image: YR_collection,description: i+'-'+j,fileNamePrefix: i+'-'+j,scale: 1000,region: geometry,maxPixels: 1e13,folder: 'mean_2m_air_temperature'})}
}

在这里插入图片描述

6.逐年数据分析和获取(以mean_2m_air_temperature为例)

6.1 代码一(ERA5/MONTHLY)

 var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
// 选择数据集并进行波段比例换算
var collection = ee.ImageCollection("ECMWF/ERA5/MONTHLY").filterDate('2000-01-01', '2010-12-31').select("mean_2m_air_temperature");
//换算单位
var subtract = function(image){ var img = image.subtract(272.15);  return img.set(image.toDictionary(image.propertyNames()));
};
collection = collection.map(subtract);
//进行年平均值的计算
var years = ee.List.sequence(2000, 2010);
var collectYear = ee.ImageCollection(years.map(function(y) {var start = ee.Date.fromYMD(y, 1, 1);var end = start.advance(12, 'month');return collection.filterDate(start, end).reduce(ee.Reducer.mean()).float().set('system:time_start',y).set('year',y);
}));
print(collectYear);//年均值的时间序列展示
var Yearly_chart = ui.Chart.image.series({imageCollection: collectYear.select('mean_2m_air_temperature_mean'),region: geometry,reducer: ee.Reducer.mean(),scale: 500,xProperty: 'year',}).setOptions({interpolateNulls: true,lineWidth: 2,title: 'temperature Yearly Seires',vAxis: {title: 'temperature'},hAxis: {title: 'Date'},//trendlines: { 0: {title: 'NDVI_trend',type:'linear', showR2: true,  color:'red', visibleInLegend: true}}});
print(Yearly_chart);
function exportImageCollection(imgCol) {var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");indexList.evaluate(function(indexs) {for (var i=0; i<indexs.length; i++) {var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();image = image.clip(geometry);//tif数据下载Export.image.toDrive({image: image,description: 'mean_2m_air_temperature_mean'+indexs[i],fileNamePrefix: 'mean_2m_air_temperature_mean'+indexs[i],folder: 'tem',region: geometry,scale: 1000,crs: "EPSG:4326",maxPixels: 1e13});}});
}
exportImageCollection(collectYear);

在这里插入图片描述
在这里插入图片描述

6.2 代码二(ERA5/DAILY)

在6.1的基础上把MONTHLY改成DAILY即可
在这里插入图片描述
在这里插入图片描述

6.3 代码三 (ERA5/MONTHLY)(下载遥感影像推荐)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,6);
var dataset=ee.ImageCollection("ECMWF/ERA5/MONTHLY");for(var i=2010;i<=2015;i++){var data_collection = dataset.filterDate(i+'-01-01',i+'-12-31').select('mean_2m_air_temperature');print(data_collection)var YR_collection = data_collection.mean().subtract(272.15).clip(geometry);Export.image.toDrive({image: YR_collection,description: i,fileNamePrefix: i,scale: 1000,region: geometry,maxPixels: 1e13,folder: 'temperature'});
}

在这里插入图片描述
在这里插入图片描述

6.4 代码四(ERA5/DAILY)(下载遥感影像推荐)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,6);
var dataset=ee.ImageCollection("ECMWF/ERA5/DAILY");for(var i=2010;i<=2015;i++){var data_collection = dataset.filterDate(i+'-01-01',i+'-12-31').select('mean_2m_air_temperature');print(data_collection)var YR_collection = data_collection.mean().subtract(272.15).clip(geometry);Export.image.toDrive({image: YR_collection,description: i,fileNamePrefix: i,scale: 1000,region: geometry,maxPixels: 1e13,folder: 'temperature'});
}

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[神经网络]Swin Transformer网络

一、概述 Swin Transformer是一个用了移动窗口的层级式Vision Transformer。 在图像领域&#xff0c;Transformer需要解决如下两个问题&#xff1a; ①尺度问题&#xff1a;同一语义的物体在图像中有不一样的尺度。(大小不同) ②Resolution过大&#xff1a;若以像素点作为单位&…

呼吸机方案 以 MM32F3270 为主控板,MM32SPIN05PF 为电机控制主控

呼吸机的作用是让氧气进入肺部并排出二氧化碳&#xff0c;帮助病患顺利呼吸。呼吸机连接一条管子到患者的嘴或鼻子&#xff0c;氧气量可以通过监视器加以控制。 基于灵动微控制器的呼吸机&#xff0c;以 MM32F3270 为主控板&#xff0c;MM32SPIN05PF 为电机控制主控&#xff1…

python 操作word库docx 增强接口

前言用python 的docx 库操作word完成一些自动化的文档生成工作&#xff0c;但有时候会遇到docx库提供的操作无法直接满足业务上的需求&#xff0c;需要对其进行一些扩展。接口完善实现在指定的文字后面插入指定的文字任务&#xff1a;以下示例需要在文档中的所有 "人生苦短…

【SpringMVC】springMVC介绍

参考资料 视频资料 03_尚硅谷_SpringMVC_SpringMVC简介_哔哩哔哩_bilibili 笔记资料 第一节 SpringMVC概述 (wolai.com)链接&#xff1a;https://pan.baidu.com/s/1A7BX2TNfbGTpYene4x3Mew 提取码&#xff1a;a8d5 一、SpringMVC简介 1、什么是MVC MVC是一种软件架构的思…

js正则表达式以及元字符

0、常用的正则表达式规则 手机号 const reg /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;密码 const reg /^[a-zA-Z0-9]{6,20}$/;验证码 const reg /^\d{6}$/;1、正则表达式的介绍与使用 正则表达式(Regular Expression)是用于匹配字符串中字符组合…

用Python Flask为女朋友做一个简单的网站(附可运行的源码)

&#x1f31f;所属专栏&#xff1a;献给榕榕&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚&#x1f62e;前言&#xff1a;该专栏系为女友准备的&#xff0c;里面会不定时发一些讨好她的技术作品&#xff0c;感兴趣的小伙伴可以关注一下~&#x1f449;文章简介…

docker安装即docker连接mysql(window)

一 安装docker 1.什么是docker Docker容器与虚拟机类似&#xff0c;但二者在原理上不同。容器是将操作系统层虚拟化&#xff0c;虚拟机则是虚拟化硬件&#xff0c;因此容器更具有便携性、高效地利用服务器。 2.WSL2 WSL&#xff0c;即Windows Subsystem on Linux&#xff0c;中…

【CV学习笔记】之ncnnFastDet多线程c++部署

1、前言 ncnn是一款非常高效易用的深度学习推理框架&#xff0c;支持各种神经网络模型&#xff0c;如pytorch、tensorflow、onnx等&#xff0c;以及多种硬件后端&#xff0c;如x86、arm、riscv、mips、vulkan等。 ncnn项目地址:https://github.com/Tencent/ncnn FastDet是设计…

RK3568触摸屏驱动调试总结

硬件电路分析 RK3568 CPU通过I2C与触控板外设wdt87xx连接。 首先要根据电路图获取如下I2C的信息&#xff1a; 项目Value接在哪个I2Ci2c1I2C 寄存器地址0x2cHID 地址0x20中断B5 1、接在哪个I2C 如图,1接在I2C1&#xff1a; 2、使用哪个GPIO引脚接收触控板的中断 如图&#xf…

Buuctf Younger-drive 题解

目录 一.查壳 二.运行缺少dll 三.主函数 四.hObject线程 五.Thread线程 六.judge函数 七.解题脚本 这题的关键在于了解一定的线程相关知识 一.查壳 32位带壳,用upx脱壳 二.运行缺少dll 后续尝试了各种方法修复dll但是还是运行不了 值得一提的是脱壳后的程序不能动态调试…

MySql启动错误(Mac系统 安装 mysql-8.0.32-macos13-arm64 后每次点击启动 无法启动) --- 已解决

MySql启动的时候: 立即变红! 查看日志如下: 2023-03-04T14:18:01.089671Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32) MySQL Community Server - GPL. 2023-03-04T14:18:10.304169Z 0 [System] [MY-010116] [Server]…

HiveSQL一天一个小技巧:如何精准计算非连续日期累计值【闪电快车面试题】

0 需 求稀疏字段累计求和问题1 问题分析根据图片中数据变换的形式&#xff0c;可以看出是根据字段term补齐数据中缺失的日期&#xff0c;term为连续日期的个数&#xff0c;当为12时&#xff0c;表明由2018-12-21到2019-01-02连续日期个数为12&#xff0c;当补齐日期后&#xff…

计算机网络的166个概念你知道几个 第四部分

HTML&#xff1a;HTML 称为超文本标记语言&#xff0c;是一种标识性的语言。它包括一系列标签&#xff0e;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的 Internet 资源连接为一个逻辑整体。HTML 文本是由 HTML 命令组成的描述性文本&#xff0c;HTML 命令可以说…

【LeetCode每日一题】——605.种花问题

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 贪心算法 二【题目难度】 简单 三【题目编号】 605.种花问题 四【题目描述】 假设有一个很长…

K8S 实用工具之二 - 终端 UI K9S

开篇 &#x1f4dc; 引言&#xff1a; 磨刀不误砍柴工工欲善其事必先利其器 第一篇&#xff1a;《K8S 实用工具之一 - 如何合并多个 kubeconfig&#xff1f;》 像我这种&#xff0c;kubectl 用的不是非常溜&#xff0c;经常会碰到以下情况&#xff1a; 忘记命令&#xff0c;先…

BUU [ZJCTF 2019]Login

这是一道让我感觉很淦的题&#xff0c;整一天了才大致了解了来龙去脉 开始&#xff1a; 首先丢到虚拟机checksec一下看看有啥保护措施&#xff1a; 看到开了Canary&#xff0c;就已经感觉不妙了&#xff0c;接着丢到IDA里看看啥情况 一看&#xff0c;是令人痛苦的c风格的代码…

LeetCode-63. 不同路径 II

题目来源 63. 不同路径 II 递归 class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int row obstacleGrid.length-1;int col obstacleGrid[0].length-1;return process(row,col,0,0,obstacleGrid);}private int process(int row ,int col,int i…

Cesium三维数据格式以及生产流程详解(glb,osgb,obj,bim,ifc)等

最近收到私信问我在cesium上展示的一些三维数据是如何生产和处理的,这篇文章就给大家一次性讲个透彻。 首先我们来做做分类。市面上能接触到的,常见的,cesium上支持展示的三维数据大致分为以下几种: 1.倾斜摄影(osgb,obj) 2.点云数据(las,pts) 3.手工模型(gltf,…

【SpringCloud】SpringCloud详解之Eureka实战

目录前言SpringCloud Eureka 注册中心一.服务提供者和服务消费者二.需求三.搭建Eureka-Server四.搭建Eureka-Client(在服务提供者配置:用户订单)前言 微服务中多个服务&#xff0c;想要调用&#xff0c;怎么找到对应的服务呢&#xff1f; 这里有组件的讲解 → SpringCloud组件…

跳表--C++实现

目录 作者有话说 为何要学习跳表&#xff1f;为了快&#xff0c;为了更快&#xff0c;为了折磨自己..... 跳表作用场景 1.不少公司自己会设计哈希表&#xff0c;如果解决哈希冲突是不可避免的事情。通常情况下会使用链址&#xff0c;很好理解&#xff0c;当有冲突产生时&#…