Skip To Content

Minimum Bounding Volume

Summary

Creates multipatch features that represent the volume of space occupied by a set of 3D features.

Illustration

Minimum Bounding Volume

Usage

  • The Sphere or Envelope method (geometry_type="SPHERE" or geometry_type = "ENVELOPE" in Python) provides a quick representation of the volume of space occupied by a set of 3D features.

  • The Convex hull option (geometry_type="CONVEX_HULL" in Python) provides greater detail than the Sphere or Envelope method but will not capture local depressions in the input features.

  • The Concave hull option (geometry_type="CONCAVE_HULL" in Python) provides the greatest amount of detail about the shape of the bounding volume but is computationally heavy and should not be used with large collections of input data.

  • When the resulting minimum bounding volume represents groups of input features, the fields used to separate the input will be added to the resulting multipatch. If the geometry characteristics are included in the minimum bounding volume, the following fields will be added to the output features:

    • MBV_Area—The total surface area of the minimum bounding volume
    • MBV_Volume—The total volume of the space contained by the multipatch feature

Syntax

MinimumBoundingVolume(in_features, z_value, out_feature_class, {geometry_type}, {group}, {group_field}, {mbv_fields})
ParameterExplanationData Type
in_features

The LAS dataset or 3D features whose minimum bounding volume will be evaluated.

LAS Dataset Layer; Feature Layer
z_value

The source of z-values for the input data.

Field
out_feature_class

The feature class that will be produced by this tool.

Feature Class
geometry_type
(Optional)

Specifies the method that will be used to determine the geometry of the minimum bounding volume.

  • CONVEX_HULLThe smallest convex region surrounding the input data.
  • SPHEREThe smallest sphere enclosing the input data.
  • ENVELOPEThe XYZ extent of the input data.
  • CONCAVE_HULLThe concave hull that encloses the input data.
String
group
(Optional)

Specifies how the input features will be grouped; each group will be enclosed with one output multipatch.

  • NONEInput features will not be grouped. This is the default. This option is not available for point input.
  • ALLAll input features will be treated as one group.
  • LISTInput features will be grouped based on their common values in the specified field or fields in the group field parameter.
String
group_field
[group_field,...]
(Optional)

The field or fields in the input features that will be used to group features when LIST is specified as group_option. At least one group field is required for the LIST option. All features that have the same value in the specified field or fields will be treated as a group.

Field
mbv_fields
(Optional)

Specifies whether geometric attributes will be added to the output multipatch feature class.

  • NO_MBV_FIELDSNo geometric attributes will be added to the output feature. This is the default.
  • MBV_FIELDSGeometric attributes will be added to the output feature.
Boolean

Code sample

MinimumBoundingVolume example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.MinimumBoundingVolume('tree_canopy.shp', 'Shape.Z', 
                                'canopy_volume.shp', 'CONCAVE_HULL',
                                group='List', group_field='Season'
                                mbv_fields='MBV_FIELDS')
MinimumBoundingVolume example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script.

'''****************************************************************************
Name: Detect Periods of Activity
Description: 
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_features = arcpy.GetParameterAsText(0)
out_volume = arcpy.GetParameterAsText(1)
grouping_field = arcpy.GetParameterAsText(2)


try:
    arcpy.MinimumBoundingVolume_3d(in_features, 'Shape.Z', out_volume, 
                                   'CONCAVE_HULL','LIST', group_field)

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Licensing information

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

Related topics