基于Google Earth Engine(GEE)提取某区域地表温度(LST)的完整流程

在遥感应用中,地表温度(LST)是研究区域生态、气候变化的重要参数。本文将详细介绍如何使用Google Earth Engine(GEE)平台,基于Landsat 7影像数据提取某区域特定站点的地表温度,并对目标日期进行数据插值处理,最后导出结果数据。

一、项目背景与数据准备

1.1 研究区域与目标

本研究以某区域为研究区域,选取坐标为[100.1378, 37.3306]的站点作为监测点,目标是获取2019年特定日期的地表温度数据。如果目标日期没有可用影像,则通过时间序列插值获取。

1.2 数据选择

  • 遥感数据:Landsat 7 Collection 2 Tier 1数据(LANDSAT/LE07/C02/T1_L2
  • 辅助数据:某区域边界矢量数据(projects/ee-hllutlu2024/assets/Region_Admin_Boundary
  • 目标日期:2019年2月12日、4月10日、7月22日、9月24日

二、完整代码实现与解析

2.1 基础设置

首先进行基础参数设置,包括站点位置、目标日期和研究区边界:

// 定义站点位置
var site = ee.Geometry.Point([100.1378, 37.3306]);

// 定义日期列表
var dates = [
  {
   
   year: 2019, month: 4, day: 10},
  {
   
   year: 2019, month: 7, day: 22},
  {
   
   year: 2019, month: 9, day: 24},
  {
   
   year: 2019, month: 2, day: 12}
];

// 加载某区域边界
var roi = ee.FeatureCollection("projects/ee-hllutlu2024/assets/Region_Admin_Boundary");

// 加载Landsat 7 Collection 2 Tier 1数据
var landsat = ee.ImageCollection("LANDSAT/LE07/C02/T1_L2");

2.2 云掩膜处理

Landsat影像受云污染影响较大,需要进行云掩膜处理。这里使用QA_PIXEL波段进行云与云影的识别和去除:

// 修正云掩膜函数
function maskClouds(image) {
   
   
  var qa = image.select('QA_PIXEL');
  var cloud = qa.bitwiseAnd(1 << 3);  // 云标志位 (bit 3)
  var shadow = qa.bitwiseAnd(1 << 4); // 云影标志位 (bit 4)
  return image.updateMask(cloud.eq(0).and(shadow.eq(0)));
}

原理说明:Landsat 7的QA_PIXEL波段中,第3位表示云,第4位表示云影。通过位运算提取这些信息,然后将云与云影区域的像素值屏蔽掉。

2.3 地表温度计算

从Landsat热红外波段计算地表温度需要进行辐射定标和大气校正,这里采用物理方法进行计算:

// 温度计算函数(物理校正)
function calculateTemp(image) {
   
   
  // 1. 获取原始DN值并转换为表观温度(开尔文)
  var dn = image.select('ST_B6');
  var atsat = dn.multiply(0.00341802).add(149.0);
  
  // 2. 水体比辐射率校正 (某区域适用)
  var emissivity = 0.80; // 水体典型比辐射率
  
  // 3. 物理参数设置
  var lambda = 11.5;      // Landsat 7 Band 6中心波长(μm)
  var rho = 14380;        // 物理常数(mK)
  
  // 4. 地表温度计算公式 (Jiménez-Muñoz & Sobrino, 2003)
  var lst_kel
<think> 我们正在处理用户关于在Google Earth Engine (GEE)提取地表温度(LST)代码请求。根据提供的引用,我们知道: - 引用[1]提到LST地表温度,并指出可以通过GEE获取。 - 引用[2]提供了一个使用MODIS数据集获取白天LST代码片段:使用`ee.ImageCollection("MODIS/061/MOD11A1")`,选择波段'LST_Day_1km',并按时间和区域筛选。 用户明确要求获取提取地表温度(LST)代码示例。因此,我们将基于引用[2]的代码进行扩展,提供一个完整的示例,包括: 1. 定义研究区域(用户需要替换为自己的区域) 2. 选择合适的数据集(这里使用MODIS/061/MOD11A1,因为它提供了日间和夜间的地表温度产品) 3. 时间范围筛选(用户可自定义) 4. 提取LST并转换为摄氏度(因为原始数据是开尔文乘以10,需要缩放和转换) 5. 计算感兴趣区域内的统计值(如最大值、最小值,如引用[1]所提) 6. 可视化(可选) 7. 导出(可选) 注意:由于用户可能需要日间或夜间的温度,我们将分别提供日间和夜间的提取示例,并说明如何获取统计值。 以下我们将分步骤编写代码: </think> 以下是在 Google Earth Engine (GEE)提取地表温度 (LST)代码示例,基于 MODIS 数据: ### 完整代码示例 ```javascript // 1. 定义研究区域 (替换为您的目标区域) var region = ee.Geometry.Rectangle([116.0, 39.0, 117.0, 40.0]); // 北京区域示例 // 2. 加载MODIS地表温度数据集 var modis = ee.ImageCollection("MODIS/061/MOD11A1"); // 3. 筛选时空范围 var lstCollection = modis .select('LST_Day_1km') // 选择白天温度波段 .filterBounds(region) // 空间筛选 .filterDate('2023-01-01', '2023-12-31'); // 时间筛选 // 4. 转换为摄氏度并计算统计值 var celsiusScale = function(image) { // 原始单位:开尔文×10,转换公式:℃ = (K×0.02) - 273.15 var celsius = image.multiply(0.02).subtract(273.15); return celsius.copyProperties(image, ['system:time_start']); }; var lstCelsius = lstCollection.map(celsiusScale); // 5. 计算区域统计值 var stats = lstCelsius.reduceRegion({ reducer: ee.Reducer.mean().combine({ reducer2: ee.Reducer.minMax(), sharedInputs: true }), geometry: region, scale: 1000, // MODIS分辨率 maxPixels: 1e13 }); print('区域温度统计:', stats); // 6. 可视化参数 var visParams = { min: -20, // 可视化最小值() max: 40, // 可视化最大值() palette: ['blue', 'cyan', 'green', 'yellow', 'red'] }; // 7. 显示结果 Map.centerObject(region, 8); Map.addLayer(lstCelsius.mean(), visParams, '平均地表温度'); Map.addLayer(region, {color: 'white'}, '研究区域'); ``` ### 关键步骤说明: 1. **数据选择**:使用 MODIS/061/MOD11A1 数据集,包含 1km 分辨率的地表温度数据[^2] 2. **单位转换**:原始数据单位为开尔文×10,转换为摄氏度公式:$ \text{℃} = (\text{K} \times 0.02) - 273.15 $ 3. **波段说明**: - `LST_Day_1km`:白天地表温度 - `LST_Night_1km`:夜间地表温度(替换波段名即可获取夜间数据) 4. **统计分析**:使用 `reduceRegion()` 计算区域内的平均温度、最小/最大值 5. **导出数据**:可添加 `Export.image.toDrive()` 将结果导出到 Google Drive
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥感AI实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值