Zusammenfassung
Dient zum Importieren von 3D-Features aus einer oder mehreren ASCII-Dateien, die in den Formaten "XYZ", "XYZI" oder "GENERATE" gespeichert sind, in eine neue Feature-Class.
Bild
Verwendung
Alle Eingabedateien müssen das gleiche Format und den gleichen Geometrietyp aufweisen.
XYZ- und XYZI-Formate unterstützen Kopfzeilen und behandeln die erste Zeile, die mit drei aufeinanderfolgenden Zahlen beginnt, als Anfang der Punktdatensätze. IN beiden Formaten können Punkte, Linien und Polygone gespeichert werden, jede Datei darf jedoch nur eine Singlepart-Linie oder ein Polygon-Feature enthalten. Polygon-Features müssen geschlossen sein, wobei die Koordinaten des letzten Stützpunktes mit denen des ersten identisch sind, und sie dürfen keinen Schnittpunkt mit sich selbst aufweisen.
In XYZ-Dateien werden x-, y- und z-Koordinaten als Gleitkommawerte gespeichert, wobei jede Zeile einen eigenen Punktdatensatz darstellt. Auf die XYZ-Koordinaten können alphanumerische Einträge folgen. Diese Informationen werden jedoch nicht in die resultierende Feature-Class übertragen.
In XYZI-Dateien werden x-, y-, z-und Intensitätsmesswerte gespeichert. Intensitätswerte werde in einem BLOB-Feld (Binary Large Object) für Multipatch-Ausgaben gespeichert.
Das GENERATE-Format unterstützt keine Kopfzeilen, stellt jedoch eine ID für jeden Punkt zusammen mit XYZ-Koordinaten bereit, und die letzte Zeile der Datei kann optional mit dem Schlüsselwort ENDkommentiert werden:
id x y z id x y z . . END
Das GENERATE-Format unterstützt mehrere Features pro Datei. Für Linien und Polygone kennzeichnet das Schlüsselwort ENDdas Ende eines Features, und jedes Feature muss ein Singlepart-Feature sein. Zwei Schlüsselwörter "END" in einer Zeile weisen auf das Ende der Datei hin.
id x y z x y z x y z END id x y z x y z END END
Syntax
ASCII3DToFeatureClass_3d (input, in_file_type, out_feature_class, out_geometry_type, {z_factor}, {input_coordinate_system}, {average_point_spacing}, {file_suffix}, {decimal_separator})
Parameter | Erläuterung | Datentyp |
input [input,...] | Die ASCII-Dateien oder Ordner mit Daten im Format XYZ, XYZI (mit LIDAR-Intensität) oder 3D GENERATE. Alle Eingabedateien müssen dasselbe Format haben. Wenn ein Ordner angegeben wird, ist der Parameter Dateisuffix erforderlich, und es werden alle Dateien verarbeitet, die die gleiche Erweiterung aufweisen wie das angegebene Suffix. | Folder; File |
in_file_type | String | |
out_feature_class | Die Feature-Class, die von diesem Werkzeug erstellt wird. | Feature Class |
out_geometry_type | Der Geometrietyp der Ausgabe-Feature-Class.
| String |
z_factor (optional) | Der Faktor, mit dem Z-Werte multipliziert werden. Dieser wird in der Regel verwendet, um lineare Z-Einheiten zu konvertieren, sodass sie den linearen XY-Einheiten entsprechen. Der Standardwert ist 1, wodurch die Höhenwerte unverändert bleiben. | Double |
input_coordinate_system (optional) | Das Koordinatensystem der Eingabedaten. Der Standardwert ist ein unbekanntes Koordinatensystem. Falls angegeben, kann die Ausgabe möglicherweise (nicht) in ein anderes Koordinatensystem projiziert werden. Dies hängt davon ab, ob die Geoverarbeitungsumgebung über ein Koordinatensystem für den Speicherort der Ziel-Feature-Class verfügt. | Coordinate System |
average_point_spacing (optional) | Die durchschnittliche planimetrische Entfernung zwischen den Eingabepunkten. Dieser Parameter wird nur verwendet, wenn für die Ausgabegeometrie MULTIPOINT festgelegt ist. Die Funktion des Parameters ist die Zusammengruppierung der Punkte. Dieser Wert wird zusammen mit den Punkten pro Shape-Grenzwert verwendet, um ein virtuelles Kachelungssystem zum Gruppieren der Punkte zu erstellen. Der Ursprung des Kachelsystems basiert auf der Domäne der Ziel-Feature-Class. Geben Sie den Abstand in den horizontalen Einheiten der Ziel-Feature-Class an. | Double |
file_suffix (optional) | Das Suffix der Dateien, die aus einem Eingabeordner importiert werden sollen. Dieser Parameter ist erforderlich, wenn als Eingabe ein Ordner angegeben wird. | String |
decimal_separator (optional) | Das in der Textdatei verwendete Dezimalzeichen, mit dem der ganzzahlige Teil einer Zahl von ihrem Bruchteil unterschieden wird.
| String |
Codebeispiel
ASCII3DToFeatureClass – 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"
#Create spatial reference object using WKID
sr = arcpy.SpatialReference(32136)
arcpy.ASCII3DToFeatureClass_3d("masspntz.gen", "GENERATE", "elevation_points.shp",
"MULTIPOINT", z_factor=3.28,
input_coordinate_system=sr, average_point_spacing=2.5)
ASCII3DToFeatureClass – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: ASCII3D_to_Feature_Class Example
Description: Creates a TIN surface using XYZI files in a folder and breaklines
imported from ASCII files.
****************************************************************************'''
# Import system modules`
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Define the spatial reference using the name
sr = arcpy.SpatialReference("Hawaii Albers Equal Area Conic")
#Create the elevation points
arcpy.ddd.ASCII3DToFeatureClass("Elevation Points", "XYZI",
"elevation_points.shp",
"MULTIPOINT", z_factor=3.28,
input_coordinate_system=sr,
average_point_spacing=2.5,
file_suffix="XYZ")
#Create the break lines
arcpy.ddd.ASCII3DToFeatureClass("brklines.gen", "GENERATE",
"breaklines.shp",
"POLYLINE", z_factor=3.28,
input_coordinate_system=sr)
arcpy.ddd.CreateTin("elevation_tin", sr,
[["breaklines.shp", "Shape", "hardline"],
["elevation_points.shp", "Shape", "masspoints"]],
"CONSTRAINED_DELAUNAY")
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