基于 GEE 计算研究区年均地表温度数据

目录

[1 代码解析](#1 代码解析)

[2 完整代码](#2 完整代码)

[3 运行结果](#3 运行结果)


1 代码解析

(1)定义研究区:

javascript 复制代码
// 研究区的范围需要自己提前上传
var dataset = table;

// 将研究区显示在中心,后面的数字为缩放等级,范围从1 - 24
Map.centerObject(dataset, 6);

// 将图层添加到地图中
Map.addLayer(dataset);

// 打印数据集信息
print(dataset);

(2)导入地表温度数据:

本文采用的地表温度数据为MOD11A2 V6.1地表温度产品,其包含2000年至今全球的地表温度数据,时间分辨率为8天,空间分辨率为1km。

javascript 复制代码
// 定义 MODIS 地表温度影像集
var modis = ee.ImageCollection('MODIS/061/MOD11A2');

// 定义起始日期
var start = ee.Date('2019-01-01');

// 定义日期范围,从起始日期开始,持续 1 年
var dateRange = ee.DateRange(start, start.advance(1, 'year'));

// 根据日期范围筛选影像集
var mod11a2 = modis.filterDate(dateRange);

// 从筛选后的影像集中选择日间地表温度波段
var modLSTday = mod11a2.select('LST_Day_1km');

(3)转换温度单位:

由于MOD11A2 V6.1地表温度产品的单位为开尔文,所以需要将其转化成摄氏度。

javascript 复制代码
// 对 modLSTday 影像集里的每张影像进行处理
var modLSTc = modLSTday.map(function(img) {
    // 将影像乘以 0.02
    // 再减去 273.15,实现温度从开尔文转换为摄氏度
    // 最后复制原影像的 'system:time_start' 属性
    return img
       .multiply(0.02)
       .subtract(273.15)
       .copyProperties(img, ['system:time_start']);
});

(4)数据可视化:

javascript 复制代码
// 计算 modLSTc 影像集的均值,并将其裁剪到研究区范围内
var clippedLSTc = modLSTc.mean().clip(dataset);

// 将裁剪后的均值影像添加到地图中
Map.addLayer(
    clippedLSTc,
    {
        // 影像显示的最小值
        min: 0,
        // 影像显示的最大值
        max: 35,
        // 影像显示的颜色映射,从蓝色到红色
        palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']
    },
    // 图层名称
    'Mean temperature, 2019'
);

(5)导出数据:

将数据导入到Google Drive中,若有进一步处理的需要可从Google Drive中下载。

javascript 复制代码
// 导出裁剪后的影像到 Google Drive
Export.image.toDrive({
    // 要导出的影像
    image: clippedLSTc,
    // 导出影像的描述信息
    description: 'LST_2019',
    // Google Drive 中存储影像的文件夹名称
    folder: 'my_folder',
    // 导出影像的区域范围
    region: dataset,
    // 影像的空间分辨率(单位:米)
    scale: 1000,
    // 影像的坐标参考系统
    crs: 'EPSG:4326',
    // 允许处理的最大像素数
    maxPixels: 1e10
});

2 完整代码

javascript 复制代码
// 研究区的范围需要自己提前上传
var dataset = table;

// 将研究区显示在中心,后面的数字为缩放等级,范围从1 - 24
Map.centerObject(dataset, 6);

// 将图层添加到地图中
Map.addLayer(dataset);

// 打印数据集信息
print(dataset);

// 定义 MODIS 地表温度影像集
var modis = ee.ImageCollection('MODIS/061/MOD11A2');

// 定义起始日期
var start = ee.Date('2019-01-01');

// 定义日期范围,从起始日期开始,持续 1 年
var dateRange = ee.DateRange(start, start.advance(1, 'year'));

// 根据日期范围筛选影像集
var mod11a2 = modis.filterDate(dateRange);

// 从筛选后的影像集中选择日间地表温度波段
var modLSTday = mod11a2.select('LST_Day_1km');

// 对 modLSTday 影像集里的每张影像进行处理
var modLSTc = modLSTday.map(function(img) {
    // 将影像乘以 0.02
    // 再减去 273.15,实现温度从开尔文转换为摄氏度
    // 最后复制原影像的 'system:time_start' 属性
    return img
       .multiply(0.02)
       .subtract(273.15)
       .copyProperties(img, ['system:time_start']);
});

// 计算 modLSTc 影像集的均值,并将其裁剪到研究区范围内
var clippedLSTc = modLSTc.mean().clip(dataset);

// 将裁剪后的均值影像添加到地图中
Map.addLayer(
    clippedLSTc,
    {
        // 影像显示的最小值
        min: 0,
        // 影像显示的最大值
        max: 35,
        // 影像显示的颜色映射,从蓝色到红色
        palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']
    },
    // 图层名称
    'Mean temperature, 2019'
);

// 导出裁剪后的影像到 Google Drive
Export.image.toDrive({
    // 要导出的影像
    image: clippedLSTc,
    // 导出影像的描述信息
    description: 'LST_2019',
    // Google Drive 中存储影像的文件夹名称
    folder: 'my_folder',
    // 导出影像的区域范围
    region: dataset,
    // 影像的空间分辨率(单位:米)
    scale: 1000,
    // 影像的坐标参考系统
    crs: 'EPSG:4326',
    // 允许处理的最大像素数
    maxPixels: 1e13
});

3 运行结果

研究区年均地表温度数据可视化结果
点击RUN即可下载数据

相关推荐
HaoHao_0106 小时前
边缘安全加速平台 EO 套餐
云计算·腾讯云·加速·套餐
Marblog6 小时前
腾讯云DeepSeek大模型应用搭建指南
云计算·腾讯云
AI服务老曹9 小时前
确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了
人工智能·开源·云计算·音视频
成长的小牛23311 小时前
阿里云k8s服务部署操作一指禅
阿里云·kubernetes·云计算
The丶Star18 小时前
阿里云百炼通义大模型
阿里云·云计算
好记忆不如烂笔头abc18 小时前
阿里云虚机的远程桌面登录提示帐户被锁定了
阿里云·云计算
ueotek18 小时前
Ansys 2025 R1 | 以强大数字工程技术增强协作,拓展云计算及AI并赋能数据洞察
人工智能·云计算·ansys
调皮的芋头19 小时前
【架构思维基础:如何科学定义问题】
大数据·阿里云·架构·云计算
G皮T1 天前
【弹性计算】IaaS 和 PaaS 类计算产品
阿里云·云计算·paas·iaas·云服务器·弹性服务器·弹性计算
alden_ygq1 天前
在阿里云Linux主机上运行大模型deepseek r1
linux·阿里云·云计算