标注 | 说明 | 数据类型 |
输入点云 | 包含将生成折线要素的点云数据的输入 LAS 文件或数据集。 | LAS Dataset Layer |
输出线要素 | 将创建用于存储由 LAS 数据生成的要素的折线要素类。 如果未指定工作空间,则将使用临时工作空间。 | Feature Class |
坐标系 (可选) | 输入 LAS 数据和输出折线要素类的坐标系。 默认情况下,将使用 LAS 数据中定义的水平和垂直坐标系的坐标系。 | Spatial Reference |
输出 Z 值 (可选) | 将分配给生成的折线要素的 z 值。 默认值为 0。 您可以以米或英尺为单位指定值。 该工具将自动将该值转换为使用数据垂直坐标系的测量单位。 | Linear Unit |
简化线 (可选) | 指定在处理过程中是否使用折线压缩算法简化输出折线,以便在移除保留有效区域所不需要的多余折点之前规范化生成的折线。
| Boolean |
短要素容差 (可选) | 删除短要素的容差(以米或国际英尺为单位)。 默认值为 1 米。 使用值 0 来绕过保留短要素。 | Linear Unit |
Z 范围 (可选) | 输入点云的一个或多个 z 范围。 生成输出折线要素时将分析指定 z 范围内的点。 如果未指定值,则将使用输入点云数据中存在的全部 z 值范围。 | Value Table |
范围 (可选) | 待评估数据的范围。
当手动提供坐标时,坐标必须为数值,并且位于活动地图的坐标系中。 地图可能使用与提供的坐标不同的显示单位。 在南纬和西经坐标中使用负号。 | Extent |
摘要
创建包含根据输入点云数据生成的 2D 折线要素的折线要素类 在使用数据填充 Indoors 工作空间以协助创建地面感知型地图和场景时,可以优化此工具的输出并将其用作输入。
使用情况
此工具接受 LAS 文件作为输入,并创建表示垂直延伸的建筑(例如墙壁、门和柱子)的 2D 折线要素。 使用此工具作为更大工作流程的一部分,从点云生成平面图。
您可以优化该工具创建的输出折线要素类,用作将要素导入室内数据集工具的输入。
当输入点云有定义的坐标系时,坐标系参数会自动设置。 如果输入点云没有定义坐标系,请使用坐标系参数指定一个。 如果输入点云定义的坐标系不正确,您可以从输入点云的图层属性中更改它。 该工具在处理点云坐标和创建输出线要素时使用指定的坐标系。
该工具每次运行都会处理一个设施点的一个楼层。 如果输入点云数据覆盖多个设施点或楼层,请使用以下处理边界参数来限制处理区域:
- 使用 Z 范围参数将处理限制在单个楼层或某个楼层的高程子集。
- 使用范围参数将处理限制为单个设施点或设施点的子集。 范围参数优先于范围环境设置。
为了提高生成的输出的质量,请使用 Z 范围参数将处理限制在 z 值范围内,排除大多数家具、固定装置、照明和其他非房间边界要素的物体。 您可以探索局部场景中的点云数据,确定要包含的 z 值的最佳范围。 下图显示了如何使用 1-2 米的 z 范围避开家具和天花板固定装置:
使用简化线参数来拉直生成的输出折线并减少折点的数量。 选中此参数时,将使用折线压缩算法对生成的折线进行规范化,然后删除对于保留有效区域不必要的多余折点。
使用短要素容差参数从数据中删除短折线要素。 小于或等于指定公差的要素将被移除,除非它们距离其他要素 0.05 米以内。 使用零值以避免删除短要素,这有助于在稀疏点云数据中可视化墙壁位置。
在处理过程中,此工具可能会使用输入点云的 KeyPoint 分类字段。 如果是这样,则该工具将在工具运行结束时将字段值恢复为原始值。
参数
arcpy.indoors.GenerateFloorPlanFromPointCloud(in_point_cloud, out_line_features, {coordinate_system}, {output_z_value}, {simplify}, {short_feature_tolerance}, {z_ranges}, {extent})
名称 | 说明 | 数据类型 |
in_point_cloud | 包含将生成折线要素的点云数据的输入 LAS 文件或数据集。 | LAS Dataset Layer |
out_line_features | 将创建用于存储由 LAS 数据生成的要素的折线要素类。 如果未指定工作空间,则将使用临时工作空间。 | Feature Class |
coordinate_system (可选) | 输入 LAS 数据和输出折线要素类的坐标系。 默认情况下,将使用 LAS 数据中定义的水平和垂直坐标系的坐标系。 | Spatial Reference |
output_z_value (可选) | 将分配给生成的折线要素的 z 值。 默认值为 0。 您可以以米或英尺为单位指定值。 该工具将自动将该值转换为使用数据垂直坐标系的测量单位。 | Linear Unit |
simplify (可选) | 指定在处理过程中是否使用折线压缩算法简化输出折线,以便在移除保留有效区域所不需要的多余折点之前规范化生成的折线。
| Boolean |
short_feature_tolerance (可选) | 删除短要素的容差(以米或国际英尺为单位)。 默认值为 1 米。 使用值 0 来绕过保留短要素。 | Linear Unit |
z_ranges [z_ranges,...] (可选) | 输入点云的一个或多个 z 范围。 生成输出折线要素时将分析指定 z 范围内的点。 如果未指定值,则将使用输入点云数据中存在的全部 z 值范围。 | Value Table |
extent (可选) | 待评估数据的范围。
| Extent |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 GenerateFloorPlanFromPointCloud 函数。
import arcpy
arcpy.indoors.GenerateFloorPlanFromPointCloud(r"C:\Indoors\PointcloudData\Floor1scan.LAS",
r"C:\Indoors\ExampleData.gdb\OutputPolylines",
"", "", "", "", "", "",
)
以下独立脚本演示了如何使用 GenerateFloorPlanFromPointCloud 函数。
#Name: Indoors_GenerateFloorPlanFromPointCloud_example2.py
#Description: Generates polyline floor plan features from LAS point cloud data
import arcpy
# Check Out Extensions
arcpy.CheckOutExtension('Indoors')
arcpy.CheckOutExtension('3D')
arcpy.CheckOutExtension('Spatial') # or 'ImageAnalyst'
# Set Local Variables
in_point_cloud = r"C:\data\Building L - All_Floors.las"
out_line_features = r"C:\data\FloorPlans.gdb\Building_L_East_Floor_1"
coordinate_system = 'PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],
PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],
PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],
UNIT["Meter",1.0],AUTHORITY["EPSG",6425]]'
output_z_value = "4.25 Meters"
simplify = "SIMPLIFY"
short_feature_tolerance = "25.4 Millimeters"
z_ranges = "1 1.8;2.2 3.2"
extent="DEFAULT"
# Call the function
arcpy.gp.GenerateFloorPlanFromPointCloud(
in_point_cloud,
out_line_features,
coordinate_system,
output_z_value,
simplify,
short_feature_tolerance,
z_ranges,
extent
)
# Check In Extensions
arcpy.CheckInExtension('Indoors')
arcpy.CheckInExtension('3D')
arcpy.CheckInExtension('Spatial')
许可信息
- Basic: 否
- Standard: 否
- Advanced: 需要 3D Analyst 和 ArcGIS Indoors Pro 或 ArcGIS Indoors Maps. 也需要 Spatial Analyst 或 Image Analyst