• 【GEE学习日记】GEE下载ERA5指定小时数据


    1 背景

    ERA5数据集提供了逐小时的气象产品,最近做实验需要用到指定日期的14点的气象数据,所以学习了一下。
    我的目的:获取2003年每月5,15,25日 14点的空气温度

    2 代码

    var roi = table.geometry();  // table是我上传的研究区矢量
    var batch = require('users/fitoprincipe/geetools:batch');  
    function ExtractByMask(Image)
    {
      return Image.clip(roi)
    }
    
    // 假设有年份和每月值的两个列表
    var years = [2003];
    var months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
    var days=[5,15,25]
    
    // 创建一个空的列表来存储所有日期
    var startDates = [];
    var endDates=[];
    // 循环遍历年份和月份,将它们结合成日期,并添加到列表中
    for (var i = 0; i < years.length; i++) {
      for (var j = 0; j < months.length; j++)
        for (var k=0;k<days.length; k++){
        var year = years[i];
        var month = months[j];
        var day=days[k];
        
        // 使用 ee.Date 对象创建日期
        var startdate = ee.Date.fromYMD(year, month, day); 
        var enddate=ee.Date.fromYMD(year, month, day+1);
        // 将日期添加到列表中
        startDates.push(startdate);
        endDates.push(enddate);
      }
    }
    
    
    //for 循环遍历日期
    for (var i = 0; i < startDates.length; i++) {
      var startDate = startDates[i];
      var endDate = endDates[i];
    
      // 从 ERA5_LAND 数据集中筛选出指定日期和时刻的温度数据
      var dataset = ee.ImageCollection("ECMWF/ERA5_LAND/HOURLY")
        .filterDate(startDate, endDate)
        .select('temperature_2m')
        .filterBounds(roi)
        .filter(ee.Filter.equals({
          leftField: 'hour',
          rightValue: 14
        }));
    
      var dataset_ExtractByMask=dataset.map(ExtractByMask) //裁剪
    
    
      // 导出数据
      batch.Download.ImageCollection.toDrive(dataset_ExtractByMask, "2003_TA", {
        scale: 1000,
        crs: "EPSG:4326",
        type: "float"
      });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    3 结果展示

    把影像下载下来放进arcgis的结果如下:
    在这里插入图片描述

    4 问题讨论

    我这个代码挑选出来的是数据集,所以需要使用到裁剪函数clip,进行每一个影像的循环。
    实际上指定日期指定时间指定波段的影像只有一张,后续可以考虑使用image的函数去导出。

  • 相关阅读:
    Java String 类回顾(期末复习版)
    Unity中Shader阴影的投射
    uniapp 小程序AP配网
    GoLand 2023:为Go开发者打造的智能IDE mac/win版
    贪心算法
    redis面试基础
    SpringCloud引入SpringBoot Admin
    Linux命令详解-find命令(一)
    Java23种设计模式-结构型模式之适配器模式
    leetcode/每日温度,单调栈
  • 原文地址:https://blog.csdn.net/kkkyyyxxx/article/details/134378273