GEE代码实例教程详解:年平均温度变化分析

2024-07-09 08:12:01 浏览数 (2)

简介

在本篇博客中,我们将使用Google Earth Engine (GEE) 分析特定区域内年平均温度随时间的变化。通过分析ECMWF(European Centre for Medium-Range Weather Forecasts)提供的ERA5_LAND数据集,我们可以了解从1950年到2020年的温度趋势。

背景知识

ERA5_LAND数据集

ERA5_LAND数据集是ECMWF提供的高分辨率气象再分析数据集,其中包括了地表的月平均温度数据。

温度变化分析

温度变化分析是气候变化研究中的一个重要方面,它有助于我们理解全球和地区气候变化的趋势。

完整代码

代码语言:javascript复制
// 定义研究区域的坐标点
var cor = [
  [-106.362109375, 36.957529497279594],
  [-101.528125, 36.957529497279594],
  [-101.528125, 40.5210649481601],
  [-106.362109375, 40.5210649481601],
  [-106.362109375, 36.957529497279594]
];

// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);

// 将地图中心设置为研究区域
Map.centerObject(roi);

// 定义时间范围
var time_start = '1950';
var time_end = '2020';

// 创建ERA5_LAND图像集合并筛选数据
var era5 = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY_AGGR")
  .select('temperature_2m')
  .filterDate(time_start, time_end);

// 定义一个函数来创建年平均温度图像集合
function temporal_collection(collection, start, count, interval, unit) {
  var seq = ee.List.sequence(0, ee.Number(count).subtract(1));
  var origin_date = ee.Date(start);
  return ee.ImageCollection(seq.map(function(i) {
    var start_date = origin_date.advance(ee.Number(interval).multiply(i), unit);
    var end_date = origin_date.advance(ee.Number(interval).multiply(ee.Number(i).add(1)), unit);
    return collection.filterDate(start_date, end_date).mean()
      .set('system:time_start', start_date.millis())
      .set('system:time_end', end_date.millis());
  }));
}

// 创建年平均温度图像集合
var annual = temporal_collection(era5, time_start, 70, 1, 'year')
  .map(function(img) {
    return img.subtract(273.15); // 转换为摄氏度
  });

// 打印年平均温度变化的图表
print(
  ui.Chart.image.series({
    imageCollection: annual,
    region: roi,
    reducer: ee.Reducer.mean(),
    scale: 10000,
    xProperty: 'system:time_start'
  })
);

// 计算温度变化的百分比
var temp_mean = annual.mean();

var change = annual.map(function(img) {
  var eq = img.expression('((temp - mean) / (mean)) * 100', {
    'temp': img,
    'mean': temp_mean
  });
  return eq.rename('temp_change');
});

// 打印温度变化百分比的图表
print(
  ui.Chart.image.series({
    imageCollection: change,
    region: roi,
    reducer: ee.Reducer.mean(),
    scale: 10000,
    xProperty: 'system:time_start'
  }).setChartType('ColumnChart')
);

代码详解

1. 定义研究区域

创建一个多边形区域roi,用于限定分析的地理范围,并设置地图中心。

2. 创建ERA5_LAND图像集合

获取ERA5_LAND数据集,并根据指定的时间范围筛选图像。

3. 年平均温度图像集合

定义temporal_collection函数,用于生成年平均温度图像集合。

4. 温度单位转换

将温度从开尔文转换为摄氏度。

5. 可视化年平均温度变化

使用ui.Chart.image.series打印年平均温度变化的图表。

6. 计算温度变化百分比

通过计算每年温度与平均值的差异,并转换为百分比。

7. 可视化温度变化百分比

使用柱状图打印温度变化百分比的图表。

结论

本教程展示了如何使用GEE分析特定区域内年平均温度的变化趋势。通过ERA5_LAND数据集,我们能够监测和可视化温度随时间的变化,这对于理解气候变化具有重要意义。

进一步探索

GEE提供了丰富的工具和方法来进行气象和气候变化分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。

0 人点赞