ASCII 3D To Feature Class (3D Analyst)
Summary
Imports 3D features from one or more ASCII files stored in XYZ, XYZI, or GENERATE formats into a new feature class.
Illustration
Usage
All input files must be of the same format and geometry type.
XYZ and XYZI formats support header lines and treat the first row that starts with three consecutive numbers as the beginning of the point records. Both formats store all supported geometry types in the same manner. and only supports one, single-part line or polygon feature per file.
Note:Only one single-part line or polygon feature can be stored in an XYZ or XYZI files. Polygons must close, with the coordinates of the last vertex being identical to that of the first, and must not self-intersect.
XYZ files store x, y, and z coordinates as floating-point values, where each row represents a distinct point record. The XYZ coordinates can be followed by alphanumeric entries, but this information will not be transferred to the resulting feature class.
XYZI files store x, y, z, and intensity measures. Intensity values are stored in a binary large object (BLOB) field for multipatch outputs.
Note:If the ASCII file is in XYZI format but the intensity measures are not desired, choose XYZ. This will skip the intensity value when reading the files.
The GENERATE format does not support header lines, but it provides an ID for each point along with XYZ coordinates, and the last line of the file is optionally noted using the END keyword:
id x y z id x y z . . END
The GENERATE format supports multiple features per file. For lines and polygons, the END keyword signals the end of a feature, and each feature must be a single-part feature. Two END keywords in a row indicates the end of the file.
id x y z x y z x y z END id x y z x y z END END
Note:Polygons should be oriented clockwise, have no self-intersections, and be closed (that is, the last vertex is equal to the first). If one of these conditions is not met, the output polygon will not be valid. The Check Geometry tool can be used to validate the resulting features, and the Repair Geometry tool can be used to correct the errors.
Syntax
Parameter | Explanation | Data Type |
input [input,...] |
The ASCII files or folders containing data in XYZ, XYZI (with lidar intensity), or 3-D GENERATE format. If a folder is specified, the File Suffix parameter becomes required, and all the files that have the same extension as the specified suffix will be used. If multiple files are involved, they need to be in the same format. | Folder; File |
in_file_type | String | |
out_feature_class |
The output feature class. | Feature Class |
out_geometry_type |
The geometry type of the output feature class.
| String |
z_factor (Optional) |
The factor by which elevation values will be multiplied. This is typically used to convert Z linear units that match those of the XY linear units. The default is 1, which leaves elevation values unchanged. | Double |
input_coordinate_system (Optional) |
The coordinate system of the input data. The default is an Unknown Coordinate System. If specified, the output may or may not be projected into a different coordinate system. This depends the whether the geoprocessing environment has a coordinate system defined for the location of the target feature class. | Coordinate System |
average_point_spacing (Optional) |
The average planimetric distance between points of the input. This parameter is only used when the output geometry is set to MULTIPOINT, and its function is to provide a means for grouping the points together. This value is used in conjunction with the points per shape limit to construct a virtual tile system used to group the points. The tile system's origin is based on the domain of the target feature class. Specify the spacing in the horizontal units of the target feature class. | Double |
file_suffix (Optional) |
The suffix of the files to import from an input folder. This parameter is required when a folder is specified as input. | String |
decimal_separator (Optional) | The decimal character used in the text file to differentiate the integer of a number from its fractional part.
| String |
Code Sample
The following sample demonstrates the use of this tool in the Python window:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Ascii3DToFeatureClass_3d("masspnts.txt", "GENERATE", "masspnts.shp", "POINT", 1, "Coordinate Systems/Projected Coordinate Systems/State Plane/NAD 1983 (Feet)/NAD 1983 StatePlane Massachusetts Mainland FIPS 2001 (Feet).prj")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''****************************************************************************
Name: ASCII3D_to_Feature_Class Example
Description: This script demonstrates how to use the
ASCII3D_to_Feature_Class tool to create a point feature class
from a set of text files in the specified workspace.
****************************************************************************'''
# Import system modules`
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inFormat = "GENERATE"
# Name of the output file
outFC = "Pts_from_ASCII.shp"
# Geometry of the output feature class
outType = "POINT"
zFactor = 1
# Coordinate system of the output feature class
CS = "Coordinate Systems/Geographic Coordinate Systems/World/WGS 1984.prj"
fileSuffix = "ascii.txt"
decSep = "DECIMAL_POINT" # Specifies the decimal delimeter
# Create list of ASCII files
txtList = arcpy.ListFiles("*" + fileSuffix)
# Verify the presence of TINs in the list
if len(txtList) > 0:
# Execute ASCII3D_to_Feature_Class
arcpy.ASCII3DToFeatureClass_3d(txtList, inFormat, outFC, outType,
zFactor, CS, fileSuffix, decSep)
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)