
最近在啃一篇关于香港城市气候的论文主题正是用GIS手段绘制高密度城市的局地气候分区Local Climate ZoneLCZ地图。这篇笔记与其说是“读完总结”不如说是我一边复现一边踩坑的记录——从LCZ体系的理解到数据怎么准备、参数怎么算再到分类结果怎么验证全都串进去了。如果你也在做城市热岛、通风评估或者气候适应性规划相关的工作这篇应该能帮你省下不少摸索的时间。LCZ这个概念全称是Local Climate Zone中文习惯叫局地气候分区。它是Stewart和Oke在2012年前后提出的一套城市气候分类框架用一组可量化的形态参数把城市和自然地表划分成17个标准类别。它和传统土地利用分类最大的区别在于每个LCZ类别都有明确的热物理意义同一LCZ内部的气温特征在理想条件下是相似的不同LCZ之间的气候响应差异是显著的。但把LCZ框架落到高密度城市里事情就没那么顺利了。香港的城市形态是出了名的极端几十层的高楼紧挨着建街道狭窄地形起伏大可用土地极少。常规的LCZ制图流程在这种场景下往往会遇到分类准确率上不去、边界不够平滑、山体阴影干扰严重等一系列问题。这篇论文的价值就在于提出了一个适合高密度城市的GIS制图技术路线并且用实际数据验证了它的有效性。在读这篇论文的过程中我完整梳理了LCZ制图的底层逻辑、核心参数、实操流程也复现了关键环节。这篇博客就把这些内容整理成一套可以直接参考的笔记里面的参数取值和经验教训都来自实际复现中的体会做这个方向的朋友可以拿去对照自己的项目。1. LCZ体系的核心逻辑为什么城市形态能定义气候1.1 一组参数定义一种局地气候LCZ分类的逻辑并不复杂每个类别由一组物理参数决定包括建筑高度、建筑密度、不透水面比例、透水面比例、天空视域因子、高宽比、地表粗糙度等。这些参数共同描述了城市下垫面对辐射、风、湿度的综合影响从而决定了局地热环境。标准LCZ框架一共定义了10个建成环境类型LCZ 1-10和7个自然类型LCZ A-G。举几个常见的例子LCZ 1是紧凑高层指的是密集排列的高层建筑高楼紧挨着街道狭窄天空遮挡明显LCZ 2是紧凑中层建筑高度一般10-25米密度依然很高LCZ 5是开阔中层建筑高度10-25米但密度明显降低LCZ A是密集树林LCZ G是水体。这些类别不是拍脑袋定的而是对应不同的热物理特征。比如LCZ 1和LCZ 2虽然都很密但因为建筑高度不同白天和夜间的热响应就有显著差别——高层建筑投射的阴影面积更大白天吸热和蓄热的路径不一样夜间长波辐射冷却的速率也不一样。这就是为什么LCZ分类对城市热岛研究如此重要。1.2 高密度城市为什么难高密度城市做LCZ制图难在几个方面。首先是形态参数本身极端建筑覆盖率很高几乎每个网格里都塞满了建筑LCZ类别的区分度变小。其次是地形影响显著高密度城市往往伴随山地或丘陵阴影、坡向、日照条件变化剧烈直接干扰遥感影像的光谱特征和地表温度反演。第三是训练样本不好选在高度均质的城区中找到纯净、有代表性的地面真值样本比较困难。香港就是一个典型的极端案例。城市建成区密集分布在维多利亚港两岸和山脚缓坡地带部分区域坡度极大建筑随地形起伏导致同类LCZ的光谱特征差异可能比不同类别的差异还大正好击中传统分类方法的软肋。2. 制图方法的技术路径从WUDAPT到局地优化2.1 WUDAPT协议为什么不够用目前国际上做LCZ制图的主流技术路线是WUDAPTWorld Urban Database and Access Portal Tools协议。它的流程大致是选取Landsat多季节影像做大气校正并反演地表温度结合光谱波段和纹理特征用随机森林分类器对训练样本进行监督分类。WUDAPT方法在全球很多城市都验证过总体精度一般能做到70%-85%。但在香港这种极端高密度场景下通用的WUDAPT流程有两个明显短板。一是空间分辨率不够Landsat影像的分辨率是30米对于香港两三栋楼就占满一个像素的高密度街区混合像元问题非常严重。二是地形阴影和海岸带复杂地物的影响简单用光谱特征很难区分真实的LCZ类别。这篇文章的出发点就是在WUDAPT框架的基础上做“局地化改造”核心思路是引入GIS矢量数据叠加辅助用规则网格划分城市空间逐网格计算建筑形态参数再结合遥感光谱信息完成分类。简单说先用GIS把“形态长得像什么”定量算出来再用遥感把“光谱长得像什么”叠加判断两者结合来提升分类的可靠性。2.2 一个值得参考的混合制图路线从论文的思路看技术路线大致分为四步第一步建立统一的网格系统把研究区域划分成大小一致的网格单元第二步基于建筑矢量数据和土地利用数据计算每个网格的建筑覆盖率、平均建筑高度、透水面比例等形态参数第三步用LCZ定义的参数阈值做初步分类第四步用遥感光谱特征或现场资料对初分类结果进行校正和细化。这种混合路线的优势很明显。矢量GIS数据提供了准确的地面形态信息不依赖遥感影像的分辨率有效规避了混合像元的问题。而遥感光谱数据又能捕捉到GIS数据里没有的细节比如植被生长状态、地表材质差异、临时性棚屋等。我复现后发现对于香港这种城市网格大小选200米是比较合理的。200米对应WUDAPT全球LCZ图的标准尺度也基本是城市规划中风环境评估常用的网格尺度。过小比如100米以下会导致数据噪声大、计算量大而且在建筑高度差异巨大的区域形态参数波动非常剧烈过大比如500米以上则会抹平真实的形态差异区域内部的LCZ类型会被严重均质化。3. 实操环节从数据准备到分类完成的完整流程这应该是这篇笔记里最有价值的部分。我把整体流程走了一遍每一步涉及的操作要点、参数选择和注意事项都整理在下面的章节里。3.1 数据准备哪些数据是真正必需的核心数据数据是LCZ制图的第一关。从论文方法反推核心数据有三类高分辨率遥感影像、建筑矢量数据、数字高程模型DEM。每一类都有不可替代的作用。遥感影像主要用于获取地表温度、植被指数和纹理特征。建议优先选择Landsat 8/9或Sentinel-2影像而且要尽量覆盖多个季节特别是夏季和冬季。不同季节的植被状态和地表温度差异能帮助分类器更好地区分自然类型和建成类型的边界情况。建筑矢量数据是整个混合方法的基石。它需要包含建筑轮廓和建筑高度两个属性。如果原始数据没有建筑高度可以结合楼层数估算层高按3米到3.5米取值。这个估算会对后期分类精度产生直接影响有条件的建议用机载激光雷达数据或建筑普查数据校正。数字高程模型DEM/DSM用于计算地形坡度、坡向以及建筑之间的遮挡关系是计算天空视域因子SVF和高宽比的前提。香港地区地势起伏大山区和市区混杂DEM的分辨率建议不低于10米否则山体阴影和地形遮挡的影响会被严重低估。还有一个容易被忽略的数据研究区边界和基础路网。路网数据在后期校验网格划分和类别边界时非常有用比如LCZ 2的窄街道和LCZ 8的大尺度低层建筑在路网形态上差异很明显可以利用路网辅助判断。3.2 网格划分与形态参数计算动手算一遍确定网格后就要逐个网格计算形态参数。这里我用自己的实际处理过程来做说明。假设研究区是香港某个局部区域网格大小是200米×200米一共有N个网格。对每个网格需要计算建筑覆盖率Building Surface FractionBSF、平均建筑高度Average Building HeightH、透水面比例Pervious Surface FractionPSF、天空视域因子SVF和高宽比H/W。建筑覆盖率BSF的计算方法很直接网格内建筑基底面积总和除以网格总面积。以香港中环一片区域为例一个典型的200米网格内建筑基底面积可能有18000平方米BSF就是18000除以40000等于45%属于LCZ 2紧凑中层的典型范围。平均建筑高度H是网格内所有建筑高度的加权平均值权重可以用建筑基底面积。如果网格里有3栋50米的高层和10栋8米的低层按基底面积加权后得到的平均高度会更接近实际的空间感受而不是简单的算术平均。透水面比例PSF需要结合土地利用数据或者遥感分类结果来计算把草地、林地、裸土等透水地表面积加总后除以网格面积。香港很多网格的PSF都在10%以下这是高密度城市最典型的特征。SVF的计算相对复杂表示一个点能看到天空的比例。基本思路是从地面某一点向周围360度方向做视线分析看有多少方向被建筑或地形遮挡。最直接的方法是用3D分析工具对影像或点云做光线投射计算但数据获取门槛较高。退一步可以用经验公式估算用建筑高度、街道宽度和建筑间距近似得到SVF。不过经验公式的误差在极端高密度场景下会放大有条件尽量用3D模型直接计算。3.3 分类决策与后处理随机森林不是终点形态参数计算完成后就进入分类阶段。这里的分类逻辑分成两层先用形态参数对照LCZ的标准阈值做规则分类再用随机森林或支持向量机对“规则分类落入边界区间”的网格做二次判别。第一层的规则分类相对简单。LCZ框架对每个类别给出了建议参数范围。例如BSF大于40%、平均高度大于25米、SVF较低基本可以直接判为LCZ 1BSF在20%-40%之间、高度10-25米、SVF中等判为LCZ 5更合理。但问题出在边界情况。香港很多网格的BSF高达60%以上平均高度在20米上下位置恰好落在LCZ 1和LCZ 2之间。这时就要依靠第二层的光谱纹理特征来做判别。比如LCZ 1的特征是高楼密集、街道狭窄地表温度在夏季白天通常偏低阴影多而LCZ 2虽然也密但由于建筑相对矮地表温度白天偏高。这些差异在Landsat的地表温度产品和纹理特征中可以被捕捉到。后处理部分也值得注意。分类结果通常是像素级的边缘会呈现碎斑状或椒盐状噪声。常用的处理方法是多数滤波用一个3×3或5×5的窗口对中心像元周围做众数统计把孤立的小图斑替换为周围的主导类型。这一步在香港山区特别重要因为地形阴影经常会造成同类地形被误分成不同类型。4. 高密度场景下的关键问题与应对策略即使技术路线非常清晰实际操作中还是会遇到各种具体麻烦。这里把我在复现过程中感触最深的问题整理出来也是这篇论文笔记里最值得反复翻阅的部分。4.1 地形遮挡对SVF计算的影响香港的地形不是“部分山地”而是山地和城区高度交织。很多区域的高层住宅楼就建在山坡上楼下的街道一侧紧贴山体另一侧是另一栋楼。这种情况下SVF的计算必须同时考虑建筑遮挡和地形遮挡少了任何一项都会产生明显偏差。我处理过的一个典型例子某网格位于半山腰建筑本身并不高但西侧是一座更大的山体下午的阳光被完全遮挡。如果不考虑地形因素这个网格的SVF会被算得偏高分类时很容易被误判为开阔类LCZ 4/5但实际上它的热环境完全不是那么回事。正确的做法是在光线投射分析中加入DEM地形面让建筑和地形同时参与遮挡计算。还有一个细节DEM和建筑高程的基准必须统一。曾经遇到过DEM是大地高程、建筑高度是海拔高程的情况两者直接叠加后全区域的SVF计算结果系统性偏低排查了半天才发现是高程基准没有统一。4.2 训练样本的时空代表性分类效果的分水岭如果你用的是监督分类训练样本的典型性和代表性直接决定了分类精度。在香港做训练样本最常遇到的问题有两个样本“不纯”和样本“不同期”。先说样本不纯。卫星影像上选中的多边形在实地可能是新旧建筑混合高度差异极大。比如一个看似LCZ 3的街区可能其中几栋已经被拆掉重建成了30层的高楼这个样本里其实同时包含LCZ 3和LCZ 1的特征。这种样本进分类器等于给模型喂了错误答案。解决方法不是简单“多选几个样本”而是要借助实地调研或街景影像逐一确认。香港的街景数据覆盖度较高可以快速判断样本区域的真实形态比单纯看卫星影像可靠得多。样本不同期的问题更容易被忽略。Landsat影像有存档不同季节的图像分辨率、云覆盖和太阳高度角都不同。如果夏季影像和冬季影像对应的时间基础不一致分类器学到的“季节纹理”就会错乱。4.3 验证指标不能只看总体精度我注意到很多LCZ制图的论文都习惯用一个总体精度来宣告成功但这在极端高密度场景下是远远不够的。总体精度容易被大类样本“带偏”——如果样本里LCZ 1占了60%模型只需把所有样本都分为LCZ 1总体精度也有60%。更值得关注的是混淆矩阵里的类别精度和用户精度。比如LCZ 2和LCZ 5混淆度高说明两个类别的形态特征在当前参数组合下区分度不够这时候就要回到特征选择环节思考是不是某个关键参数没有计算准确是不是某个纹理特征的权重过高把光谱差异放大成了分类干扰另外验证样本的独立性也是常见问题。验证样本最好和训练样本完全分开最好由不同的人在不同时间采集避免分类器“记住”了训练样本的位置特征。5. 经验总结与常见问题速查5.1 六个最容易踩的坑第一个坑直接用官方土地利用分类数据代替LCZ类别。土地利用分类的“商业用地”“住宅用地”和LCZ的“紧凑高层”“开阔中层”完全是两套逻辑前者关注功能后者关注物理形态不能直接映射强行替代会把分类精度拉低好几个档次。第二个坑忽略水体对地表温度反演的影响。香港周边海域广阔水体在Landsat影像上反射率低且温度特征稳定但对地面真值样本的采集可能造成干扰。水体样本和海岸带样本要单独处理不能混进自然类别的样本。第三个坑LCZ类别数量没有按需调整。标准框架是17类但很多研究区域根本不可能出现全部类别。香港大部分自然区域就是林地和水体灌木、荒漠这些类别根本不存在。这种情况下建议先做预分类把不可能出现的类别排除掉减少分类器干扰。第四个坑网格边界切割了单体建筑。建筑矢量数据在进行网格统计时建筑可能被网格边界切成两半导致两个网格都只能统计到部分建筑基底面积准确度降低。解决方法是先做好地理空间连接让建筑按其在网格内的实际面积比例被分配到对应网格。第五个坑大气校正被替代成简单的辐射定标。地表温度反演对大气校正极度敏感。如果直接用不做大气校正的亮温数据参与分类山体阴影和空气中的水汽差异会被当成真实地表特征分类噪声会显著增加。第六个坑后处理滤波过度。多数滤波虽然能平滑噪声但用的窗口过大比如7×7以上会抹掉一些真实的小尺度特征比如河涌旁的窄带绿化或山脚下的小型自然廊道这些恰恰是香港这种高密度城市里少有的“凉爽庇护所”。5.2 给新手的实操建议如果你是第一次接触LCZ制图我的建议是先找一个小型研究区域练手不要一上来就做整个城市。选一个地形相对平坦、建筑类型较单一的城区跑通全流程后再扩展到更复杂的区域。技术路线上优先掌握QGIS的基本空间分析和Python库如GeoPandas、Rasterio的使用。整个LCZ制图流程本质上就是空间数据统计和栅格分类两大块前者用GIS软件解决后者用机器学习库解决。不要纠缠于某个特定软件的功能真正决定成片质量的是你对LCZ分类逻辑的理解深度。参数取值方面建议先按Stewart和Oke论文原文给出的标准值设置阈值跑通后再根据本地特征调整。自己随意修改阈值而不验证很容易得到一份“看起来很合理但实际上毫无气候意义”的图——这种图是城市气候研究里最危险的产物。5.3 快速排查清单如果在复现过程中出现了精度异常可以按下面清单逐一排查影像日期是否跨季节地表温度差异是否足够明显训练样本是否经过实地或街景核验是否存在混合类型建筑高度数据是否与DEM高程基准一致网格尺寸是否与城市建筑尺度匹配用于分类的特征是否被过度归一化或缩放不当验证样本与训练样本是否完全独立6. 个人心得与后续可以做的事这篇论文笔记写到这里我自己对LCZ制图的理解也清晰了不少。平心而论LCZ并不是一个完美的分类体系它的形态参数阈值几乎都源自对欧美城市形态的观察在亚洲极端高密度的城市里很多参数组合会落在标准阈值的盲区。但正是这种“不完美”让LCZ制图成为一种很有生命力的研究方向——你可以把它当作一把尺子量完标准刻度之后再根据自己的需求调整刻度间距。我在实际复现过程中最大的体会是数据和算法固然重要但真正决定结果的是你对城市形态和气候响应之间关系的理解。LCZ分类终究是把物理现象映射成类别标签如果映射逻辑本身不对再高级的分类器也只是在制造漂亮的错误。最后分享一个小技巧当你不确定某个网格属于哪一类时不要急着改参数换算法先去实地或者街景看一看。很多分类错误的根源是你想象中的“高密度”和真实的高密度并不一样。数据是冷的但城市是活的。后续这个方向还能延伸的做法一是在LCZ图上叠加风速模拟或温度观测数据构建局地热环境评估模型二是把LCZ与城市通风廊道识别结合在一起在高度密实的建成环境中找出潜在的空气流通通道三是把LCZ图作为城市气候地图的基础层为规划部门提供更直观的决策参考。这篇笔记就先到这里如果后面有新的复现进展或者踩到更深的坑我再来更新。