ArcGIS如何做热岛分析?地表温度怎么反演?

GIS基础理论
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

很多同学搜索“ArcGIS如何做热岛分析?地表温度怎么反演?”,其实是在解决同一个遥感 GIS 工作流:先用 Landsat 等热红外影像反演地表温度,再在 ArcGIS 中做热岛强度分级、空间统计和制图表达。本文以 ArcGIS Pro / ArcMap 都能理解的流程讲清楚关键步骤,重点放在可复现的操作、公式参数和常见错误检查。

ArcGIS热岛分析与地表温度反演流程图
ArcGIS 中从热红外影像反演地表温度,并进一步完成热岛分析的典型流程。

引言:ArcGIS热岛分析到底分析什么

ArcGIS热岛分析通常不是直接“画一张红色温度图”这么简单,而是把遥感影像中的热红外信息转换为地表温度,再根据城市区域与郊区、绿地、水体之间的温度差异,识别热岛高值区、热岛强度等级和空间分布规律。

如果你的目标是写课程作业、毕业论文或城市生态评价报告,建议把结果至少做成三类成果:

  • 地表温度反演图:单位通常为摄氏度 ℃。
  • 热岛强度分级图:例如弱热岛、中热岛、强热岛。
  • 统计分析结果:如不同土地利用类型的平均地表温度、热岛面积占比、中心城区与郊区温差。

背景:为什么要先做地表温度反演

城市热岛效应指城市建成区温度明显高于周边郊区或自然地表的现象。遥感热岛分析常用的是地表温度,英文为 Land Surface Temperature,简称 LST。它反映的是地表物体表面的热状态,不完全等同于气象站记录的近地面气温。

在 ArcGIS 中做热岛分析,常见数据源包括 Landsat 5 TM、Landsat 7 ETM+、Landsat 8/9 OLI-TIRS、MODIS LST 产品等。其中 Landsat 数据空间分辨率较适合城市尺度研究,尤其常用于城区热岛格局分析。

需要注意的是,原始遥感影像中的像元值一般是 DN 值,不能直接当作温度使用。正确流程应是:

  1. 准备研究区边界和遥感影像。
  2. 对热红外波段进行辐射定标。
  3. 计算传感器亮温。
  4. 结合 NDVI 估算地表比辐射率。
  5. 反演地表温度。
  6. 基于地表温度进行热岛强度分级和空间统计。

原理:地表温度怎么反演

地表温度反演的核心思想是:热红外波段记录了地表向传感器发出的热辐射能量,但传感器接收到的不是直接的真实地表温度,需要经过辐射定标、亮温转换和地表比辐射率校正。

1. DN值转辐射亮度

以 Landsat 8/9 为例,常用公式为:

Lλ = ML × Qcal + AL

其中:

  • :顶部大气光谱辐射亮度。
  • ML:辐射亮度乘法系数,可在 MTL 元数据文件中找到。
  • AL:辐射亮度加法系数,可在 MTL 文件中找到。
  • Qcal:热红外波段的 DN 值。

在 ArcGIS 栅格计算器中,表达式一般类似:

("B10" * 0.0003342) + 0.1

这里的参数只是示例,实际必须以你下载影像对应的 MTL 文件为准。

2. 辐射亮度转亮温

亮温是传感器观测到的等效温度,单位通常是开尔文 K。Landsat 8/9 常用公式为:

BT = K2 / Ln(K1 / Lλ + 1)

其中 K1、K2 也来自 MTL 元数据文件。ArcGIS 栅格计算器表达式可写成:

1321.0789 / Ln((774.8853 / "Radiance_B10") + 1)

如果要转换为摄氏度,需要减去 273.15:

BT_C = BT - 273.15

3. 用NDVI估算地表比辐射率

地表比辐射率是不同地物发射热辐射能力的参数。水体、植被、裸地、建筑材料的比辐射率不同,如果完全不校正,地表温度反演容易偏差较大。

NDVI 的公式为:

NDVI = (NIR - Red) / (NIR + Red)

以 Landsat 8/9 为例:

  • 红光波段 Red:Band 4。
  • 近红外波段 NIR:Band 5。

ArcGIS 栅格计算器表达式示例:

Float("B5" - "B4") / Float("B5" + "B4")

然后可以通过植被覆盖度 Pv 估算比辐射率:

Pv = ((NDVI - NDVImin) / (NDVImax - NDVImin))²
ε = 0.004 × Pv + 0.986

其中 ε 是地表比辐射率。NDVImin 和 NDVImax 可以用研究区内 NDVI 栅格统计值确定,也可以根据论文方法进行百分位截断,避免异常值影响。

4. 亮温校正为地表温度

常用单窗简化表达式如下:

LST = BT / (1 + (λ × BT / ρ) × Ln(ε))

其中:

  • LST:地表温度,单位 K。
  • BT:亮温,单位 K。
  • λ:热红外波段中心波长,Landsat 8 Band 10 常用约 10.895 μm。
  • ρ:常数,约为 14380 μm·K。
  • ε:地表比辐射率。

最后再减去 273.15,得到摄氏度地表温度。

步骤:ArcGIS如何做热岛分析

步骤1:准备数据

建议准备以下数据:

  • Landsat 8/9 L1 或 L2 影像。
  • 研究区边界矢量,例如城市行政区或建成区边界。
  • 土地利用数据,可用于后续分析不同地类温度差异。
  • 云量较低、季节一致的影像,优先选择夏季晴朗时相。

如果使用 Landsat Collection 2 Level-2 地表温度产品,部分温度反演步骤已经由官方处理完成,但仍需要注意比例因子、云掩膜和单位转换。若使用 Level-1 数据,则需要按前文公式自行反演地表温度。

步骤2:影像裁剪与预处理

  1. 在 ArcGIS Pro 中加载多波段影像和研究区边界。
  2. 使用 Extract by MaskClip Raster 裁剪研究区。
  3. 检查影像坐标系,确保栅格与边界数据空间参考一致。
  4. 使用质量控制波段或云掩膜去除云、云影和异常像元。

云和云影会严重影响地表温度反演结果。热岛分析中如果不处理云区,高温或低温异常斑块很容易被误判为城市热岛或冷岛。

步骤3:计算NDVI

打开 ArcGIS 的 Raster Calculator,输入 NDVI 表达式:

Float("B5" - "B4") / Float("B5" + "B4")

输出 NDVI 栅格后,查看统计值。正常情况下,水体和建筑区 NDVI 较低,植被区 NDVI 较高。如果 NDVI 大面积超出 -1 到 1,通常说明波段选错或没有正确转为浮点计算。

步骤4:计算地表比辐射率

先根据 NDVI 栅格统计值确定 NDVImin 和 NDVImax,然后计算植被覆盖度 Pv:

Power((("NDVI" - NDVImin) / (NDVImax - NDVImin)), 2)

再计算地表比辐射率:

0.004 * "Pv" + 0.986

如果研究区包含大面积水体,建议对水体单独处理,避免用植被覆盖度公式直接估算所有地类的比辐射率。

步骤5:热红外波段辐射定标

以 Landsat 8 Band 10 为例,根据 MTL 文件中的 RADIANCE_MULT_BAND_10 和 RADIANCE_ADD_BAND_10 参数进行计算:

("B10" * RADIANCE_MULT_BAND_10) + RADIANCE_ADD_BAND_10

不要直接复制网上公式中的固定参数。不同影像、不同传感器、不同数据集合的参数可能不同,必须从当前影像的元数据文件读取。

步骤6:计算亮温

根据 MTL 文件中的 K1_CONSTANT_BAND_10 和 K2_CONSTANT_BAND_10 计算亮温:

K2_CONSTANT_BAND_10 / Ln((K1_CONSTANT_BAND_10 / "Radiance_B10") + 1)

此时结果单位是 K,不要马上与摄氏度气温对比。后续地表温度校正完成后,再统一转为 ℃。

步骤7:计算地表温度

