因为ArcGIS中的视线分析工具只能应用于栅格地表面,因此如果做视线分析时需要将建筑考虑在内,就需要将建筑业处理成地表面的一部分。
1.构建TIN地表面:
根据现有的等高线、高程点等数据构建TIN地表面。具体可以参考三维分析——TIN表面创建这篇文章。

2.获取建筑屋顶标高:
这里的建筑屋顶标高采用如下公式计算得到:建筑基底标高+建筑层数×3m
- 选择【系统工具箱→Data Management Tools→要素→要素转点】工具,获取建筑面的中部点。
- 选择【系统工具箱→3D Analyst Tools→功能性表面→添加表面信息】工具,根据之前创建的TIN地表面为建筑面内的点添加高程Z属性,并将其作为建筑的基底标高。
- 将建筑数据层与上一步得到的建筑面内的点数据层相连接,使得建筑数据层获得高程Z属性。
- 打开建筑数据层属性表,新建双精度
GD
字段(屋顶标高)。

3.生成带建筑的栅格地表面:
- 选择【系统工具箱→3D Analyst Tools→转换→由TIN转出→TIN转栅格】工具,将TIN地表面转换为栅格地表面。
- 选择【系统工具箱→Conversion Tools→转为栅格→面转栅格】工具,将建筑面要素转换为栅格数据。
- 选择【系统工具箱→Spatial Analyst Tools→数学分析→逻辑运算→为空】工具,得到是否是建筑区域的栅格数据,其中,建筑区域的栅格值为0,非建筑区域的栅格值为1。

- 选择【系统工具箱→Spatial Analyst Tools→条件分析→条件函数】工具,用于生成带建筑的栅格地表面数据。

4.ArcScene中三维显示:
将生成的带建筑的栅格地表面数据加载到ArcScene中,打开图层属性对话框,分别切换到【基本高度】、【渲染】、【符号系统】选项卡进行相关设置。



得到如下三维显示效果:
