Copy TIN (3D Analyst)

Summary

Creates a copy of a triangulated irregular network (TIN) dataset.

Usage

  • Consider using this tool to maintain an archival copy of a TIN dataset that is to be modified by subsequent edits.

  • Consider using this tool with the Pre 10.0 option if a TIN created using the current version's specifications is needed for use in backward compatible applications on ArcGIS versions released prior to 10.0.

  • Consider using this tool with the Current option if you wish to apply its enhancements onto a backward-compatible TIN dataset. The current TIN version supports the following enhancements from its pre-10 counterpart:

    • Additional spatial reference information
    • Constrained Delaunay triangulation, which conserves storage space by forcing the triangulator to avoid the densification of breaklines by conforming triangles to breakline edges
    • Node origin information that indicates whether a point came from input data or was introduced by the triangulator
    • Persistence of edge tag values

Parameters

LabelExplanationData Type
Input TIN

The TIN that will be copied.

TIN Layer
Output TIN

The TIN dataset that will be generated.

TIN
Version
(Optional)

The version of the output TIN.

  • CURRENTThe current TIN version, which supports constrained Delaunay triangulation, enhanced spatial reference information, and storage of node source and edge tag values. The resulting TIN will not be backward compatible with versions of ArcGIS prior to 10.0. This is the default.
  • PRE_10.0The TIN will be backward compatible with versions of ArcGIS prior to 10.0, which only supports conforming Delaunay triangulation.
String

arcpy.ddd.CopyTin(in_tin, out_tin, {version})
NameExplanationData Type
in_tin

The TIN that will be copied.

TIN Layer
out_tin

The TIN dataset that will be generated.

TIN
version
(Optional)

The version of the output TIN.

  • CURRENTThe current TIN version, which supports constrained Delaunay triangulation, enhanced spatial reference information, and storage of node source and edge tag values. The resulting TIN will not be backward compatible with versions of ArcGIS prior to 10.0. This is the default.
  • PRE_10.0The TIN will be backward compatible with versions of ArcGIS prior to 10.0, which only supports conforming Delaunay triangulation.
String

Code sample

CopyTin example 1 (Python window)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.CopyTin("elevation", "elevation_copy", "CURRENT")
CopyTin 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