news 2026/6/14 1:36:39

从Landsat数据到温度地图:手把手教你用单窗算法反演城市热岛

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从Landsat数据到温度地图:手把手教你用单窗算法反演城市热岛

城市热岛效应可视化实战:基于Landsat与单窗算法的温度反演全流程解析

清晨六点的城市边缘,气象站记录到的气温比市中心低3.2℃——这是城市热岛效应最直观的体现。作为城市规划者和环境研究者,我们需要的不仅是单点温度数据,而是能揭示热力分布规律的空间可视化方案。本文将带您使用免费的Landsat影像和经典的单窗算法,构建一套完整的城市热环境分析工作流。

1. 数据准备与预处理:构建分析基础

获取2022年夏季的Landsat 8/9 Level-2数据时,重点关注以下关键波段:

  • B10:热红外波段(100m分辨率)
  • B4/B5:红/近红外波段(30m分辨率,用于NDVI计算)
  • B2/B3/B4:蓝/绿/红波段(30m分辨率,用于监督分类)
# 示例:GDAL读取多波段数据 import gdal ds = gdal.Open('LC08_L2SP_123045_20220720_20220729_02_T1.tar') thermal_band = ds.GetRasterBand(10) # B10 red_band = ds.GetRasterBand(4) # B4 nir_band = ds.GetRasterBand(5) # B5

辐射定标关键参数表

参数Landsat 8 B10Landsat 9 B10
乘数0.00033420.0003342
加数0.10.1
K1常数774.89774.89
K2常数1321.081321.08

注意:Level-2数据已进行大气校正,若使用Level-1数据需自行完成大气校正步骤

2. 地表特征分类:热岛分析的核心维度

采用随机森林分类器进行地表类型划分,建议设置三类训练样本:

  1. 不透水面:道路、屋顶等(样本值2)
  2. 植被:树木、草地(样本值3)
  3. 水体:河流、湖泊(样本值1)

分类精度验证建议采用混淆矩阵:

from sklearn.metrics import confusion_matrix y_true = [1,1,2,2,3,3] # 验证点真实类别 y_pred = [1,2,2,2,3,3] # 分类结果 print(confusion_matrix(y_true, y_pred))

典型地物比辐射率参考值

地物类型比辐射率(ε)物理特性
水体0.991-0.996高吸收率
植被0.965-0.985多孔结构
裸土0.920-0.948质地多变
沥青路面0.940-0.970粗糙表面

3. 温度反演算法实现:从理论到代码

单窗算法核心公式:

$$ T_s = \frac{T_b}{1 + (\lambda \cdot T_b / \rho) \ln \epsilon} $$

其中:

  • $T_b$:亮度温度(Kelvin)
  • $\lambda$:中心波长(10.9μm)
  • $\rho$:常数14380 m·K
  • $\epsilon$:比辐射率

Python实现示例

import numpy as np def mono_window(temp_brightness, emissivity, wavelength=10.9e-6): rho = 14380 # m·K return temp_brightness / (1 + (wavelength * temp_brightness / rho) * np.log(emissivity)) # 计算单个像元温度 temp_b = 303.15 # 亮度温度30℃ epsilon = 0.95 # 混合像元比辐射率 print(mono_window(temp_b, epsilon)) # 输出真实地表温度

提示:实际处理时应使用数组运算替代循环,可提升百倍效率

4. 热岛强度可视化与分析技巧

温度结果分级建议采用自然断点法(Jenks),典型热岛分级:

等级温度范围热岛强度
1<均值-2σ冷岛区域
2均值-2σ~-σ低温区
3均值±σ正常区
4均值+σ~+2σ热岛区
5>均值+2σ强热岛

热岛指标计算示例

def uhi_index(temp_array): rural_mean = temp_array[landcover==3].mean() # 植被区均值 urban_mean = temp_array[landcover==2].mean() # 建成区均值 return urban_mean - rural_mean # 典型城市UHI强度范围 print(f"热岛强度:{uhi_index(temperature_map):.1f}℃")

5. 进阶应用:多时相热岛演变分析

对比不同年份夏季数据时,需注意:

  • 选择相近的成像时间(UTC时间差<1小时)
  • 统一使用相同传感器数据(如全为Landsat 8)
  • 大气条件筛选(云量<10%)

时间序列分析代码框架

import xarray as xr # 构建温度时间序列 years = [2015, 2018, 2021] temp_stack = xr.DataArray( data=[temp_2015, temp_2018, temp_2021], dims=['year', 'y', 'x'], coords={'year': years} ) # 计算热岛变化趋势 trend = temp_stack.polyfit(dim='year', deg=1) print(f"年均变化率:{trend.polyfit_coefficients[0].mean():.2f}℃/年")

在最近参与的某新区规划项目中,我们发现商业区地表温度比周边绿地平均高4.7℃,通过调整绿地布局方案使温差降至2.3℃。这种基于定量遥感的技术路径,正在成为现代城市规划的标准工具包。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 1:31:55

算法日常・每日刷题--<二分查找>1

704. 二分查找 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/binary-search/description/二分查找的逻辑 在数组有序的情况下,将中间值与目标值进行对比 中间值>目标值,就到中间的左侧区域找 中间值<目标值,就到中间的右侧区域找 中间值目标…

作者头像 李华
网站建设 2026/6/14 1:30:44

qmc-decoder:打破音乐格式壁垒的终极免费转换方案

qmc-decoder&#xff1a;打破音乐格式壁垒的终极免费转换方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 当我们沉浸在QQ音乐丰富的曲库中&#xff0c;下载了数百首心爱…

作者头像 李华
网站建设 2026/6/14 1:27:54

3分钟快速上手!Vin象棋:你的智能象棋AI教练完整指南

3分钟快速上手&#xff01;Vin象棋&#xff1a;你的智能象棋AI教练完整指南 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 想要提升象棋水平却找不到合适…

作者头像 李华
网站建设 2026/6/14 1:25:08

UniApp项目实战:用uQRCode生成带动态Logo和样式切换的会员卡二维码

UniApp实战&#xff1a;打造动态会员卡二维码的高级定制方案 在移动应用生态中&#xff0c;会员系统已经成为提升用户粘性和商业价值的关键组件。而作为会员身份识别的核心载体&#xff0c;二维码的设计直接影响着用户体验和品牌形象。传统静态二维码已经无法满足现代应用对个性…

作者头像 李华