Feature-Class Z in ASCII (ArcGIS 3D Analyst)
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ützpunktes.
0 z1 D1 z2 D2 z3 D3 z4
Im XYZ-Format werden X-, Y- und Z-Koordinaten als Gleitkommawerte gespeichert, wobei jede Zeile einen eigenen Punktdatensatz darstellt.
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4
Hinweis:
Punkt- und Multipoint-Features werden in dieselbe Datei geschrieben. Dagegen wird jedes Polygon- und Polylinien-Feature in eine separate Textdatei geschrieben, an deren Namen die eindeutige ID des Features angefügt wird. Jeder Teil von Features mit mehreren Teilen wird in eine separate Datei geschrieben. An den Dateinamen wird nach der ID des Features die Teilenummer angefügt.
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 z1 id2 x2 y2 z2 id3 x3 y3 z3 id4 x4 y4 z4 END
Hinweis:
Multipoint-Features, die aus demselben Datensatz in der Ursprungs-Feature-Class stammen, weisen dieselbe ID auf.
- 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:
id1 x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 END id2 x1 y1 z1 x2 y2 z2 END END
Hinweis:
Die ersten und letzten XYZ-Koordinaten für Polygon-Features sind immer identisch.
- Punkt-Features werden mit ihrer jeweiligen ID und den XYZ-Koordinaten gespeichert. Die letzte Zeile wird durch das END-Schlüsselwort gekennzeichnet:
Syntax
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 in der Textdatei verwendete Feldtrennzeichen.
| 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 in der Textdatei verwendete Dezimalzeichen, mit dem der ganzzahlige Teil einer Zahl von ihrem Bruchteil unterschieden wird.
| String |
Codebeispiel
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")
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)