用亮温和比辐射率计算地表温度:

"BT" / (1 + (10.895 * "BT" / 14380) * Ln("Emissivity"))

再转换为摄氏度:

"LST_K" - 273.15

得到的 LST_C 栅格就是后续 ArcGIS热岛分析的基础数据。

步骤8:热岛强度分级

常用的热岛强度分级方法有两类:

  • 均值标准差法:用地表温度均值和标准差划分等级。
  • 自然断点法:使用 ArcGIS 的 Natural Breaks 自动识别温度分布断点。

论文和报告中较常见的是均值标准差法。例如:

热岛等级 判定方式示例 说明
冷岛区 LST ≤ Mean – 1 Std 多对应水体、林地或高植被覆盖区
低温区 Mean – 1 Std 到 Mean 温度低于平均水平
中温区 Mean 到 Mean + 1 Std 接近或略高于平均水平
强热岛区 LST ≥ Mean + 1 Std 多对应高密度建设用地、裸地、工业区

在 ArcGIS 中可使用 Reclassify 工具完成热岛强度分级。分级前先查看 LST 栅格统计值,记录最小值、最大值、平均值和标准差。

步骤9:计算热岛面积和占比

热岛强度分级完成后,可以用以下方法统计面积:

  1. 使用 Raster to Polygon 将热岛等级栅格转为面。
  2. Dissolve 按等级字段融合。
  3. 使用 Calculate Geometry Attributes 计算面积。
  4. 统计各等级面积占研究区总面积的比例。

如果不想转矢量,也可以直接使用栅格属性表统计像元数量,然后用像元数量乘以像元面积。例如 30 m 分辨率 Landsat 像元面积约为 900 平方米。

步骤10:与土地利用叠加分析

热岛分析最好不要只停留在一张温度图。可以把地表温度与土地利用数据叠加,分析不同地类的平均温度差异。

在 ArcGIS 中常用工具包括:

  • Zonal Statistics as Table:按土地利用类型统计平均地表温度。
  • Tabulate Area:统计不同热岛等级在各土地利用类型中的面积。
  • Spatial Analyst:用于栅格计算、重分类和分区统计。

这样的结果更适合解释“为什么某些区域热岛强”,例如工业用地、商业中心、裸地和高密度居住区通常比水体、林地、公园绿地温度更高。

常见坑:地表温度反演为什么结果不对

1. 把DN值直接当温度

原始热红外波段的 DN 值不是摄氏度,也不是开尔文温度。必须经过辐射定标和亮温转换。很多 ArcGIS热岛分析结果异常,根本原因就是跳过了地表温度反演。

2. Landsat波段选错

Landsat 8/9 计算 NDVI 通常使用 Band 5 和 Band 4,热红外温度反演通常优先使用 Band 10。不要把 Landsat 5、7、8 的波段编号混用。

3. 忽略MTL元数据参数

辐射定标系数、K1、K2 常数应来自影像自带的 MTL 文件。网上示例公式只能作为格式参考,不能保证适用于你的数据。

4. 没有处理云和异常值

云、云影、积雪、传感器异常条带都会影响 LST 结果。建议先用 QA 波段或质量掩膜清除异常像元,再进行热岛强度分级。

5. 摄氏度和开尔文混用

亮温和地表温度公式一般使用 K。如果中途误把 ℃ 代入公式,结果会明显错误。建议在命名中标清楚,例如 BT_K、LST_K、LST_C。

6. 用单景影像解释长期热岛规律

单景 Landsat 影像只能代表某一天过境时刻的地表热状况。若要研究长期城市热岛变化,应选择多期同季节影像,尽量控制月份、时间、云量和数据源一致。

方法比较:ArcGIS热岛分析常见路线怎么选

