Delineate TIN Data Area (3D Analyst)

Summary

Redefines the data area, or interpolation zone, of a triangulated irregular network (TIN) based on its triangle edge length.

Illustration

Delineate tin data area illustration

Usage

  • This tool does not eliminate any of the source data. It modifies the input TIN by reclassifying its edges to be either included or excluded from the interpolation zone. If you wish to retain an unmodified version of the TIN that will be processed, consider creating a duplicate dataset using the Copy TIN tool prior to executing this tool.

  • All triangle edges are evaluated before edge length classification begins. This will effectively undo any existing data area classification. If the result obtained from one execution is unsatisfactory, the resulting TIN can be executed again without having to obtain the original data.

  • Extreme edge lengths produced by concave characteristics in the TIN's source measurements can be removed from the TIN's valid data area through this tool. Triangles that have an edge exceeding the Maximum Edge Length will be masked as NoData areas.

    Note:

    The Maximum Edge Length value is best determined from the average spacing of TIN nodes within areas that are considered valid data zones. Provide a value that is larger than the average spacing. The most successful use of this tool is based on knowledge of the data used to create the TIN.

  • The Method determines which triangles are evaluated.

    Note:

    Use Perimeter Edges (method = "PERIMETER_ONLY" in Python) if the concave data portions are relegated to the outer extremities of the TIN.

Syntax

DelineateTinDataArea(in_tin, max_edge_length, {method})
ParameterExplanationData Type
in_tin

The TIN dataset to process.

TIN Layer
max_edge_length

The two-dimensional distance that defines the maximum length of a TIN triangle edge in the TIN's data area. Triangles with one or more edges that exceed this value will be considered outside the TIN's interpolation zone and will not be rendered in maps or used in surface analysis.

Double
method
(Optional)

The TIN edges that will be evaluated when delineating the TIN's data area.

  • PERIMETER_ONLYIterates through triangles from the TIN's outer extent inward and will stop when the current iteration of boundary triangle edges does not exceed the Maximum Edge Length. This is the default.
  • ALLClassifies the entire collection of TIN triangles by edge length.
String

Derived Output

NameExplanationData Type
derived_out_tin

The updated TIN.

TIN Layer

Code sample

DelineateTinDataArea example 1 (Python window)

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

arcpy.env.workspace = "C:/data"
arcpy.DelineateTinDataArea_3d("elevation", 10, "PERIMETER_ONLY")
DelineateTinDataArea 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)

Environments

Licensing information

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

Related topics