基于 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即可下载数据

相关推荐
数据与人工智能律师7 小时前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
Johny_Zhao19 小时前
Centos8搭建hadoop高可用集群
linux·hadoop·python·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm
_可乐无糖1 天前
AWS WebRTC:我们的业务模式
云计算·音视频·webrtc·aws
Kentos(acoustic ver.)1 天前
云原生 —— K8s 容器编排系统
云原生·容器·kubernetes·云计算·k8s
Britz_Kevin2 天前
从零开始的云计算生活——番外6,使用zabbix对中间件监控
云计算·生活·zabbix
贺贺丿2 天前
Docker2-容器应用工具及docker命令
linux·运维·docker·容器·自动化·云计算
程序猿追2 天前
亚马逊云科技:引领云计算新时代,开启无限可能
科技·云计算·亚马逊
果子⌂2 天前
Kubernetes 服务发布进阶
linux·运维·服务器·云原生·容器·kubernetes·云计算
青梅主码-杰哥2 天前
中央广播电视总台联合阿里云研究院权威发布《中国人工智能应用发展报告(2025)》:我国依旧需要大力注重人工智能人才的培养
人工智能·阿里云·云计算
NUZGNAW2 天前
等保二级、三级配置表(阿里云)
阿里云·云计算