Classe d’entités Z vers fichier ASCII (3D Analyst)
Récapitulatif
Exporte des entités 3D vers des fichiers texte ASCII en stockant des données GENERATE, XYZ ou de profil.
Utilisation
-
Le format PROFILE contient des informations de profil pour les entités linéaires 3D pouvant être importées dans des applications spécialisées de représentation de diagrammes. Chaque entité linéaire de la classe d'entités source est inscrite dans un fichier distinct dont le nom présente un suffixe représentant l'ID unique de la ligne. Chaque ligne de la table de profil indique la distance à partir de la position de départ de la ligne jusqu'au sommet (D), suivi par l'altitude de ce sommet.
0 z1 D1 z2 D2 z3 D3 z4
Le format XYZ stocke les coordonnées x, y et z sous forme de valeurs à virgule flottante où chaque ligne représente un enregistrement de point distinct.
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4
Remarque :Les entités ponctuelles et multi-points sont inscrites dans le même fichier, alors que chaque entité surfacique et polyligne est inscrite dans un fichier texte distinct dont le suffixe ajouté au nom représente l'ID de l'entité. Chaque partie des entités qui en contiennent plusieurs est inscrite dans un fichier distinct et, dans le nom de fichier correspondant, la référence est ajoutée après l'ID de l'entité.
Le format GENERATE ne prend pas en charge les lignes d'en-tête, mais il stocke toutes les entités en entrée dans un fichier.
- Les entités ponctuelles sont stockées avec leur ID et coordonnées XYZ respectifs et la dernière ligne est identifiée par le mot-clé END :
id1 x1 y1 z1 id2 x2 y2 z2 id3 x3 y3 z3 id4 x4 y4 z4 END
Remarque :Les entités multi-points provenant du même enregistrement dans la classe d'entités d'origine partagent le même ID.
- Les entités linéaires et surfaciques sont séparées par le mot-clé END et deux mots-clés END successifs indiquent la fin du fichier :
id1 x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 END id2 x1 y1 z1 x2 y2 z2 END END
Remarque :les premières et dernières coordonnées XYZ des entités surfaciques sont toujours identiques.
- Les entités ponctuelles sont stockées avec leur ID et coordonnées XYZ respectifs et la dernière ligne est identifiée par le mot-clé END :
Syntaxe
Paramètre | Explication | Type de données |
in_feature_class |
Classe d'entités 3D ponctuelles, multi-points, polylignes ou surfaciques exportée vers un fichier ASCII. | Feature Layer |
output_location |
Dossier dans lequel les fichiers en sortie sont écrits. | Folder |
out_file |
Nom du fichier ASCII résultant. Si une classe d'entités linéaires ou surfaciques est exportée au format XYZ, le nom du fichier est habituellement un nom de base. Chaque entité correspond à un fichier en sortie unique puisque le format XYZ ne prend en charge qu'une ligne ou un polygone par fichier. Chaque partie d'une entité multi-parties est également écrite dans un fichier distinct. Le nom de fichier ajouté comprend l'OID de chaque entité, ainsi que les caractères supplémentaires nécessaires pour le rendre unique. | String |
format (Facultatif) |
Format du fichier ASCII créé.
| String |
delimiter (Facultatif) |
Délimiteur de champ utilisé dans le fichier texte.
| String |
decimal_format (Facultatif) |
Méthode utilisée pour déterminer le nombre de chiffres significatifs qui sont stockés dans les fichiers en sortie.
| String |
digits_after_decimal (Facultatif) |
Utilisé lorsque la valeur Notation décimale est définie sur FIXED. Cela détermine le nombre de chiffres après la virgule des valeurs à virgule flottante écrites dans les fichiers en sortie. | Long |
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.FeatureClassZToASCII_3d("LidarPts.shp", "", "ASCII_LidarPts.txt",
"GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''****************************************************************************
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)