Résumé
Importe des entités 3D à partir d'un ou plusieurs fichiers ASCII stockés aux formats XYZ, XYZI ou GENERATE vers une nouvelle classe d'entités.
Illustration
Utilisation
Tous les fichiers en entrée doivent avoir le même format et le même type de géométrie.
Les formats XYZ et XYZI prennent en charge les lignes d'en-tête et traitent la première ligne commençant par trois nombres consécutifs comme le début des enregistrements de points. Les deux formats peuvent stocker des points, des lignes et des polygones, mais chaque fichier ne peut contenir qu'une entité surfacique ou linéaire en une partie. Les entités surfaciques doivent être fermées, les coordonnées du dernier sommet étant identiques à celles du premier, et elles ne doivent pas se croiser.
Les fichiers XYZ stockent les coordonnées x, y et z sous forme de valeurs à virgule flottante où chaque ligne représente un enregistrement de points distinct. Les coordonnées XYZ peuvent être suivies d'entrées alphanumériques, mais ces informations ne sont pas transmises à la classe d'entités résultante.
Les fichiers XYZI stockent les coordonnées x, y, z, ainsi que les mesures d'intensité. Les valeurs d'intensité sont stockées dans un champ de grand objet binaire (BLOB) pour les sorties multipatch.
Le format GENERATE ne prend pas en charge les lignes d'en-tête, mais il fournit pour chaque point un identifiant, ainsi que les coordonnées XYZ. En outre, la dernière ligne du fichier peut être signalée par le mot-clé END :
id x y z id x y z . . END
Le format GENERATE prend en charge plusieurs entités par fichier. Pour les lignes et les polygones, le mot-clé END signale la fin d'une entité, chacune devant être une entité en une partie. Deux mots-clé END dans une ligne indiquent la fin du fichier.
id x y z x y z x y z END id x y z x y z END END
Syntaxe
arcpy.ddd.ASCII3DToFeatureClass(input, in_file_type, out_feature_class, out_geometry_type, {z_factor}, {input_coordinate_system}, {average_point_spacing}, {file_suffix}, {decimal_separator})
Paramètre | Explication | Type de données |
input [input,...] | Fichiers ou dossiers ASCII comportant des données au format XYZ, XYZI (avec intensité lidar) ou 3D GENERATE. Tous les fichiers en entrée doivent présenter le même format. Si un dossier est spécifié, le paramètre Suffixe de fichier est requis et tous les fichiers portant la même extension que le suffixe indiqué sont traités. Dans la boîte de dialogue de l'outil, vous pouvez également spécifier un dossier en entrée en le sélectionnant dans l'Explorateur Windows et en le faisant glisser vers la zone de saisie du paramètre. | Folder; File |
in_file_type | Format des fichiers ASCII qui seront convertis en classe d'entités.
| String |
out_feature_class | Classe d'entités qui va être produite par cet outil. | Feature Class |
out_geometry_type | Type de géométrie de la classe d'entités en sortie.
| String |
z_factor (Facultatif) | Facteur par lequel les valeurs z sont multipliées. Il permet généralement de convertir des unités linéaires Z afin d'apparier les unités linéaires XY. La valeur par défaut est de 1, ce qui laisse les valeurs d’altitude inchangées. Ce paramètre est désactivé si la référence spatiale de la surface en entrée possède un datum Z avec une unité linéaire spécifiée. | Double |
input_coordinate_system (Facultatif) | Système de coordonnées des données en entrée. La valeur par défaut est un système de coordonnées inconnu. Si une valeur est spécifiée, la sortie peut être projetée dans un système de coordonnées différent. Cela dépend si un système de coordonnées de l'environnement de géotraitement est défini pour l'emplacement de la classe d'entités cible. | Coordinate System |
average_point_spacing (Facultatif) | Distance planimétrique moyenne entre des points de l'entrée. Ce paramètre est utilisé uniquement lorsque la géométrie en sortie est définie surMULTIPOINT : il permet de regrouper des points. Cette valeur est utilisée avec la limite de points par forme afin de construire un système de tuiles virtuel permettant de regrouper les points. L'origine du système de tuiles est basé sur le domaine de la classe d'entités cible. Indiquez l'espacement dans les unités horizontales de la classe d'entités cible. | Double |
file_suffix (Facultatif) | Suffixe des fichiers à importer à partir d'un dossier en entrée. Ce paramètre est requis lorsqu'un dossier est spécifié en entrée. | String |
decimal_separator (Facultatif) | Le caractère décimal utilisé dans le fichier texte pour différencier la partie entière d'un nombre de sa partie fractionnaire.
| String |
Exemple de code
1er exemple d'utilisation de l'outil ASCII3DToFeatureClass (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.
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)
2e exemple d'utilisation de l'outil ASCII3DToFeatureClass (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
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)
Environnements
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst