Classe d’entités Z vers fichier ASCII (3D Analyst)

Résumé

Exporte des entités 3D vers des fichiers texte ASCII en stockant des données GENERATE, XYZ ou de profil.

Utilisation

  • L’option Profile écrit un fichier ASCII de deux colonnes qui convertit les entités linéaires 3D en enregistrements pouvant être utilisés pour générer des courbes. Chaque ligne de la classe d’entités source est inscrite dans un fichier distinct dont le nom porte l’identifiant unique de la ligne. Chaque ligne du fichier ASCII indique la distance depuis la position de départ de la ligne jusqu’au sommet (D), suivi par l’altitude de ce sommet. Lors du chargement du fichier ASCII obtenu dans une application graphique, la première colonne est utilisée pour définir l’axe des x et la deuxième colonne pour l’axe des y.

    0 z1D1 z2D2 z3D3 z4
  • L’option XYZ écrit 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 z1x2 y2 z2x3 y3 z3x4 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 nom porte l’ID de l’entité. Chaque partie d’une entité multi-parties est inscrite dans un fichier distinct, sa référence étant ajoutée après l’ID de l’entité du nom du fichier.

  • 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 z1id2 x2 y2 z2id3 x3 y3 z3id4 x4 y4 z4END
      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 ; deux mots-clés END successifs indiquent la fin du fichier :
      id1x1 y1 z1x2 y2 z2x3 y3 z3x4 y4 z4END
      id2x1 y1 z1x2 y2 z2END
      END
      Remarque :

      les premières et dernières coordonnées XYZ des entités surfaciques sont toujours identiques.

Syntaxe

arcpy.3d.FeatureClassZToASCII(in_feature_class, output_location, out_file, {format}, {delimiter}, {decimal_format}, {digits_after_decimal}, {decimal_separator})
ParamètreExplicationType 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 étant donné que 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)

Spécifie le format du fichier ASCII à créer.

  • GENERATEÉcrit une sortie au format GENERATE. Il s’agit de l’option par défaut.
  • XYZÉcrit les informations XYZ des entités en entrée. Un fichier est créé pour chaque ligne ou polygone de l’entité en entrée.
  • PROFILEEcrit des informations de profil pour des entités linéaires pouvant être utilisées dans des applications externes de représentation de diagrammes.
String
delimiter
(Facultatif)

Spécifie le délimiteur qui indique la séparation des entrées dans les colonnes de la table de fichiers texte.

  • SPACEUn espace sera utilisé pour délimiter les valeurs de champ. Il s’agit de l’option par défaut.
  • COMMAUne virgule sera utilisée pour délimiter les valeurs de champ. Cette option n'est pas applicable si le séparateur décimal est également une virgule.
String
decimal_format
(Facultatif)

Spécifie la méthode déterminant le nombre de chiffres significatifs qui sont stockés dans les fichiers en sortie.

  • AUTOMATICLe nombre de chiffres significatifs requis pour conserver la précision disponible, tout en supprimant les zéros de fin inutiles, est déterminé automatiquement. Il s’agit de l’option par défaut.
  • FIXEDLe nombre de chiffres significatifs est défini dans le paramètre Digits after Decimal (Nombre de décimales).
String
digits_after_decimal
(Facultatif)

Nombre de chiffres après la virgule des valeurs à virgule flottante écrites dans les fichiers en sortie. Ce paramètre est utilisé lorsque le paramètre Decimal Notation (Notation décimale) est défini sur Specified Number (Nombre spécifié) (decimal_format=FIXED dans Python).

Long
decimal_separator
(Facultatif)

Spécifie le caractère décimal utilisé qui différencie la partie entière d’un nombre de sa partie fractionnaire.

  • DECIMAL_POINTUn point sert de caractère décimal. Il s’agit de l’option par défaut.
  • DECIMAL_COMMAUne virgule sert de caractère décimal.
String

Sortie dérivée

NomExplicationType de données
derived_output

Dossier dans lequel les fichiers en sortie sont écrits.

Dossier ; Fichier

Exemple de code

1er exemple d'utilisation de l'outil FeatureClassZToASCII (fenêtre Python)

L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.

arcpy.env.workspace = "C:/data"
arcpy.FeatureClassZToASCII_3d("LidarPts.shp", "", "ASCII_LidarPts.txt",
                            "GENERATE", "COMMA", "FIXED", 6, "DECIMAL_POINT")
2e exemple d'utilisation de l'outil FeatureClassZToASCII (script autonome)

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

try:
    # Set environment settings
    arcpy.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 Exception as err:
    print(err)

Informations de licence

  • Basic: Requiert 3D Analyst
  • Standard: Requiert 3D Analyst
  • Advanced: Requiert 3D Analyst

Rubriques connexes