ARCGIS空间分析实习五说明
城市建筑⽇照分析
1. 背景
随着城市建筑密度越来越⼤,建筑物的⽇照规范也被纳⼊城市规划的指标之中,⼀⽅⾯要衡量现有建筑是否符合规范,另⼀⽅⾯⼜要对未来城市规划提供参考依据。应⽤GIS 空间分析⽅法可以⽅便的出不符合建筑⽇照规范的建筑。
2. 数据
(1)某⼀城区建筑数据buildings.shp ;(2)地块单元数据parcel.shp 。
图1. 建筑数据(左)和地块单元数据(右)
3. 要求
(1)计算该地区各个单元的容积率
⽤地⾯积建筑⾯积容积率/= (公式1)式中,建筑⾯积为各楼层建筑⾯积之和;⽤地⾯积为各地块单元(parcels.shp )⾯积。(2)请出不符合国家规定⽇照标准的建筑。
我国建筑⽇照标准有如下规定:⼀个建筑底层⽇照要⾄少满⾜在冬⾄这⼀天,在12:00-14:00能接受到太阳照射。已知该地区纬度¢为32°,太阳⾚纬计算公式为:
θθθθδ2sin 00089.02cos 006799.0-sin 072075.0cos 399512.0-006894.0++= (公式2)
式中,θ为⽇⾓,即365.2422
t 20
πθ=
,t 0=N -1,N 为积⽇,即为⽇期在年内的顺序号(1
⽉1⽇为1,以此类推,⾮闰年的12⽉31⽇为365)。时⾓t 为
t=(s+f /60-12)*15 (公式3)式中,s 为时,f 为分。太阳⾼度⾓h ,即
)(cost cos cos sin sin arcsin h ?δ?δ+= (公式4)太阳⽅位⾓A (⽅位⾓是以正南⽅向为0,顺时针为正,逆时针为负),即
()[]?δ?c o s c o s h /s i n s i n s i n h a r c c o s A -= (公式5)
(3)注意:弧度与⾓度的转换(在三⾓函数中统⼀使⽤弧度)
4. ⼯作流程
⑴计算容积率
根据给定的容积率计算公式,需要计算各地块的⾯积和地块内的建筑物的建筑总⾯积,⽽地块内建筑物的建筑总⾯积⼜与每个建筑物的建筑⾯积相关。因此,⾸先计算每个建筑物的建筑⾯积,然后将不同建筑物标识到其所属的地块内,以此得到地块内的建筑物的总建筑⾯积。同时,计算出各个地块的⾯积,依据公式1计算得到地块的容积率。⑵出不符合⽇照标准的建筑
在ArcGIS 10的三维分析⼯具中,提供了阴影分析的功能,该分析⼯具的光源为点状光源,⽽本例的太阳光源属于平⾏光光源,因此该阴影分析的功能⽆法满⾜本例的需要。ArcGIS 提供的⼭体阴影⼯具,模拟的是太阳平⾏光源,可以⽤于本例的分析。因此,采⽤⼭体阴影⼯具(Hillshade )进⾏⽇照分析。
要提取太阳在规定时间内、不同⽅位⾓⽣成的建筑物阴影,必须获得建筑物的⾼度。因此,①将⽮量建筑物数据转为栅格,属性为建筑物⾼度。②由于建筑物是体模型,在空间上具有⼀定的宽度,如果直接对建筑物提取⼭体阴影会造成判断错误。例如假设建筑物A 与建筑物B 在空间上存在阴影遮挡(即A 挡住了B ),则A 在B 向阳向的前⽅,B 的房顶会遮盖住A 的阴影,给遮蔽判断带来困难,如下图所⽰:
图2. 投影缺失(左)和正确情况(右)
因此,为解决这个问题,⾸先需要提取建筑物的背光⾯⾼度数据,由此提取[12:00 - 14:00]这段时间的“⼭体阴影”,并与建筑物进⾏叠加分析,从⽽判断建筑物是否满⾜⽇照标准。
要判断12:00–14:00建筑物的遮挡情况,还需要对太阳⾼度和⾓度的变化逐时刻模拟太阳⽇照,这是⼀个积分过程,微分时刻划分的越细,计算量越⼤,⼯作越复杂。在保证结果正确性的前提下,为了提⾼效率,我们只计算3个时刻(即12:00、13:00、14:00)的⽇照情况,如果这3个时刻都没有遮挡,则说明建筑物满⾜⽇照要求。
最后通过分析阴影与建筑物的空间叠加关系,出不符合⽇照标准的建筑物。三角函数查询表
⼯作流程图如下:
图3. ⼯作流程图
5.操作步骤
⑴求解地块容积率。
①计算地块⽤地⾯积。
⽅法⼀:选择【空间统计⼯具】|【⼯具】}【计算⾯积】⼯具,打开对话框如下图:
图4. ⾯积计算⼯具对话框
图5. parcel_area属性表及⾯积计算结果
⽅法⼆:打开parcel⽂件属性表,选择add field命令,如下图:
图6. parcel属性表add field命令
添加“area”字段,设置“字段类型”为double。右键该字段名,在菜单中选择【calculate geometry】命令
图7. 选择calculate geometry命令
图8. 计算结果
②计算各建筑物的总⾯积(建筑总⾯积=每层建筑⾯积×楼层数)。
打开buildings属性表,新建⼀个双精度字段“T_area”表⽰建筑物总⾯积(⽅法同上),右键该字段,选择【filed calculator】命令,在对话框中输⼊公式:[FLOOR]*[area],得
到建筑物总⾯积,如下图:
图9. field calculator对话框及总⾯积计算结果
③标识各个建筑所属地块,便于下⼀步计算各个地块内的建筑总⾯积。
选择【分析⼯具】|【叠加分析】|【标识】⼯具,打开对话框如图:
图10. Identity⼯具对话框
输⼊要素:buildings;
标识要素:parcel;
输出要素类:buildings_ID;
连接属性:ALL;
其它参数选择默认,⽣产结果属性表如图:
图11. 标识结果
④通过建筑物所属地块的ID属性来统计每个地块内的总建筑⾯积。
打开building_ID的属性表,右击ID_1字段,选择【summarize】命令,打开对话框及输出结果如图:
图12. 汇总⼯具对话框及汇总结果
⑤关联表Sum_Area和parcel_area的属性表。
右键parcel_area(或parcel)图层,选择【连接和关联】|【连接】⼯具,打开⼯具对话框如图:
图13. 连接⼯具对话框
设置parcel_area(或parcel)的ID字段和表Sum_Area的ID_1字段进⾏关联操作。在提⽰是否
创建索引的对话框选择“是”。
图14. 关联结果
⑥计算每个地块的容积率
在parcel_area(或parcel)的属性表中,新建双精度字段Rate;右键该字段选择【field calculator】
⼯具,输出公式:[Sum_Area.Sum_T_area]/[parcel_area.F_AREA](或[parcel.area]),计算结果就
是容积率。计算完成后,右击parcel_area图层,选择【连接和关联】|【移除连接】|【Sum_Area】。结果如下图:
图15. 地块容积率计算结果
⑵出不符合⽇照标准的建筑。
1)将buildings.shp转化为栅格数据。选择【convention Tools】|【To Raster】|【Polygon
To Raster】⼯具,打开⼯具对话框,如图:
图16. ⾯转栅格对话框
输⼊要素:buildings;
值字段:height;
输出栅格:buildings_g;
像元⼤⼩:1
其他参数默认设置,点击确定,⽣成栅格数据,如图:
图17. 建筑物栅格数据
2)对于上⾯栅格数据,须将NoData转为数值0,否则获得的阴影数据将不完整。
选择【spaitial analyst tools】|【reclass】|【reclassify】⼯具,
输⼊栅格:buildings_g;
重分类字段:value;
将NoData的值改为0,其它值保持不变;
输出栅格:dem_buildings。
图18. 重分类结果
3)分别根据给定的公式,计算12:00、13:00和14:00这3个时间点太阳的⾼度⾓和太
阳⽅位⾓(如下表)。
表1. 太阳位置时刻表
* ⾓度单位为°。
4)假设在t0时刻太阳的⽅位⾓为A,则建筑物在t0时刻的向光⾯坡向为[A-90,A+90].
依据此原理,分别提取不同时刻的建筑物背光⾯轮廓。(下⾯说明12:00的背光⾯轮廓提取步骤)。
选择【spaitial analyst tools】|【surface】|【aspect】⼯具。打开⼯具对话框如图。
输⼊栅格:dem_buildings;
输出栅格:aspect12;
⽣成坡向数据如图:
图19. 12:00建筑物的坡向数据
5)选择【spaitial analyst tools】|【map algebra】|【raster calculator】⼯具。打开⼯具
对话框如下左图。
输⼊公式:~(("Aspect12" >= 90) & ("Aspect12" <= 270)) & ("Aspect12" >= 0)。计算12:00⽅位⾓为180°时建筑物背光⾯的轮廓。
输出栅格:back12;
图20. 栅格计算器对话框和提取结果
6)提取建筑物背光⾯的⾼度数据。
选择【spaitial analyst tools】|【map algebra】|【raster calculator】⼯具。输⼊公式:"back12" * "dem_buildings"。
输出栅格:dem12。
图21. 栅格计算器对话框和12:00建筑物背光⾯⾼度提取结果
同样的⽅法提可以取出13:00和14:00的建筑物背光⾯轮廓的⾼度数据:dem13和dem14。
7)根据3个时间点计算得到的建筑物背光⾯⾼度数据,⽣成hillshade。
选择【spaitial analyst tools】|【surface】|【hillshade】⼯具。打开⼯具对话框如图。
图21. hillshade⼯具对话框及参数设置
输⼊栅格:分别为dem12、dem13和dem14;
输出栅格:分别设为hillshade12、hillshade13和hillshade14;
“⽅位⾓”和“⾼度⾓”参数分别根据不同时刻输⼊相应的数据;
选择“模拟阴影”选项,输出栅格会同时考虑本地光照的⾓度和阴影,其中0值表⽰阴影区域。
所得3个时刻阴影数据分别如下所⽰:
图22. 12:00时刻的建筑物阴影数据
图23. 13:00时刻的建筑物阴影数据
图24. 14:00时刻的建筑物阴影数据
图25. 局部建筑物与阴影的遮挡关系(虚框为建筑物,⿊⾊为阴影区)
8)由于获得的hillshade数据中,仅值为0的栅格为建筑物的阴影,为了⽅便对该时
间段阴影的叠加分析,⾸先应先将hillshade数据进⾏【重分类】,对阴影栅格(hillshade值为0)数据,赋值为1,其它数据对应值为0 。
图26. 对hillshade数据重分类结果
然后,利⽤【raster calculator】将3个时刻的阴影栅格,累加为⼀个图层sh_all,即建筑物在12:00 – 14:00时段内的阴影范围。其取值分别为0、1、2、3;
值为0的区域属于⾮阴影区;
值为1的区域说明在某⼀时刻存在阴影;
值为2的区域说明在其中两个时刻存在阴影;
值为3的区域说明该区域3个时刻都存在阴影;
这⾥认为凡是值⼤于0的区域在12:00 ~ 14:00内有建筑物被遮挡。