方法 适用场景 优点 限制
Landsat Level-1 自行反演 课程作业、论文方法复现、需要掌握反演过程 过程透明,便于解释公式和参数 步骤较多,容易因参数或单位出错
Landsat Level-2 地表温度产品 快速获取地表温度,重点做空间分析 减少反演工作量,官方处理更规范 仍需检查比例因子、云掩膜和适用条件
MODIS LST 产品 大范围、长时间序列热岛研究 时间分辨率高,适合趋势分析 空间分辨率较粗,不适合精细城市街区分析
ArcGIS + 土地利用分区统计 解释热岛成因和管理建议 结果更有分析深度 依赖土地利用数据精度

如果你是第一次做 ArcGIS热岛分析,建议先用 Landsat 8/9 单景影像完整走一遍地表温度反演流程。熟悉公式后,再考虑多期对比、土地利用叠加和城市扩张分析。

检查清单:提交成果前逐项核对

  • 是否明确说明使用的数据源、传感器、日期和云量?
  • 是否使用研究区边界裁剪了所有输入栅格?
  • NDVI 是否在合理范围内,通常应主要位于 -1 到 1?
  • 辐射定标参数是否来自当前影像的 MTL 文件?
  • 亮温和地表温度计算中是否保持 K 与 ℃ 的单位一致?
  • 是否对云、云影、水体或异常值进行了说明或处理?
  • 热岛强度分级方法是否写清楚,例如均值标准差法或自然断点法?
  • 是否统计了各热岛等级面积和占比?
  • 是否结合土地利用、植被覆盖或不透水面解释热岛空间分布?
  • 最终地图是否包含图名、图例、比例尺、指北针和坐标信息?

FAQ:ArcGIS热岛分析常见问题

Q1:ArcGIS可以直接反演地表温度吗?

可以。ArcGIS 的 Raster Calculator、Spatial Analyst、Image Analyst 等工具可以完成 NDVI 计算、辐射定标、亮温计算、地表比辐射率估算和地表温度反演。但 ArcGIS 不会自动替你判断公式参数是否正确,关键还是要核对数据源和元数据。

Q2:地表温度反演一定要做大气校正吗?

严格研究中,大气影响需要认真考虑。课程作业或一般城市热岛空间格局分析中,常见做法是使用 Landsat Level-2 产品,或采用简化的单窗算法与比辐射率校正。若用于正式论文,建议在方法部分说明算法来源、适用条件和误差限制。

Q3:为什么我算出来的温度特别高或特别低?

优先检查四点:第一,是否把 DN 值直接当作温度;第二,是否使用了错误波段;第三,是否把 K 和 ℃ 混用;第四,是否复制了不属于当前影像的 MTL 参数。多数异常结果都和这几项有关。

Q4:热岛强度分级用自然断点还是均值标准差?

如果重点是制图表达,自然断点法比较直观;如果重点是论文分析和不同年份对比,均值标准差法更容易解释。多期对比时,建议保持分级规则一致,否则不同年份的热岛面积变化可能只是分类方法造成的。

Q5:地表温度和气温能直接比较吗?

不能简单直接比较。地表温度反映地表表面的热状态,气象站气温通常是近地面一定高度的空气温度。两者相关,但不是同一个物理量。报告中应写清楚使用的是地表温度 LST,而不是空气温度。

Q6:热岛分析必须使用遥感影像吗?

不一定。如果研究的是城市气温热岛,也可以使用气象站点、移动观测或再分析数据。但在 GIS 课程和城市空间分析中,遥感地表温度反演更常见,因为它能提供连续空间分布,便于在 ArcGIS 中制图和叠加分析。

结论:从地表温度反演到热岛解释才是完整流程

“ArcGIS如何做热岛分析?地表温度怎么反演?”的核心答案可以概括为:先用热红外影像反演地表温度,再基于 LST 做热岛强度分级、面积统计和空间解释。不要把原始 DN 值直接当温度,也不要只输出一张红蓝渐变图就结束。

一个可靠的 ArcGIS热岛分析成果,应该包括数据来源、反演公式、参数来源、温度单位、热岛分级方法、面积统计和成因解释。只要按本文流程逐步核对,地表温度反演和城市热岛分析就能从“看起来会做”变成“结果可解释、方法可复现”。