ASCII 3D vers classe d'entités (3D Analyst)
Récapitulatif
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 stockent tous les types de géométrie pris en charge de la même manière, mais acceptent uniquement une entité surfacique ou linéaire en une partie par fichier.
Remarque :Une seule entité surfacique ou linéaire en une partie peut être stockée dans un fichier XYZ ou XYZI. Les polygones doivent être fermés, les coordonnées du dernier sommet étant identiques à celles du premier, et ils ne doivent pas être auto-sécants.
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.
Remarque :Si le fichier ASCII est au format XYZI mais que les mesures d'intensité ne sont pas nécessaires, choisissez XYZ. Le système ignore alors la valeur d'intensité lors de la lecture des fichiers.
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
Remarque :Les polygones doivent être orientés dans le sens horaire, ne présenter aucune auto-intersection et être fermés (autrement dit, le dernier sommet et le premier sommet sont identiques). Si l'une de ces conditions n'est pas satisfaite, le polygone en sortie n'est pas valide. L'outil Vérifier les géométries permet de valider les entités obtenues, tandis que l'outil Réparer les géométries permet de corriger les erreurs.
Syntaxe
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 3-D GENERATE. 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 utilisés. Si plusieurs fichiers sont impliqués, ils doivent présenter le même format. | Folder; File |
in_file_type | String | |
out_feature_class |
Classe d'entités en sortie. | 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 d'altitude sont multipliées. Il est généralement utilisé pour convertir les unités linéaires Z qui correspondent à celles des unités linéaires XY. La valeur par défaut est 1, qui laisse les valeurs d'altitude inchangées. | 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
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"
arcpy.Ascii3DToFeatureClass_3d("masspnts.txt", "GENERATE", "masspnts.shp", "POINT", 1, "Coordinate Systems/Projected Coordinate Systems/State Plane/NAD 1983 (Feet)/NAD 1983 StatePlane Massachusetts Mainland FIPS 2001 (Feet).prj")
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''****************************************************************************
Name: ASCII3D_to_Feature_Class Example
Description: This script demonstrates how to use the
ASCII3D_to_Feature_Class tool to create a point feature class
from a set of text files in the specified workspace.
****************************************************************************'''
# Import system modules`
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inFormat = "GENERATE"
# Name of the output file
outFC = "Pts_from_ASCII.shp"
# Geometry of the output feature class
outType = "POINT"
zFactor = 1
# Coordinate system of the output feature class
CS = "Coordinate Systems/Geographic Coordinate Systems/World/WGS 1984.prj"
fileSuffix = "ascii.txt"
decSep = "DECIMAL_POINT" # Specifies the decimal delimeter
# Create list of ASCII files
txtList = arcpy.ListFiles("*" + fileSuffix)
# Verify the presence of TINs in the list
if len(txtList) > 0:
# Execute ASCII3D_to_Feature_Class
arcpy.ASCII3DToFeatureClass_3d(txtList, inFormat, outFC, outType,
zFactor, CS, fileSuffix, decSep)
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)