城市热岛效应怎么分析?地表温度如何反演?
别再对着热力图发呆了:城市热岛分析其实有套路
你是不是也遇到过这种情况?领导让你“做个热岛分析”,你打开遥感影像,拉出温度图层,调个色带,交上去却被问:“这红的地方到底比郊区高几度?有没有量化?空间格局怎么解释?”——别慌,今天我就手把手带你从零搭建一套完整的地表温度反演+热岛效应分析流水线。

我在参与某省会城市“双碳”评估项目时发现,90%的初学者卡在第一步:误把“亮温”当“地表温度”。结果分析出来的“热岛”其实是传感器误差和大气干扰的混合体。
地表温度不是直接拍出来的,而是“算”出来的
很多人以为卫星一拍,温度就出来了。错!卫星传感器记录的是“辐射亮度”,要经过大气校正、发射率估算、温度转换三道关卡,才能得到真实的“地表温度(LST)”。你可以把它想象成“厨房里的温度计坏了,只能靠锅盖冒气的速度和锅的材质来反推水温”——这就是反演的本质。
目前主流方法有三种:
- 单窗算法:适合 Landsat 系列,公式简洁,但对大气参数敏感;
- 分裂窗算法:适用于 MODIS/Aqua/Terra,利用两个热红外波段“互相纠错”;
- 辐射传输方程法:最精确,但需要大气廓线数据(如使用 ENVI + FLAASH 模块)。
对新手我推荐从 Landsat 8/9 的单窗算法 入手。为什么?数据免费、教程多、ENVI/QGIS 插件成熟。下面我用 QGIS + Semi-Automatic Classification Plugin (SCP) 给你走一遍实战流程。
五步搞定地表温度反演(附代码片段)
Step 1:下载 Landsat 8 Level-2 数据
去 USGS EarthExplorer 下载已做过辐射定标和大气校正的数据(文件名含 _L2SP),省去自己做 TOA 辐射转换的麻烦。
Step 2:提取 Band 10(热红外波段)
用 SCP 插件或直接用栅格计算器加载 Band 10,单位是 Digital Number (DN),需转为 Top of Atmosphere Brightness Temperature。
# Python 示例:使用 GDAL 读取并转换 DN 值
import gdal
band10 = gdal.Open('LC08_L2SP_xxx_B10.TIF').ReadAsArray()
# 使用元数据中的增益和偏移
radiance = band10 * RADIANCE_MULT_BAND_10 + RADIANCE_ADD_BAND_10
toa_bt = (K2 / np.log(K1 / radiance + 1)) - 273.15 # 转为摄氏度
Step 3:计算地表发射率
这是最容易被忽略的一步!不同地物(水泥、植被、水体)发射热量的能力不同。我们常用 NDVI 阈值法估算:
- NDVI < 0.2 → 裸土/建筑,发射率 ≈ 0.92
- 0.2 ≤ NDVI ≤ 0.5 → 混合像元,线性插值
- NDVI > 0.5 → 植被,发射率 ≈ 0.99
Step 4:应用单窗算法公式
核心公式如下(简化版):
LST = [BT / (1 + (λ * BT / ρ) * ln(ε))]
# 其中 BT=亮温, λ=波长(10.9μm), ρ=常数(1.438e-2), ε=发射率
Step 5:裁剪与重采样
将结果裁剪到城市边界,并重采样至 30m 分辨率,便于后续空间分析。
热岛强度怎么算?空间格局怎么看?
有了地表温度图,热岛分析才刚起步。真正的价值在于空间对比和统计量化。
| 指标 | 含义 | 计算方式 |
|---|---|---|
| UHI Intensity | 城区均温 - 郊区均温 | Zonal Statistics |
| 高温斑块密度 | 每平方公里>35℃区域占比 | Reclassify + Raster Calculator |
| 冷岛指数 | 公园/水体降温幅度 | Buffer + Extract by Mask |
进阶玩家还可以叠加 POI、路网、建筑高度数据,做回归分析,找出“谁是热岛元凶”。比如我在深圳项目中发现,容积率 >4.0 的区域,夏季 LST 平均高出周边 3.2℃,比绿地覆盖率的影响还显著。
避坑指南:三个高频错误千万别犯
- 混淆亮温和地表温度 —— 不做发射率校正,结果偏差可达 5℃ 以上;
- 郊区样本选在机场或工业区 —— “郊区”必须是自然植被覆盖区,否则 UHI 强度被低估;
- 忽略时间一致性 —— 夏季午后(13:00-15:00)才是热岛最强时刻,别拿早晨数据充数。
总结:热岛分析不是炫技,而是决策工具
从数据下载 → 温度反演 → 空间统计 → 影响因子挖掘,这套流程不仅能发论文,更能指导城市通风廊道规划、绿地系统优化、甚至建筑节能改造。记住:温度只是表象,空间关系才是本质。
👉 你在做热岛分析时遇到过哪些“坑”?用的是 Landsat 还是 Sentinel?欢迎在评论区留言,我会挑典型问题做深度复盘!
-
地理信息系统软件太贵?这5款开源工具免费好用(附:安装包) 2026-04-13 08:30:02
-
地理信息系统专业代码是多少?新版学科目录解读(含:对照表) 2026-04-13 08:30:02
-
地理信息系统原理太难懂?汤国安教程第二版全解析(附:PDF) 2026-04-13 08:30:02
-
地理信息系统和遥感怎么分?三张图看懂核心区别(含:应用案例) 2026-04-13 08:30:02
-
地理信息系统原理太难懂?图解核心逻辑与架构(附:思维导图) 2026-04-13 08:30:02
-
地理信息系统的英文缩写是什么?入门必看指南(含:学习图谱) 2026-04-13 08:30:01
-
地理信息系统怎么选?最新专业大学排名深度解读(附:学科评估) 2026-04-13 08:30:01
-
GeoPandas库安装报错?GIS环境配置(附:离线包) 2026-04-12 08:30:02
-
GeoPandas安装难?GIS环境配置全攻略(附:懒人包) 2026-04-12 08:30:02
-
地理信息系统入门难吗?零基础高效学习路线(附:视频教程) 2026-04-12 08:30:02
-
GeoPandas绘图太丑?GIS可视化教程(含:配色表) 2026-04-12 08:30:02
-
地理信息系统专业怎么选?五大高薪就业方向盘点(含:薪资表) 2026-04-12 08:30:02
-
地理信息系统能干什么?十大应用场景全解析(含:学习路线) 2026-04-12 08:30:02
-
还在用ArcGIS?GeoPandas官方文档实操详解(附:完整代码) 2026-04-12 08:30:01
-
GeoPandas如何筛选点?空间查询实战(附:源码) 2026-04-12 08:30:01
-
GeoPandas是什么?GIS空间分析实战指南(含:数据) 2026-04-12 08:30:01
-
ArcGIS处理数据太慢?GeoPandas高效分析实战(附:完整源码) 2026-04-12 08:30:01
-
SHP数据清洗太耗时?GeoPandas批量处理实战(附:完整脚本) 2026-04-11 08:30:02
-
GeoPandas怎么读?GIS空间分析实战(附:源码) 2026-04-11 08:30:02
-
GIS开发工程师招聘简章怎么写?大厂JD全攻略(附:通用模板) 2026-04-11 08:30:01