TIN Domain (3D Analyst)

Summary

Creates a line or polygon feature class representing the interpolation zone of a triangulated irregular network (TIN) dataset.

Illustration

TIN Domain figure
TIN Domain

Usage

  • This tool can be used to generate a convex hull (the minimum bounding polygon) around a set of points. If there aren't any clip or erase polygons used to define the TIN, the domain is equivalent to the convex hull.

  • The output geometry is placed in one feature record and may be either a single or multipart geometry, depending on the nature of the interpolation zone. For example, if the interpolation zone is composed of islands or contains holes, the resulting geometry will be multipart.

    Note:

    3D polygons only contain elevation values along the perimeter of the features, as interior portions of the polygon will not contain any vertices. When drawn in 3D with an area fill, the boundary vertices are arbitrarily connected to triangles for rendering. Unless the polygon is planar, either sloped or horizontal, it's unlikely the fill will accurately represent the interior surface. For this reason, it is recommended that you draw nonplanar 3D polygons without fill symbology.

Parameters

LabelExplanationData Type
Input TIN

The TIN dataset that will be processed.

TIN Layer
Output Feature Class

The feature class that will be produced.

Feature Class
Output Feature Class Type

The geometry of the output feature class.

  • LINEThe output will be a z-enabled line feature class.
  • POLYGONThe output will be a z-enabled polygon feature class.
String

arcpy.ddd.TinDomain(in_tin, out_feature_class, out_geometry_type)
NameExplanationData Type
in_tin

The TIN dataset that will be processed.

TIN Layer
out_feature_class

The feature class that will be produced.

Feature Class
out_geometry_type

The geometry of the output feature class.

  • LINEThe output will be a z-enabled line feature class.
  • POLYGONThe output will be a z-enabled polygon feature class.
String

Code sample

TinDomain example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.TinDomain('tin', 'tin_domain.shp', out_geometry_type='POLYGON')
TinDomain example 2 (stand-alone script)

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

'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of 
             LAS files with irregularly clustered points. It is intended for 
             use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy

# Set local variables
inLas = arcpy.GetParameterAsText(0)  # input LAS file
ptSpacing = arcpy.GetParameterAsText(1)  # LAS point spacing
classCode = arcpy.GetParameterAsText(2)  # List of integers
returnValue = arcpy.GetParameterAsText(3)  # List of strings
outTin = arcpy.GetParameterAsText(4)  # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5)  # Polygon boundary file

try:
    # Execute LASToMultipoint
    lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
    arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, 
                             "ANY_RETURNS", "", sr, inFormat, zfactor)
    # Execute CreateTin
    arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
                       .format(lasMP), "Delaunay")
    # Execute CopyTin
    arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
    # Execute DelineateTinDataArea
    maxEdge = ptSpacing * 4
    arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
    # Execute TinDomain
    arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
        
except arcpy.ExecuteError:
    print(arcpy.GetMessages())
except Exception as err:
    print(err)

Related topics