Create TIN (3D Analyst)

Summary

Creates a triangulated irregular network (TIN) dataset.

Illustration

Create TIN tool illustration.

Usage

  • Avoid creating a TIN using a geographic coordinate system, as the Delaunay triangulation rule cannot be effectively enforced when the x,y units are expressed in spherical coordinates.

  • The surface feature type defines how the input features will contribute to the definition of the triangulated surface.

    • Point features can be specified as mass points, which provide data nodes with z-values that are used in the triangulation of the surface.
    • Line features can be specified as mass points and breaklines, which represent locations along a surface with linear discontinuities in slope, such as ridge lines, shore lines, pavement edges, building footprints, and so on.
    • Polygon features can also be specified as mass points and breaklines, along with clip features that define the data area, replace features that define regions with constant z-values (for example, water bodies), and erase features that indicate interior areas where data does not exist.
  • The tool can create a TIN composed of many millions of points given enough memory. However, limiting the number of TIN nodes to less than 6 million will ensure a responsive display performance and overall usability. If a larger TIN surface is needed, consider using a terrain dataset. The terrain dataset offers a multiresolution TIN surface that can support much larger collections of source measurements.

  • Set the Default TIN Storage Version environment to PRE_10.0 if the TIN being created will be used in versions of ArcGIS Desktop earlier than 10.0.

  • Once a TIN dataset is created, you can modify it using the Edit TIN tool to incorporate additional feature-based measurements into the TIN surface. You can also use the Delineate TIN Data Area tool to define which TIN triangles constitute the interpolation zone based on the maximum length of a triangle edge. The TIN surface can also be modified through interactive editing.

Parameters

LabelExplanationData Type
Output TIN

The TIN dataset that will be generated.

TIN
Coordinate System
(Optional)

The spatial reference of the output TIN. Set the spatial reference to a projected coordinate system. Geographic coordinate systems are not recommended because Delaunay triangulation cannot be guaranteed when the x,y coordinates are expressed in angular units, which could have an adverse impact on the accuracy of distance-based calculations, such as slope, volume, and line of sight.

Coordinate System
Input Feature Class
(Optional)

The input features and their related properties that define how they will be added to the TIN.

  • Input Features—The features that will be added to the TIN.
  • Height Field—The source of elevation for the input features. Any numeric field from the input feature's attribute table can be used, along with Shape.Z for the z-values of 3D features and Shape.M for the m-values stored in the geometry. Choosing the <None> keyword will result in the feature's elevation being interpolated from the surrounding surface.
  • Type—The input feature's role in defining the TIN surface. The available options depend on the geometry of the input features. For line- and polygon-based surface feature types, the hard and soft designations for the surface feature type impact the way the line or polygon boundary is handled when interpolating a raster surface from the TIN dataset when using natural neighbor interpolation. A hard surface feature type represents a border with a sharp discontinuity in elevation, such as the edge of a cliff, a wall, or a curb on the side of the road. A soft surface feature type represents a border where the elevation is more smoothly defined.
    • Point and multipoint features can be defined as Mass_Points, which contribute elevation values that are stored as TIN data nodes.
    • Line features can be incorporated into the TIN as the following:
      • Mass Points in which the line vertices are converted to nodes in the TIN.
      • Hard Line or Soft Line breakline features that define linear discontinuities in the TIN.
    • Polygon features can be incorporated into the TIN as mass points, break lines, and the following surface feature types:
      • Hard Clip or Soft Clip features that define the data area of the TIN surface.
      • Hard Erase or Soft Erase features that represent interior voids in the data,
      • Hard Replace or Soft Replace features that define areas of constant height.
      • Hard Value Fill or Soft Value Fill features that assign integer attributes to nodes and triangle faces.
  • Tag Field—A numeric attribute will be assigned to the TIN's data elements using values obtained from an integer field in the input feature's attribute table.
Value Table
Constrained Delaunay
(Optional)

Specifies the triangulation technique that will be used along the breaklines of the TIN.

  • Unchecked—The TIN will use Delaunay conforming triangulation, which may densify each segment of the breaklines to produce multiple triangle edges. This is the default.
  • Checked—The TIN will use constrained Delaunay triangulation, which will add each segment as a single edge. Delaunay triangulation rules are honored everywhere except along breaklines, which will not be densified.
Boolean

arcpy.ddd.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
NameExplanationData Type
out_tin

The TIN dataset that will be generated.

TIN
spatial_reference
(Optional)

The spatial reference of the output TIN. Set the spatial reference to a projected coordinate system. Geographic coordinate systems are not recommended because Delaunay triangulation cannot be guaranteed when the x,y coordinates are expressed in angular units, which could have an adverse impact on the accuracy of distance-based calculations, such as slope, volume, and line of sight.

Coordinate System
in_features
[[in_features, height_field, SF_type, tag_value],...]
(Optional)

The input features and their related properties that define how they will be added to the TIN.

  • in_features—The features that will be added to the TIN.
  • height_field—The source of elevation for the input features. Any numeric field from the input feature's attribute table can be specified, along with Shape.Z for the z-values of 3D features and Shape.M for the m-values stored with the geometry. Choosing the <None> keyword will result in the feature's elevation being interpolated from the surrounding surface.
  • sf_type—The input feature's role in defining the TIN surface. The available options depend on the geometry of the input features. For line- and polygon-based surface feature types, the hard and soft designations for the surface feature type impact the way the line or polygon boundary is handled when interpolating a raster surface from the TIN dataset when using natural neighbor interpolation. A hard surface feature type represents a border with a sharp discontinuity in elevation, such as the edge of a cliff, a wall, or a curb on the side of the road. A soft surface feature type represents a border where the elevation is more smoothly defined.
    • Point and multipoint features can be defined as Mass_Points, which contribute elevation values that are stored as TIN data nodes.
    • Line features can be incorporated into the TIN as the following:
      • Mass_Points in which the line vertices are converted to nodes in the TIN.
      • Hard_Line or Soft_Line breakline features that define linear discontinuities in the TIN.
    • Polygon features can be incorporated into the TIN as mass points, break lines, and the following surface feature types:
      • Hard_Clip or Soft_Clip features that define the data area of the TIN surface.
      • Hard_Erase or Soft_Erase features that represent interior voids in the data.
      • Hard_Replace or Soft_Replace features that define areas of constant height.
      • Hardvalue_Fill or Softvalue_Fill features that assign integer attributes to nodes and triangle faces.
  • tag_field—A numeric attribute will be derived from an integer field in the input feature's attribute table whose values can be used to assign a basic form of attribution to the TIN's data elements. Specifying <None> will result in no tag values being assigned.
Value Table
constrained_delaunay
(Optional)

Specifies the triangulation technique that will be used along the breaklines of the TIN.

  • DELAUNAYThe TIN will use Delaunay conforming triangulation, which may densify each segment of the breaklines to produce multiple triangle edges. This is the default.
  • CONSTRAINED_DELAUNAYThe TIN will use constrained Delaunay triangulation, which will add each segment as a single edge. Delaunay triangulation rules are honored everywhere except along breaklines, which will not be densified.
Boolean

Code sample

CreateTin example 1 (Python window)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.CreateTin("NewTIN", "NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", 
                   "points.shp Shape.Z masspoints", "constrained_delaunay")
CreateTin 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