Feature-Class Z zu ASCII (3D Analyst)
Zusammenfassung
Exportiert 3D-Features im XYZ-, GENERATE- oder PROFILE-Format in eine ASCII-Textdatei.
Verwendung
Dabei werden Punkte, Multipoints, Polylinien und Polygon-Features als Eingabe unterstützt.
-
Dieses Werkzeug exportiert auch Polylinien in ein Profil-ASCII-Ausgabeformat. Die Textdatei für das Profilausgabeformat enthält die Entfernung für Y und Z für X. Das Profilformat aktiviert 3D-Daten, die in spezialisiertere grafische Anwendungen exportiert werden sollen.
Beim Exportieren einer Feature-Class mit Linien oder Polygonen in das XYZ-Format wird der Dateiname als Vorlage verwendet. Der Grund ist, dass die Einfachheit des XYZ-Formats nur eine Linie oder ein Polygon pro Datei unterstützt. Die Einschränkung reicht bis zur Teilebene. Wenn ein Feature mehrere Teile besitzt, wird daher jeder Teil in eine separate Datei geschrieben. Die Dateien werden mit dem im Dialogfeld angegebenen Präfix und Suffix sowie mit der OID jedes Features und nach Bedarf mit weiteren Zeichen versehen, um jeweils eindeutige Dateinamen zu gewährleisten.
Das Dezimalformat der Ausgabegleitkommawerte kann als Eingabe definiert oder automatisch bestimmt werden. Die Software bestimmt dabei, wie viele Ziffern nötig sind, um die verfügbare Genauigkeit ohne unnötige nachfolgende Nullen beizubehalten.
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 |
Gibt den Namen der Ausgabedatei an. Beim Exportieren einer Feature-Class mit Linien oder Polygonen in das XYZ-Format wird der Dateiname als Vorlage verwendet. Der Grund ist, dass die Einfachheit des XYZ-Formats nur eine Linie oder ein Polygon pro Datei unterstützt. Die Einschränkung reicht bis zur Teilebene. Wenn ein Feature mehrere Teile besitzt, wird daher jeder Teil in eine separate Datei geschrieben. Die Dateien werden mit dem im Dialogfeld angegebenen Präfix und Suffix sowie mit der OID jedes Features und nach Bedarf mit weiteren Zeichen versehen, um jeweils eindeutige Dateinamen zu gewährleisten. | File; Folder |
format (optional) |
Das Format der ASCII-Datei, die erstellt wird.
| String |
delimiter (optional) |
The field delimeter used in the text file.
| String |
decimal_format (optional) |
Gibt die Methode an, 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) | The decimal character used in the text file to differentiate the integer of a number from its fractional part.
| String |
Codebeispiel
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.FeatureClassZToASCII_3d("LidarPts.shp", "", "ASCII_LidarPts.txt", "GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''**************************************************************************** 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)