Extraire LAS (3D Analyst)

Résumé

Filtre, découpe et projette à nouveau la collection des données Lidar référencées par un jeu de données LAS.

Illustration

Extraire LAS

Utilisation

  • Vous pouvez configurer la couche de jeu de données LAS pour qu’elle limite les points LAS affichés et traités. Pour ce faire, sélectionnez une combinaison de codes de classification, d’indicateurs de classification et de valeurs renvoyées dans les paramètres de filtre de la couche. Les filtres peuvent être définis par l’intermédiaire de la boîte de dialogue Layer Properties (Propriétés de la couche) ou de l’outil Make LAS Dataset Layer (Créer une couche de jeu de données LAS).

  • Pour reprojeter les fichiers LAS dans un système de coordonnées différent, spécifiez la référence spatiale dans le paramètre d’environnement Output Coordinate System (Système de coordonnées en sortie). Une référence spatiale doit être définie pour que les fichiers LAS soient reprojetés. Si la référence spatiale inclut un système de coordonnées verticales, les fichiers LAS peuvent également être reprojetés dans un autre système de référence de hauteur si les grilles de transformation verticale de datum sont installées et qu’une transformation est disponible dans la référence source et dans le système de coordonnées cible. La référence spatiale d’un fichier LAS peut être définie dans son en-tête ou dans un fichier PRJ auxiliaire qui définit la référence spatiale grâce à la convention textuelle connue. Le fichier PRJ doit se trouver au même emplacement que le fichier LAS et porter le même nom que lui. Lorsqu’il est présent, le fichier PRJ écrase les informations de référence spatiale de l’en-tête du fichier LAS. Vous pouvez créer des fichiers PRJ pour les fichiers LAS avec une référence spatiale manquante ou mal définie à l’aide de l’outil Define Projection (Définir une projection) pour un fichier LAS ou ZLAS unique ou à l’aide de l’outil Create LAS Dataset (Créer un jeu de données LAS) avec l’option PRJ activée.

  • Il n’est pas rare que les enregistrements de points LAS soient stockés dans le fichier LAS selon une séquence binaire qui ne correspond pas à l’agrégation spatiale des points. Lorsque les données d’une telle distribution sont interrogées, l’accès aux enregistrements binaires représentant les points LAS risque d’être moins efficace. La réorganisation des points dans le fichier LAS obtenu optimise les données pour la visualisation et d’autres opérations spatiales. Les statistiques sont automatiquement calculées lorsque l’option de réorganisation est activée. Si vous choisissez de ne pas réorganiser les points LAS, vous pouvez activer ou désactiver le calcul des statistiques. Le calcul des statistiques optimise les requêtes spatiales, offre un résumé des codes de classe et renvoie les valeurs présentes dans le fichier LAS. Il allonge toutefois également la durée de traitement de l’outil. Si les fichiers LAS obtenus ne sont pas destinés à être utilisés dans ArcGIS, vous pouvez désactiver les statistiques afin d’exécuter l’outil plus rapidement.

  • Lors du découpage des fichiers LAS, si une étendue d’extraction est définie avec une limite d’extraction, l’intersection des deux définira la couverture des fichiers LAS extraits.

  • Les fichiers LAS obtenus correspondront à la version LAS et au format d’enregistrement des points de l’entrée.

Syntaxe

arcpy.3d.ExtractLas(in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset}, {compression})
ParamètreExplicationType de données
in_las_dataset

Jeu de données LAS à traiter.

LAS Dataset Layer
target_folder

Dossier existant dans lequel les fichiers LAS en sortie sont écrits.

Folder
extent
(Facultatif)

Spécifie l’étendue des données qui seront évaluées par cet outil.

  • MAXOF : l’étendue maximale de toutes les entrées est utilisée.
  • MINOF : l’étendue minimale de toutes les entrées est utilisée.
  • DISPLAY : l’étendue est égale à l’affichage visible.
  • Nom de la couche : l’étendue de la couche spécifiée est utilisée.
  • Objet Extent : l’étendue de l’objet spécifié est utilisée.
  • Chaîne délimitée par des espaces de coordonnées géographiques : l’étendue de la chaîne spécifiée est utilisée. Les coordonnées sont exprimées dans l’ordre x-min, y-min, x-max, y-max.
Extent
boundary
(Facultatif)

Limite de polygone qui définit la zone des fichiers LAS à découper.

Feature Layer
process_entire_files
(Facultatif)

Indique comment appliquer l’étendue de traitement.

  • PROCESS_EXTENTSeuls les points LAS qui intersectent la zone d'intérêt sont traités. Il s’agit de l’option par défaut.
  • PROCESS_ENTIRE_FILESSi une partie d'un fichier LAS intersecte la zone d'intérêt, tous les points qu'il contient, y compris ceux situés à l'extérieur de la zone d'intérêt, sont traités.
Boolean
name_suffix
(Facultatif)

Texte qui est ajouté au nom de chaque fichier LAS en sortie. Chaque fichier hérite de son nom de base de son fichier source, suivi du suffixe indiqué dans ce paramètre.

