Zusammenfassung
Exportiert 3D-Features in Form von GENERATE-, XYZ- oder Profildaten in ASCII-Textdateien.
Verwendung
Das Profile-Format enthält Profilinformationen für 3D-Linien-Features, die in spezialisierte grafische Anwendungen importiert werden können. Jedes Linien-Feature in der Quell-Feature-Class wird in eine separate Datei geschrieben, an deren Namen die eindeutige ID der Linie angefügt wird. Jede Zeile in der Profiltabelle enthält die Entfernung zwischen der Anfangsposition der Linie und dem Stützpunkt (D), gefolgt von der Höhe des Stützpunkts.
0 z1D1 z2D2 z3D3 z4
Im XYZ-Format werden X-, Y- und Z-Koordinaten als Gleitkommawerte gespeichert, wobei jede Zeile einen eigenen Punktdatensatz darstellt.
x1 y1 z1x2 y2 z2x3 y3 z3x4 y4 z4
Das GENERATE-Format unterstützt keine Kopfzeilen, speichert jedoch alle Eingabe-Features in einer Datei.
- Punkt-Features werden mit ihrer jeweiligen ID und den XYZ-Koordinaten gespeichert. Die letzte Zeile wird durch das END-Schlüsselwort gekennzeichnet:
id1 x1 y1 z1id2 x2 y2 z2id3 x3 y3 z3id4 x4 y4 z4END
- Linien- und Polygon-Features werden durch das END-Schlüsselwort getrennt, und zwei aufeinander folgende END-Schlüsselwörter zeigen das Ende der Datei an:
id1x1 y1 z1x2 y2 z2x3 y3 z3x4 y4 z4END id2x1 y1 z1x2 y2 z2END END
- Punkt-Features werden mit ihrer jeweiligen ID und den XYZ-Koordinaten gespeichert. Die letzte Zeile wird durch das END-Schlüsselwort gekennzeichnet:
Syntax
FeatureClassZToASCII_3d (in_feature_class, output_location, out_file, {format}, {delimiter}, {decimal_format}, {digits_after_decimal}, {decimal_separator})
Parameter | Erläuterung | Datentyp |
in_feature_class | Die 3D-Punkt-, Multipoint-, Polylinien- oder Polygon-Feature-Class, die in eine ASCII-Datei exportiert wird. | Feature Layer |
output_location | Der Ordner, in den die Ausgabedateien geschrieben werden. | Folder |
out_file | Der Name der resultierenden ASCII-Datei. Wenn eine Line- oder Polygon-Feature-Class in das XYZ-Format exportiert wird, wird der Dateiname als Basisname verwendet. Für jedes Feature wird eine eindeutige Dateiausgabe erstellt, da das XYZ-Format nur eine Linie oder ein Polygon pro Datei unterstützt. Bei Multipart-Features wird ebenfalls jeder Teil in eine separate Datei geschrieben. An den Dateinamen wird die OID jedes Features und nach Bedarf weitere Zeichen angefügt, um eindeutige Dateinamen zu gewährleisten. | String |
format (optional) | Das Format der ASCII-Datei, die erstellt wird.
| String |
delimiter (optional) | Das Trennzeichen zwischen Einträgen in Spalten der Textdateitabelle.
| String |
decimal_format (optional) | Die Methode, mit der die Anzahl der in den Ausgabedateien gespeicherten signifikanten Stellen bestimmt wird.
| String |
digits_after_decimal (optional) | Wird verwendet, wenn die Dezimalschreibweise auf "FIXED" festgelegt wird. So wird ermittelt, wie viele Stellen nach dem Dezimaltrennzeichen für die in die Ausgabedateien geschriebenen Gleitkommawerte übernommen werden. | Long |
decimal_separator (optional) | Das verwendete Dezimalzeichen, mit dem der ganzzahlige Teil einer Zahl von ihrem Bruchteil unterschieden wird.
| String |
Codebeispiel
FeatureClassZToASCII – Beispiel 1 (Python-Fenster)
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.FeatureClassZToASCII_3d("LidarPts.shp", "", "ASCII_LidarPts.txt",
"GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
FeatureClassZToASCII – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: FeatureClassZToASCII Example
Description: This script demonstrates how to use the
FeatureClassZToASCII tool to create generate files for all
z-aware point features in a given workspace.
****************************************************************************'''
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# List all points in the target workspace
fcList = arcpy.ListFeatureClasses("*", "POINT")
if fcList:
# Set Local Variables
outFolder = "C:/output"
outFormat = "GENERATE"
delimeter = "SPACE"
decimal = "FIXED"
digits = 3
dec_sep = "DECIMAL_POINT"
for fc in fcList:
# Use Describe method to evaluate whether the feature class is z-aware
desc = arcpy.Describe(fc)
if desc.hasZ == True:
# Define the output file name by replacing '.shp' with _ascii.txt
outName = fc.replace('.shp', '') + "_ascii.txt"
#Execute FeatureClassZToASCII_3d
arcpy.FeatureClassZToASCII_3d(fc, outFolder, outName, outFormat, delimeter, decimal, digits, dec_sep)
else:
print "There are no feature classes in the " + env.workspace + " directory."
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)
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert 3D Analyst
- ArcGIS for Desktop Standard: Erfordert 3D Analyst
- ArcGIS for Desktop Advanced: Erfordert 3D Analyst