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

news2024/11/18 20:48:11

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.coloradmin.cn/o/388793.html

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

相关文章

【Storm】【二】Storm和流处理简介

Storm和流处理简介 一、Storm1.1 简介1.2 Storm 与 Hadoop对比1.3 Storm 与 Spark Streaming对比1.4 Storm 与 Flink对比二、流处理2.1 静态数据处理2.2 流处理一、Storm 1.1 简介 Storm 是一个开源的分布式实时计算框架&#xff0c;可以以简单、可靠的方式进行大数据流的处理…

基于 explore_lite包 的单个机器人自主探索建图

文章目录一、简介二、安装 explore_lite三、launch 文件配置四、实验效果五、常见问题机器人自主建图有很多方式&#xff0c;比如基于位置边界的map-explore&#xff0c;基于快速搜索树的rrt-explore&#xff0c;指定区域自主探索建图frontier-explore&#xff0c;这几种方法各…

SQL速查

学习自C语言中文网SQL教程笔记&#xff0c;该笔记为速查笔记&#xff0c;学习还是看原教程文章&#xff1a;http://c.biancheng.net/sql/ SQL命令 SQL 是关系型数据库的标准语言&#xff0c;SQL关键字不区分大小写 SQL语句分为以下三种类型&#xff1a; DML: Data Manipulat…

中国不缺高端产品,缺的只是高端服务

作者 | 曾响铃 文 | 响铃说 最近&#xff0c;响铃受邀参加了讯飞智能办公本莫比俱乐部在广州举办的用户研学活动&#xff0c;感触颇多。 为什么会有这趟经历&#xff1f;说来也巧&#xff0c;前段时间因为开会需要入手了讯飞智能办公本X2&#xff0c;成了他们的用户&#xf…

20- tensorflow实现 10_monkeys分类 (tensorflow系列) (项目二十)

项目要点 10-monkey-species&#xff0c;是十个种类的猴子的图像集。txt 文件读取: labels pd.read_csv( ./monkey_labels.txt , header 0)训练数据 图片数据增强: # 图片数据生成器 # 图片数据生成器 train_datagen keras.preprocessing.image.ImageDataGenerator(rescal…

docker升级后启动失败 需要指定storage driver

问题描述&#xff1a;闲来无事就在开发电脑上执行了下sudo apt-get upgrade 升级下软件, 升级后docker启动失败.使用 journalctl -xeu docker.service 查看docker执行日志&#xff1a;Mar 04 16:48:10 pop-os dockerd[39273]: time"2023-03-04T16:48:10.35187991208:00&qu…

[Java代码审计]—OFCMS

环境搭建 下载地址&#xff1a;https://gitee.com/oufu/ofcms/repository/archive/V1.1.2?formatzip 项目导入idea&#xff0c;创建数据库&#xff0c;配置下tomcat就行&#xff0c;但要注意必须tomcat>8.5&#xff0c;mysql>5.7 漏洞分析 任意文件写入 com.ofsoft…

打包可执行文件

将Python脚本打包成可执行文件的方法&#xff1a;使用pip安装PyInstaller&#xff1a;pip install pyinstaller打开终端并导航到包含Python脚本的目录。运行PyInstaller创建可执行文件&#xff1a;pyinstaller --onefile phonequeryresult.py将my_script.py替换为您的脚本名称。…

SpringBoot(tedu)——day01——环境搭建

SpringBoot(tedu)——day01——环境搭建 目录SpringBoot(tedu)——day01——环境搭建零、今日目标一、IDEA2021项目环境搭建1.1 通过 ctrl鼠标滚轮 实现字体大小缩放1.2 自动提示设置 去除大小写匹配1.3 设置参数方法自动提示1.4 设定字符集 要求都使用UTF-8编码1.5 设置自动编…

LDO的强力对手

开题前咋们先来温习下LDO的特点以及选型要点&#xff1a; 特点&#xff1a;纹波噪声小&#xff0c;响应快&#xff0c;低静态电流&#xff0c;外围电路简单&#xff1b;损耗大&#xff0c;输出电流小。常用于小电流的模拟电路供电。 选型要点&#xff1a;纹波噪声&#xff0c…

TEX:文档的布局与组织

文章目录标准的类选项指定纸张大小页面格式其他选项与某些选项相关的参数页面样式页眉页的编号fancyhdr页眉页脚宏包(重)定义fancy页面样式Using extramarks文档中页面风格切换与段落有关的距离页面格式单双列页面文档中的部分标题摘要章节附录书的结构目录表自动条目显示目录表…

XMLHttpRequest、ajax、Promise、axios、async await

1.XMLHttpRequest(xhr) 什么是xhr xhr是浏览器提供的js对象&#xff0c;通过它来向服务器来请求资源。jquery中的Ajax是基于xhr对象来封装资源的 使用xhr发起get请求 // 1. 创建 XHR 对象var xhr new XMLHttpRequest()console.log(xhr, 我是xhr);// 2. 调用 open 函数xhr.…

性能优化(2)-渲染优化

一、渲染优化 如果把浏览器呈现页面的整个过程一分为二,前面所讲的主要是浏览器为呈现页面请求所需资源的部分;本章将主要关注浏览器获取到资源后,进行渲染部分的相关优化内容。 在前面的前端页面的生命周期课程中,介绍过关键渲染路径的概念,浏览器通过这个过程对HTML,CSS, J…

<学习笔记>从零开始自学Python-之-web应用框架Django( 十二)上下文处理器

1.在模板中处理上下文处理 上下文就是一系列模板变量和相应的值。模板使用上下文填充变量&#xff0c;放到标签里显示在页面。在 Django 中&#xff0c;上下文使用 django.template 模块中的 Context 类表示。 它的构造方法接受一个可选参数&#xff1a;一个字典&#xff0…

HCIE-Cloud Computing LAB备考第二步:逐题攻破--第二题:FusionAccess-思维导图+题目=建立逻辑

第二题 FusionAccess markmap思维导图1 将上述思维导图跟下述题目结合,以题目顺序辅助记忆思维导图,有了思维大纲,做起实验,也就有逻辑线路,必定手掐把拿。 2.1 搭建FA实验环境(随机二考一) FA1、FA2两台服务器,请通过VNC登陆,按照题目要求根据服务器参数选择安装对…

推荐几款主流好用的markdown编辑器

介绍 随着技术的不断发展和人们对效率的追求&#xff0c;Markdown 编辑器已经成为了许多人写作的首选工具。Markdown 是一种轻量级的标记语言&#xff0c;使用简单&#xff0c;方便快捷&#xff0c;且可以方便地转换成各种格式的文件。在这篇文章中&#xff0c;我们将介绍几款…

移动端适配之动态 rem 方案

代码 就是设置浏览器字体&#xff0c;从而实现根据屏幕动态计算大小 <script>const WIDTH 750; // 设计图尺寸const setView () > {document.documentElement.style.fontSize screen.width / WIDTH "px";};window.onorientationchange setView;setVi…

JUC入门 | 黑马

一、进程和线程 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至CPU&#xff0c;数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理I0的 当一个程序被运行&a…

OpenGL中的坐标系

1、2D笛卡尔坐标系2D笛卡尔坐标系跟我们高中的时候学习的坐标系一样&#xff0c;是由x、y决定的。2、3D笛卡尔坐标系3D笛卡尔坐标系坐标由x、y、z决定&#xff0c;满足右手定则。3、视口glViewport(GLint x,GLint y,GLsizei width,GLsizei height)窗口和视口大小可以相同&#…

手敲Mybatis-反射工具天花板

历时漫长的岁月&#xff0c;终于鼓起勇气继续研究Mybatis的反射工具类们&#xff0c;简直就是把反射玩出花&#xff0c;但是理解起来还是很有难度的&#xff0c;涉及的内容代码也颇多&#xff0c;所以花费时间也比较浩大&#xff0c;不过当了解套路每个类的功能也好&#xff0c…