一、工具介绍
利用C#语言,基于ArcGIS二次开发实现了建筑物群高度变化程度计算工具,计算工具安装和使用简单,作为插件在ArcMap软件里运行,支持ArcGIS10.2及以上版本ArcMap。
1、工具界面
2、计算结果示例
3、计算原理
在城市的垂直空间中,建筑群的高度轮廓线也可以决定通风的水平,高度的变化可以将高处的气流引导入人行的高度。随着建筑高度的增加,建筑迎风面的湍流现象开始变强,平均风速开始增加,并且高度变化程度越大,建筑间隙空间的空气流动速度越高。建筑群的高度变化均在栅格内进行统计,计算建筑群高度的标准差,表示建筑高度的变化程度。结合自然断点法,将高度变化程度分为大于40.0m、20.0~ 40.0m、10.0~ 20.0m、5.0~ 10.0m、0~ 5.0m五类。
二、数据准备
待计算区域建筑物数据,文件格式为GIS格式(shp或gdb格式),必须使用投影坐标,属性包括建筑物高度。注意数据坐标系一定要采用投影坐标系,否则无法计算。
三、计算步骤
1、生成渔网
打开ArcMap工具箱选择>“数据管理工具”>“要素类”>“创建渔网”,参数选择及生成渔网如下图所示,模板范围选择与 建筑数据 图层相同,格网大小可以根据情况设置(本文以20*20为例),并且也可以采用非矩形格网。注意几何类型一定要选POLYGON(面状渔网),否则无法计算。本软件同时支持圆形,多边形,等不规则面状网格计算。
2、工具计算
打开建筑群高度变化程度计算工具,选择生成的渔网和建筑数据,建筑高程属性字段,然后开始计算,如下图所示。
3、计算结果
计算完成后,自动在渔网图层添加Hchange(别名:高度变化程度)字段,字段值即为计算得到的每个网格的高度变化程度。计算过程中可以中途停止,添加的flag_Hchange字段等于1表示已经计算完成的网格,下次启动会进行续算,自动忽略flag_Hchange=1的网格。若需要重新计算,请将flag赋值为0。
4、计算结果(马赛克)
利用ArcMap工具,将计算完成的网格转成栅格,如下图所示。使用本文方法生成马赛克的清晰度不受网格大小影响。
(1)渔网面转点
使用【要素转点】工具将渔网转化为点要素。
(2)点转马赛克
使用【自然邻域法】将上一步生成的点要素转为栅格,即为最终结果马赛克。注意Z值字段选择高度变化程度Hchange.