String
remove_vlr
(Facultatif)

Chaque fichier LAS peut éventuellement contenir un ensemble d’enregistrements de longueur variable ajouté par le logiciel qui l’a généré. Généralement, seul le logiciel d’origine est en mesure de comprendre ces enregistrements. À moins que les données LAS en sortie ne soient destinées à être traitées par une application qui comprend ces informations, la conservation des enregistrements de longueur variable n’apporte aucune valeur ajoutée. La suppression des enregistrements de longueur variable peut parfois permettre d’économiser beaucoup d’espace disque, selon leur taille totale et le nombre de fichiers correspondants.

  • MAINTAIN_VLRLes données stockées dans les enregistrements de longueur variable du fichier LAS traité sont conservées dans les fichiers LAS extraits. Il s’agit de l’option par défaut.
  • REMOVE_VLRLes enregistrements supplémentaires de longueur variable sont supprimés du fichier LAS.
Boolean
rearrange_points
(Facultatif)

Détermine si les points doivent être réorganisés dans les fichiers LAS.

  • MAINTAIN_POINTSL'ordre des points dans les fichiers LAS n'est pas modifié.
  • REARRANGE_POINTSLes points dans les fichiers LAS sont réorganisés. Il s’agit de l’option par défaut.
Boolean
compute_stats
(Facultatif)

Spécifie si des statistiques doivent être calculées pour les fichiers LAS référencés par le jeu de données LAS. Le calcul des statistiques fournit un index spatial pour chaque fichier LAS, ce qui améliore les performances d’analyse et d’affichage. Les statistiques permettent également d’optimiser l’utilisation des filtres et de la symbologie en limitant l’affichage des attributs LAS (tels que les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier LAS.

  • COMPUTE_STATSLes statistiques sont calculées.
  • NO_COMPUTE_STATSLes statistiques ne sont pas calculées. Il s’agit de l’option par défaut.
Boolean
out_las_dataset
(Facultatif)

Jeu de données LAS en sortie qui fait référence aux fichiers LAS récemment créés.

LAS Dataset
compression
(Facultatif)

Indique si le fichier LAS en sortie sera dans un format compressé ou au format LAS standard.

  • SAME_AS_INPUTLa compression sera identique à l’entrée. Il s’agit de l’option par défaut.
  • NO_COMPRESSIONLa sortie sera au format LAS standard (*.las).
  • ZLASLes fichiers LAS en sortie seront compressés au format zLAS.
String

Sortie dérivée

NomExplicationType de données
out_folder

Dossier dans lequel les fichiers LAS seront écrits.

Dossier

Exemple de code

Exemple 1 d'utilisation de l'outil ExtractLas (fenêtre Python)

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

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp',
                     name_suffix='subset', remove_vlr=True, 
                     rearrange_points='REARRANGE_POINTS', 
                     out_las_dataset='extracted_lidar.lasd')
Exemple 2 d'utilisation de l'outil ExtractLas (script autonome)

L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.

'''****************************************************************************
Name: Split Large LAS File
Description: Divides a large LAS file whose point distribution covers the full
             XY extent of the data into smaller files to optimize performance
             when reading lidar data.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las_file = arcpy.GetParameterAsText(0)
tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unit
tile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unit
out_folder = arcpy.GetParameterAsText(3) # folder for LAS files
out_name_suffix = arcpy.GetParameterAsText(4) # basename for output files
out_lasd = arcpy.GetParameterAsText(5) # output LAS dataset


try:
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las_file, temp_lasd, 
                                      compute_stats='COMPUTE_STATS')
    desc = arcpy.Describe(temp_lasd)
    total_columns = int(math.ceil(desc.extent.width/tile_width))
    total_rows = int(math.ceil(desc.extent.height/tile_height))
    digits = int(math.log10(max(cols, rows))) + 1
    for row in range(1, total_rows+1):
        yMin = desc.extent.YMin + tile_height*(row-1)
        yMax = desc.extent.YMin + tile_height*(row)
        for col in range (1, total_columns+1):
            xMin = desc.extent.XMin + tile_width*(col-1)
            xMax = desc.extent.XMax + tile_width*(col)
            name_suffix = '_{0}_{1}x{2}'.format(out_name_suffix, 
                                                str(row).zfill(digits), 
                                                str(col).zfill(digits))
            arcpy.ddd.ExtractLas(temp_lasd, out_folder, 
                                 arcpy.Extent(xMin, yMin, xMax, yMax),
                                 name_suffix=name_suffix, 
                                 rearrange_points='REARRANGE_POINTS',
                                 compute_stats='COMPUTE_STATS')
    arcpy.env.workspace = out_folder
    arcpy.management.CreateLasDataset(arcpy.ListFiles('*{0}*.las'.format(out_name_suffix)),
                                      out_lasd, compute_stats='COMPUTE_STATS',
                                      relative_paths='RELATIVE_PATHS')
except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Informations de licence

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

Rubriques connexes