ArcGis Pro| 建筑3D视线可见性:构造视线 计算通视性
写在前面:并非GIS专业,需要获取从某点到建筑的3D视线可见性,初学探索ArcGis,仅记录自己的学习记录。如有问题或错误,望指正。
概览
我的任务:给定一个点,计算从这个点向周围的建筑看过去的3D视线可见性,也就是从这个点能看见哪些建筑。
主要过程:
- 导入数据:带高度的单点元素;带高度的建筑轮廓矢量多边形
- 建筑拉伸为3D元素:Extrusion / Feature To 3D by Attribute / Layer 3D to Feature Class
- 构造视线:Construct Sight Lines
- 计算通视性:InterVisibility
- 存在的问题
导入数据:
- 带高度的单点元素,作为视线源点
- 带高度的建筑轮廓矢量多边形,作为视线目标
其中Z是高度字段
建筑拉伸
-
选中建筑元素,(1)Feature Layer → Extrusion → Type → Base Height; (2)Field选择高度字段名称
可以发现,建筑现在已经被拉伸了 -
Feature To 3D by Attribute:(1)Analysis → Tool → 在Geoprocessing搜索框中搜索 Feature To 3D by Attribute,其中Height字段是建筑多边形中代表每个建筑高度的列名; (2)填写必要参数,点击run
-
Layer 3D to Feature Class:同样的方法找到 Layer 3D to Feature Class工具,填写必要参数,点击run,将建筑变成multi-patch类型
右击生成的 targ_3dm 元素 → 点击Property → 查看Source,会发现数据类型变成了Muiltipathch:
构造视线
-
Construct Sight Lines:找到Construct Sight Lines工具,填写参数。这里我们将点元素作为Observer,高度为2.0米,模拟人眼高度;将建筑多边形作为Target,使用建筑高度字段作为目标点的高度,构造视线
计算通视性
-
InterVisibility:找到InterVisibility工具,填写参数,其中Visible Filed Name是指:写入原始视线文件中表示视线可见性的字段名称,这里是VISIBLE,可以看到运行完成后,sight新增了一列VISIBLE
存在的问题
-
我只会Extrusion手动操作:建筑拉伸时,在Extrusion中将建筑Type改为Base Height,我只找到手动拉伸的方法,不知道arcpy中是否有可以通过写代码实现批处理的方法。
-
Construct Sight Lines每个建筑只能构造一条视线:Construct Sight Lines的帮助文档中,每个建筑会构造多条视线,但我的视线结果中,每个建筑只有一条建筑,而且这一条视线会连接到建筑多边形远离Observer的那一边,这样我将建筑当做障碍物后,这条视线岂不是铁定不可见?
需要修改哪些参数设置吗? -
Intervisibility工具计算的VISIBLE不准确:我将VISIBLE为1的视线选中,其中蓝色表示VISIBLE为1的视线,剩下棕色的视线均是VISIBLE为0的视线。但我们观察实际的数据可以发现,有很多可见的视线其VISIBLE字段并不是1,比如图中红色箭头指示的视线。
这又是啥问题……文章来源:https://www.toymoban.com/news/detail-759128.html
参考链接:
主要参考 https://geodoer.blog.csdn.net/article/details/78492226;
另外一个建筑拉伸的找不到原文了,抱歉文章来源地址https://www.toymoban.com/news/detail-759128.html
到了这里,关于ArcGis Pro | 建筑3D视线可见性:构造视线 计算通视性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!