当前位置: 首页 > news >正文

GEE谷歌地球引擎批量下载逐日ERA5气象数据的方法

  本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载逐日ERA5土壤湿度数据(或者是其他气象数据、遥感影像数据等)的方法。

  首先,明确一下本文的需求。我们希望在GEE中,下载指定时间范围内,在指定区域每一天ERA5土壤湿度数据。当然,和本文需求类似的场景,比如下载其他时间分辨率(逐周、逐月、逐年等),或下载其他遥感数据(气象数据、Landsat、Sentinel等),都可以参考本文代码。

  本文所用代码如下。

var ERA5 = ee.ImageCollection("ECMWF/ERA5_LAND/DAILY_AGGR").select(['volumetric_soil_water_layer_1']);
var region = ee.Geometry.Polygon([[[180, 90], [-180, 90], [-180, -90], [180, -90]]], null, false);var startDate = ee.Date('1963-01-01');
var endDate = ee.Date('1965-01-01');// var date = '1950-01-02';
// var singleImage = ERA5.filterDate(date, ee.Date(date).advance(1, 'day')).first();
// Map.addLayer(singleImage, {}, 'ERA5_Single_Day');function exportDailyImage(date) {date = ee.Date(date);var singleImage = ERA5.filterDate(date, date.advance(1, 'day')).first();Export.image.toDrive({image: singleImage,description: 'ERA5_Soil_Moisture_' + date.format('YYYY-MM-dd').getInfo(),folder: 'ERA5',scale: 55659.7,region: region,maxPixels: 1e13});
}var interval = ee.List.sequence(startDate.millis(), endDate.millis(), 24 * 60 * 60 * 1000);interval.evaluate(function(intervalList) {intervalList.forEach(function(millis) {var date = ee.Date(millis);exportDailyImage(date);});
});

  首先,我们需要定义数据集与研究区域。我们通过ee.ImageCollection方法定义一个影像集合,在我这里就是ECMWF/ERA5_LAND/DAILY_AGGR这个逐日的ERA5数据集,并选择其中的volumetric_soil_water_layer_1波段,即第一层土壤体积含水量;随后,用region定义研究区域,在我这里我需要全球的数据,所以就定义了全球的空间范围。

  随后,设置时间范围。startDateendDate分别设定开始日期和结束日期,在我这里就是1963年1月1日和1965年1月1日,意味着程序将下载1963年和1964年这2年的时间段内的数据。

  接下来,定义函数exportDailyImage(date)。此函数接收一个日期参数,基于该日期过滤出对应日期的ERA5数据集中的单个影像。其中,使用Export.image.toDrive方法将此单日影像导出至Google Drive中名为ERA5的文件夹内,通过设置description来让导出的每一景图像文件的命名方式都是指定前缀加上其日期这样的格式;导出时指定了下载的遥感影像分辨率为55659.7米——这里我是希望下载的数据分辨率尽可能接近0.5度,而GEE下载数据的时候只能以为单位(而不是经纬度为单位)来指定空间分辨率,所以我就设置了这样一个接近0.5度的米数;同时,设置maxPixels参数以允许处理大尺寸图像,这里建议就设置成本文中的这个最大值。

  到这里,就可以开始生成日期序列并执行导出了。首先,使用ee.List.sequence创建一个从startDateendDate的日期列表,间隔为1天(通过计算毫秒数来表示);随后,使用interval.evaluate方法获取这个日期列表,并对每个日期调用exportDailyImage函数,实现每天数据的单独导出。

  执行上述代码,即可在GEE右侧的Tasks一栏中看到自己的导出任务,如下图所示;点击RUN即可运行任务。

  如果要下载的数据比较多(就比如我这里需要下载逐日的数据),手动一个一个点击RUN比较麻烦,就可以参考文章Google Earth Engine谷歌地球引擎计算遥感影像在每个8天间隔内的多年平均值(https://fkxxgis.blog.csdn.net/article/details/138588432)中提到的批量点RUN方法来运行任务。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关文章:

  • 《P4551 最长异或路径》
  • C语言之旅【6】--一维数组和二维数组
  • MyBatis(二)
  • AI Agent开发第70课-彻底消除RAG知识库幻觉(4)-解决知识库问答时语料“总重复”问题
  • 生成树的保护机制
  • 解决 Tailwind CSS 代码冗余问题
  • 功能安全管理
  • ES(ES2023/ES14)最新更新内容,及如何减少内耗
  • 《C++与OpenCV实战:图像增强大核心算法详解》​​
  • 设备预测性维护:从技术架构到工程实践,中讯烛龙如何实现停机时间锐减
  • 玄机-第二章日志分析-redis应急响应
  • Eigen与OpenCV矩阵操作全面对比:最大值、最小值、平均值
  • 时序数据库、实时数据库与实时数仓:如何为实时数据场景选择最佳解决方案?
  • 模拟电路中的电感:从“电磁倔驴“到“电路稳定器“的奇幻漂流
  • TYUT-企业级开发教程-第二章
  • MinIO:从入门到精通,解锁云原生存储的奥秘
  • Linux下 使用 SSH 完成 Git 绑定 GitHub
  • 广域网学习
  • Flink 的水印机制
  • AI大模型学习二十六、使用 Dify + awesome-digital-human-live2d + ollama + ChatTTS打造数字人
  • 搜狗推广登录入口/搜索引擎优化的定义是什么
  • 百度上的网站怎么做/aso优化报价
  • 石家庄英文网站建设/武汉百度推广入口
  • 做网站博客怎么推广/牛排seo系统
  • 网站开发范例文档/广州专业seo公司
  • 网站关键词引流/优化网站排名费用