Extract Objects From Point Cloud (3D Analyst)

Summary

Extracts distinct objects from a classified point cloud into point, polygon, or multipatch features.

Illustration

Extract Objects From Point Cloud tool illustration

Usage

  • This tool uses a clustering distance to establish which points belong to the same object. If multiple class codes can potentially represent the same object, assign a common group ID that will link the class codes during the clustering operation. For example, a large tree may have points assigned with class codes of 3, 4, or 5. The three class codes can be assigned a common group ID to ensure that the tree is properly identified.

  • Extracting objects offers a quantifiable dataset that can be used to create an asset inventory that can be visualized in a map or scene. 3D shapes produced by this tool can aid in making visibility or shadow impact assessments. Simplified geometric representations can also provide a useful cartographic abstraction for visualizing objects in bulkier point clouds.

  • Use the Minimum Number of Points parameter to eliminate small, invalid objects created from small clusters of points.

  • The output features will have the following attributes:

    • ObjectCode—The class code or group ID used to identify the object type
    • COUNT—The number of points that are associated with the object

    The following attributes are only added for polygon geometry types:

    • MIN_Z—The lowest z-value of the points that belong to an object
    • MAX_Z—The highest z-value of the points that belong to an object

    Additional attributes such as surface area, volume, and average slope, as well as other properties can be computed using the Add Z Information tool.

Parameters

LabelExplanationData Type
Input Point Cloud

The classified LAS dataset, point cloud scene layer package, or point cloud I3S service that will be used to detect objects.

LAS Dataset Layer; Scene Layer; File
Class Codes To Extract

The class codes that will be processed to identify objects. A common group ID can be assigned to merge multiple class codes into the same object.

Value Table
Clustering Distance

The three-dimensional distance that will be used to identify the points that belong to the same object.

Linear Unit
Output Object Features

The output objects whose feature geometry may be point, polygon, or multipatch based on the Output Geometry Type parameter value.

Feature Class
Output Geometry Type
(Optional)

Specifies the type of geometry that will be created for each object. The specified type will determine whether the objects will be represented as points, polygons, or multipatch features.

  • CenterpointThree-dimensional points will be generated that represent each object with a point that is created approximately in the middle of the object's convex hull.
  • Bounding CircleTwo-dimensional polygons will be generated that represent each object with the minimum bounding circle that surrounds its points.
  • 2D Bounding BoxTwo-dimensional polygons will be generated that represent each object with the smallest oriented bounding box that contains its points.
  • 2D Convex HullTwo-dimensional polygons will be generated that represent each object with the convex hull that contains its points.
  • 2D Concave HullTwo-dimensional polygons will be generated that represent each object with a concave hull that encompasses its points.
  • Bounding SphereMultipatch features will be generated that represent each object with a minimum bounding sphere that encompasses its points.
  • 3D Bounding BoxMultipatch features will be generated that represent each object with the smallest oriented bounding box that contains its points.
  • 3D Convex HullMultipatch features will be generated that represent each object with the convex hull that surrounds its points. This is the default.
String
Minimum Number of Points
(Optional)

The minimum number of points that an object must have for it to generate an output. The default value is 10.

Long

arcpy.ddd.ExtractObjectsFromPointCloud(in_point_cloud, class_codes_to_extract, clustering_distance, out_features, {geometry_type}, {min_points})
NameExplanationData Type
in_point_cloud

The classified LAS dataset, point cloud scene layer package, or point cloud I3S service that will be used to detect objects.

LAS Dataset Layer; Scene Layer; File
class_codes_to_extract
[class_codes_to_extract,...]

The class codes that will be processed to identify objects. A common group ID can be assigned to merge multiple class codes into the same object.

Value Table
clustering_distance

The three-dimensional distance that will be used to identify the points that belong to the same object.

Linear Unit
out_features

The output objects whose feature geometry may be point, polygon, or multipatch based on the geometry_type parameter value.

Feature Class
geometry_type
(Optional)

Specifies the type of geometry that will be created for each object. The specified type will determine whether the objects will be represented as points, polygons, or multipatch features.

  • CENTERPOINTThree-dimensional points will be generated that represent each object with a point that is created approximately in the middle of the object's convex hull.
  • BOUNDING_CIRCLETwo-dimensional polygons will be generated that represent each object with the minimum bounding circle that surrounds its points.
  • BOUNDING_BOX_2DTwo-dimensional polygons will be generated that represent each object with the smallest oriented bounding box that contains its points.
  • CONVEX_HULL_2DTwo-dimensional polygons will be generated that represent each object with the convex hull that contains its points.
  • CONCAVE_HULL_2DTwo-dimensional polygons will be generated that represent each object with a concave hull that encompasses its points.
  • BOUNDING_SPHEREMultipatch features will be generated that represent each object with a minimum bounding sphere that encompasses its points.
  • BOUNDING_BOX_3DMultipatch features will be generated that represent each object with the smallest oriented bounding box that contains its points.
  • CONVEX_HULL_3DMultipatch features will be generated that represent each object with the convex hull that surrounds its points. This is the default.
String
min_points
(Optional)

The minimum number of points that an object must have for it to generate an output. The default value is 10.

Long

Code sample

ExtractObjectsFromPointCloud example 1 (Python window)

The following sample demonstrates the use of this tool in the Python window.

import arcpy
arcpy.env.workspace = r"C:/GIS_Data"
arcpy.ddd.ExtractObjectsFromPointCloud("Terrestrial_Scan.lasd", [(4, 5), (5, 5)],
                                       "60 Centimeters", "Trees.shp", 
                                       "CONCAVE_HULL_2D", 50)

Licensing information

  • Basic: Requires 3D Analyst
  • Standard: Requires 3D Analyst
  • Advanced: Requires 3D Analyst