01 实验数据
dem5.img(建筑所在区域的高程数据)、居民地.shp数据;
02 实验要求
1)根据居民地.shp生成研究区域的建筑密度栅格图层,图层的范围和分辨率与dem5.img一致。统计建筑密度时按21*21矩形窗口大小统计。
2)依据区域DEM和求得的建筑密度,分析区域不同坡向和不同坡度对应的平均建筑密度。
3)坡向分成南坡和北坡进行分析,得到南坡和北坡的各自平均建筑密度。
4) 坡度按照0-5度;5-15度和>15度进行分析,分别得到各自的平均建筑密度.
03 实验思路
对于图层的范围和分辨率可以在模型的环境中设置,这里不再详细描述;
我们再来理解一下建筑密度。
假如我需要计算以下区域的建筑密度(黄色为建筑用地,灰色为无建筑区域),显然建筑像元数位4,总的像元数为9,那么建筑用地占比 为 4 / 9。如果该区域就是单位面积,那么建筑用地密度就是4 / 9,如果该区域不是单位面积,如果就是除以该区域的总面积数(9 * 像元分辨率的平方或许会更好)。但是本次实验止步于如何求取单位窗口(当前3 × 3窗口)下的建筑用地占比。
另外需要注意,我们求取每一个像元的建筑密度实际上是基于该像元为中心像元的窗口进行建筑占比的计算。
计算每一个像元的建筑占比需要使用到ArcGIS工具箱中 Spatial Analysis Tools——邻域分析——焦点统计;
但是在进行焦点统计之前,我们需要将建筑用地的像元全部赋值为1,不是建筑用地的像元全部赋值为0;
然而我们的建筑用地为矢量数据而非栅格数据,因此需要将矢量数据转化为栅格数据;
转后之后的栅格影像中,建筑用地的像元值为转化工具中所选择的字段值,非建筑用地的像元值为NoData值。因此我们需要对其进行栅格计算,建筑用地的像元全部赋值为1,不是建筑用地的像元(即NoData像元)全部赋值为0。
如此处理好的栅格数据,我们就可以使用焦点统计工具对其进行处理使得每一个像元值为建筑占比,如此得到建筑密度数据。
而对于南北坡和坡地分级,对它们分别进行平均建筑密度的计算,这个简单,首先对DEM数据进行坡度分析和坡向分析,然后对其进行重分类,最后分别进行分区统计即可计算出不同区域(例如南坡、北坡等区域)的平均建筑密度。
04 实验流程
加载数据略;
4.1 建筑用地矢量转栅格
4.2 栅格化的建筑用地二值化处理
4.3 对二值化的建筑用地进行焦点统计
4.4 对DEM进行坡度分析和坡向分析
生成坡向数据
生成坡度数据
对坡度和坡向数据进行重分类
4.5 分区统计求取各区域平均建筑密度
这里不一定使用分区统计,你使用以表格显示分区统计也是可以的,我觉得使用分区统计得到栅格图像可以更好的体现位置关系下的建筑密度;而你觉得得到的表格会更简洁明了,这很正常。
类似的,基于重分类的坡度数据进行建筑密度的均值运算;
最后再设置一下模型运行的环境(处理范围和输出分辨率):
最终构建好的模型如下所示: