Extraire LAS (3D Analyst)

Synthèse

Crée de nouveaux fichiers LAS à partir de données de nuage de points dans une couche de jeu de données LAS ou de scène de nuage de points.

Illustration

Illustration de l’outil Extraire LAS

Utilisation

  • Cet outil crée de nouveaux fichiers .las ou .zlas à partir d’un jeu de données LAS en entrée ou d’un paquetage de couche de scène de nuage de points en entrée (fichier .slpk). Lorsque l’entrée est un jeu de données LAS, un fichier en sortie est créé pour chaque fichier .las ou .zlas référencé par le jeu de données LAS. Lorsque l’entrée est une couche de scènes de nuage de points, le nombre de fichiers en sortie dépend du nombre de points à extraire. Chaque fichier en sortie est limité en taille à environ 16,7 millions de points. Lorsque plusieurs fichiers sont créés, ils peuvent avoir des étendues superposées susceptibles de compromettre l’efficacité du traitement des données dans certains cas. Songez à utiliser l’outil Tuile LAS pour réorganiser les fichiers extraits à partir d’une couche de scènes de nuage de points en une structure de tuilage spécifique avec des étendues non superposées.

  • Vous pouvez extraire un sous-ensemble du nuage de points en entrée en spécifiant une étendue de traitement, une limite d’extraction, ou les deux. Lorsqu’une étendue de traitement est définie avec une limite d’extraction, l’intersection des deux définit la couverture des fichiers .las extraits. Si aucune étendue de traitement ni aucune limite d’extraction n’est définie, l’étendue complète du nuage de points en entrée est extraite dans les fichiers .las en sortie. De plus, vous pouvez appliquer un filtre de points au nuage de points en entrée pour limiter les points à extraire en fonction de n’importe quelle combinaison de codes de classification, d’indicateurs de classification et de valeurs renvoyées. Pour définir les filtres de points, vous devez charger la couche dans une carte ou scène active et spécifier les filtres de votre choix dans la boîte de dialogue Propriétés de la couche. Vous pouvez également définir des filtres de points pour le jeu de données LAS à l’aide de l’outil Créer une couche de jeu de données LAS.

  • Cet outil permet de reprojeter la référence spatiale du nuage de points en entrée sur un autre système de coordonnées verticales et horizontales en définissant l’environnement Système de coordonnées en sortie. La référence spatiale d’un fichier .las peut être définie dans son en-tête ou dans un fichier .prj auxiliaire avec la convention texte connu (WKT). Le fichier .prj doit résider au même emplacement que le fichier .las et porter le même nom que le fichier .las. Le cas échéant, le fichier .prj remplace les informations de référence spatiale dans l’en-tête du fichier .las. Vous pouvez créer des fichiers .prj pour les fichiers .las dont la référence spatiale est manquante ou incorrecte à l’aide de l’outil Définir une projection pour un fichier .las ou .zlas, ou à l’aide de l’outil 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, présente 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 le calcul des statistiques pour que l’outil s’exécute plus rapidement.

Paramètres

ÉtiquetteExplicationType de données
Nuage de points en entrée

Jeu de données LAS ou paquetage de couche de scène de nuage de points (fichier (.slpk file) à traiter.

LAS Dataset Layer; Scene Layer; File
Dossier cible

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

Folder
Étendue de traitement
(Facultatif)

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

  • Default (Par défaut) : l’étendue repose sur l’étendue maximale de toutes les entrées participantes. Il s’agit de l’option par défaut.
  • Union of Inputs (Union des entrées) : l’étendue est basée sur l’étendue maximale de toutes les entrées.
  • Intersection of inputs (Intersection des entrées) : l’étendue est basée sur la surface minimale commune à toutes les entrées.
  • Current Display Extent (Étendue d’affichage actuelle) : l’étendue correspond à l’affichage visible. Cette option n’est pas disponible lorsque aucune carte n’est active.
  • As Specified Below (Comme spécifié ci-dessous) : l’étendue est basée sur les valeurs d’étendue minimale et maximale indiquées.
  • Browse (Parcourir) : l’étendue repose sur un jeu de données existant.
Extent
Limite d'extraction
(Facultatif)

Limite de polygone qui définit la surface des fichiers .las à découper.

Feature Layer
Traiter l'intégralité des fichiers LAS qui intersectent l'étendue
(Facultatif)

Spécifie comment la zone d’intérêt est utilisée pour déterminer le traitement des fichiers .las. La zone d’intérêt est définie par la valeur du paramètre Étendue de traitement, la valeur du paramètre Limite de traitement ou les deux à la fois.

  • Désactivé : seuls les points LAS qui intersectent la zone d'intérêt sont traités. Il s’agit de l’option par défaut.
  • Activé : si une partie d’un fichier .las intersecte la zone d’intérêt, tous les points que ce fichier .las contient, y compris ceux situés à l’extérieur de la zone d’intérêt, sont traités.
Boolean
Suffixe du nom de fichier en sortie
(Facultatif)

Texte 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
Supprimer les enregistrements de longueur variable
(Facultatif)

Spécifie si les enregistrements de longueur variable (VLR) sont supprimés. Chaque fichier .las peut éventuellement contenir un jeu de VLR qui ont été ajoutés par le logiciel qui l’a produit. La signification de ces enregistrements est habituellement connue par le seul logiciel d’origine. Sauf si les données LAS en sortie sont traitées par une application comportant ces informations, conserver les VLR ne présente aucun intérêt. Supprimer les VLR peut contribuer à économiser un espace disque considérable en fonction de leur taille totale et du nombre de fichiers qui les contiennent.

  • Désactivé : les enregistrements de longueur variable des fichiers .las en entrée ne sont pas supprimés et sont conservés dans les fichiers .las en sortie. Il s’agit de l’option par défaut.
  • Activé : les enregistrements de longueur variable des fichiers .las en entrée sont supprimés des fichiers .las en sortie.
Boolean
Réorganiser les points
(Facultatif)

Spécifie si les points dans les fichiers .las sont réorganisés.

  • Désactivé : l’ordre des points dans les fichiers .las n’est pas réorganisé.
  • Activé : les points dans les fichiers .las sont réorganisés. Il s’agit de l’option par défaut.
Boolean
Calculer les statistiques
(Facultatif)

Spécifie si des statistiques seront calculées pour les fichiers .las référencés par le jeu de données LAS. Les statistiques de calcul fournissent un index spatial pour chaque fichier .las, ce qui contribue à améliorer les performances d’analyse et d’affichage. Les statistiques améliorent également l’expérience de filtrage et de symbologie en limitant l’affichage des attributs LAS (par exemple, les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier .las.

  • Activé : les statistiques sont calculées. Il s’agit de l’option par défaut.
  • Désactivé : les statistiques ne sont pas calculées.
Boolean
Jeu de données LAS en sortie
(Facultatif)

Le jeu de données LAS en sortie référençant les fichiers .las récemment créés.

LAS Dataset
Compression
(Facultatif)

Indique si le fichier .las en sortie est au format compressé ou au format LAS standard.

  • Identique à l’entréeLa compression sera identique à l’entrée. Cette option est disponible uniquement lorsque l’entrée est un jeu de données LAS. Il s’agit alors de l’option par défaut.
  • Aucune compressionLa sortie est au format LAS standard (*.las). Il s’agit de la méthode par défaut si l’entrée est une couche de scène de nuage de points.
  • Compression zLASLes fichiers .las en sortie sont compressés au format zLAS.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Dossier en sortie

Dossier dans lequel les fichiers .las sont écrits.

Folder

arcpy.ddd.ExtractLas(in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset}, {compression})
NomExplicationType de données
in_las_dataset

Jeu de données LAS ou paquetage de couche de scène de nuage de points (fichier (.slpk file) à traiter.

LAS Dataset Layer; Scene Layer; File
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.

  • 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 surface des fichiers .las à découper.

Feature Layer
process_entire_files
(Facultatif)

Indique comment l’étendue de traitement est appliquée.

  • 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 que le fichier .las contient, y compris ceux situés à l’extérieur de la zone d’intérêt, sont traités.
Boolean
name_suffix
(Facultatif)

Texte 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)

Spécifie si les enregistrements de longueur variable (VLR) sont supprimés. Chaque fichier .las peut éventuellement contenir un jeu de VLR qui ont été ajoutés par le logiciel qui l’a produit. La signification de ces enregistrements est habituellement connue par le seul logiciel d’origine. Sauf si les données LAS en sortie sont traitées par une application comportant ces informations, conserver les VLR ne présente aucun intérêt. Supprimer les VLR peut contribuer à économiser un espace disque considérable en fonction de leur taille totale et du nombre de fichiers qui les contiennent.

  • MAINTAIN_VLRLes données stockées dans les enregistrements de longueur variable des fichiers .las traités ne sont pas supprimées et persistent 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 des fichiers .las.
Boolean
rearrange_points
(Facultatif)

Spécifie si les points dans les fichiers .las sont réorganisés.

  • MAINTAIN_POINTSL’ordre des points dans les fichiers .las n’est pas réorganisé.
  • 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 seront calculées pour les fichiers .las référencés par le jeu de données LAS. Les statistiques de calcul fournissent un index spatial pour chaque fichier .las, ce qui contribue à améliorer les performances d’analyse et d’affichage. Les statistiques améliorent également l’expérience de filtrage et de symbologie en limitant l’affichage des attributs LAS (par exemple, les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier .las.

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

Le jeu de données LAS en sortie référençant les fichiers .las récemment créés.

LAS Dataset
compression
(Facultatif)

Indique si le fichier .las en sortie est au format compressé ou au format LAS standard.

  • SAME_AS_INPUTLa compression sera identique à l’entrée. Cette option est disponible uniquement lorsque l’entrée est un jeu de données LAS. Il s’agit alors de l’option par défaut.
  • NO_COMPRESSIONLa sortie est au format LAS standard (*.las). Il s’agit de la méthode par défaut si l’entrée est une couche de scène de nuage de points.
  • ZLASLes fichiers .las en sortie sont compressés au format zLAS.
String

Sortie obtenue

NomExplicationType de données
out_folder

Dossier dans lequel les fichiers .las sont écrits.

Folder

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: Nécessite 3D Analyst
  • Standard: Nécessite 3D Analyst
  • Advanced: Nécessite 3D Analyst

Rubriques connexes