Extraire LAS (3D Analyst)

Synthèse

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

Illustration

Illustration de l’outil Extraire LAS

Utilisation

  • Cet outil crée des fichiers .las ou .zlas à partir d’un jeu de données LAS, d’un fichier .slpk de nuage de points ou un service de couche de scènes de nuage de points I3S. 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.

  • Il est possible de filtrer le nuage de points en entrée pour limiter les points à extraire en utilisant une quelconque combinaison de codes de classification, d’indicateurs de classification et de valeurs renvoyées. Il est possible de définir des filtres de points en chargeant la couche dans une carte ou une scène et en spécifiant les filtres dans la boîte de dialogue Propriétés de la couche. Il est également possible d’appliquer des filtres de points à un jeu de données LAS à l’aide de l’outil Créer une couche de jeu de données LAS. De plus, vous pouvez extraire un sous-ensemble du nuage de points en entrée en spécifiant une étendue de traitement et une limite d’extraction. Si une étendue de traitement est fournie avec une limite d’extraction, l’intersection des deux est utilisée pour créer les fichiers en sortie. Si aucune étendue de traitement ni aucune limite d’extraction n’est définie, tout le nuage de points en entrée est traité.

  • Lorsque l’entrée est un service de couche de scènes de nuage de points I3S ou un fichier .slpk, il se peut que plusieurs fichiers en sortie soient créés. Les fichiers créés peuvent avoir des étendues superposées susceptibles de compromettre l’efficacité du traitement des données dans certains cas. L’outil Tuile LAS peut être utilisé pour créer des fichiers LAS qui sont divisés le long d’un carroyage régulier de manière à produire des fichiers non superposés.

  • Lorsque l’entrée est un jeu de données LAS, la version du fichier LAS obtenu et le format d’enregistrement de points des sorties correspondent à ceux du fichier source. Si l’entrée est un service de couche de scènes de nuage de points I3S ou un fichier .slpk, la sortie créée est un fichier LAS de version 1.4, mais le format d’enregistrement de points dépend des attributs du nuage de points source, comme suit :

    • Le format de point 6 est utilisé pour une entrée sans valeurs RVB ou proches infrarouge.
    • Le format de point 7 est utilisé pour une entrée avec des valeurs RVB mais sans valeurs proches infrarouge.
    • Le format de point 8 est utilisé pour une entrée avec des valeurs RVB et proches infrarouge.

    Pour utiliser une version de fichier LAS et un format d’enregistrement de points différents, ils peuvent être générés en traitant les fichiers en sortie générés par cet outil avec l’outil Convertir des fichiers LAS.

  • La référence spatiale d’un fichier .las est généralement définie dans le fichier. Si ces informations sont manquantes ou incorrectes, un fichier .prj auxiliaire peut définir la référence spatiale du fichier LAS. 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 du fichier .las. Vous pouvez créer des fichiers .prj pour les fichiers .las dont la référence spatiale est manquante ou mal définie, à l’aide de l’outil Définir une projection pour un fichier .las ou .zlas ou à l’aide du paramètre Créer des fichiers PRJ pour les fichiers LAS de l’outil Créer un jeu de données LAS.

  • Il est possible de reprojeter le système de coordonnées horizontales du nuage de points en entrée dans une référence spatiale différente en spécifiant le paramètre d’environnement Système de coordonnées en sortie. De plus, il est possible de réaliser des conversions d’unités z en veillant à ce que les unités verticales soient définies dans un système de coordonnées verticales. Cependant, une transformation de datum vertical n’est pas prise en charge actuellement. Vous devez vous assurer que toute conversion de système de coordonnées horizontales peut conserver le système de coordonnées verticales d’origine.

  • 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 ne réorganisez pas 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.

  • Le paramètre Limite d’extraction permet de découper le nuage de points en entrée en une forme irrégulière. Ce paramètre prend en charge une limite de polygone qui définit une zone d’étude contiguë, telle qu’une entité surfacique unique couvrant une région relativement importante. Il est possible de fournir en entrée plusieurs polygones représentant des zones d’intérêt voisines, mais l’entité limite ne prend pas en charge les polygones qui représentent un grand nombre de petites entités, comme des arbres ou des bâtiments. Plusieurs polygones sont fusionnés pour découper le nuage de points en entrée de manière efficace. Pour cette raison, la spécification d’une entité limite comportant un grand nombre de petits polygones diminue les performances et doit être évitée.

Paramètres

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

Jeu de données LAS, paquetage de couche de scène de nuage de points (fichier .slpk) ou service de nuage de points I3S qui va être extrait. La propriété d’exportation d’un service de nuage de points I3S doit être activée pour que ce dernier soit traité.

LAS Dataset Layer; Scene Layer; File
Dossier cible

Dossier existant dans lequel les fichiers .las en sortie seront enregistrés.

Folder
Étendue de traitement
(Facultatif)

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

  • Current Display Extent (Étendue actuellement affichée) Current Display Extent : l’étendue repose sur la carte ou la scène active. Cette option est uniquement disponible lorsqu’une carte est active.
  • Dessiner l’étendue Draw Extent : l’étendue est basée sur un rectangle dessiné sur la carte ou dans la scène. Cette option crée une classe d’entités dans la géodatabase du projet et ajoute une couche à la carte. La classe d’entités possède le même système de coordonnées que la carte.
    Remarque :

    Cette option n’est pas disponible dans la boîte de dialogue Environnements. Elle est disponible uniquement dans un paramètre de l’outil correspondant à un type de données d’étendue ou dans l’onglet Environnements de la boîte de dialogue de l’outil.

    Remarque :

    Lorsque l’option de mise à jour Activer et désactiver la mise à jour de l’onglet Mettre à jour est activée, vous devez activer la mise à jour dans l’onglet du ruban Mettre à jour pour dessiner l’étendue.

  • Extent of a Layer (Étendue d’une couche) Layer : l’étendue repose sur une couche de carte active. Utilisez la liste déroulante pour choisir une couche disponible ou utilisez l’option Extent of data in all layers (Étendue des données dans toutes les couches) pour obtenir l’étendue combinée de toutes les couches de carte actives, y compris le fond de carte. Cette option est uniquement disponible lorsqu’une carte avec des couches est active.

    Chaque couche de carte comporte les options suivantes :

    • Toutes les entités Select All : étendue de toutes les entités dans la couche.
    • Entités sélectionnéesArea from Selected Features : étendue de toutes les entités sélectionnées dans la couche.
    • Entités visibles Extent Indicator : étendue de toutes les entités visibles dans la couche.
      Remarque :

      Les étendues des options Entités sélectionnées Area from Selected Features et Entités visibles Extent Indicator sont disponibles uniquement pour les couches d’entités.

  • Browse (Parcourir) Browse : l’étendue repose sur un jeu de données existant.
  • Intersection of Inputs (Intersection des entrées) Intersect : l’étendue repose sur l’étendue minimale ou l’étendue d’intersection de toutes les entrées. S’il n’existe aucune intersection entre les entrées, il en résulte une étendue nulle avec uniquement des zéros.
  • Union of Inputs (Union des entrées) Union : l’étendue est basée sur l’étendue maximale ou combinée de toutes les entrées.
  • Presse-papiers Paste : l’étendue peut être copiée depuis et vers le Presse-papiers.
    • Copier l’étendue Copy : copie les coordonnées et le système de coordonnées de l’étendue dans le Presse-papiers.
    • Coller l’étendue Paste : colle les coordonnées et, éventuellement, le système de coordonnées de l’étendue depuis le Presse-papiers. Si les valeurs du Presse-papiers n’incluent pas de système de coordonnées, l’étendue utilise celui de la carte.
    Remarque :

    Les coordonnées de l’étendue sont copiées vers et collées depuis le Presse-Papiers avec la même mise en forme et le même ordre que ceux de l’objet ArcPy Extent : X min, Y min, X max, Y max et la référence spatiale.

  • Reset Extent (Réinitialiser l’étendue) Reset : la valeur par défaut de l’étendue est rétablie.
  • Manually entered coordinates (Coordonnées saisies manuellement) : les coordonnées doivent être des valeurs numériques incluses dans le système de coordonnées de la carte active.
    Attention :

    La carte peut utiliser des unités d’affichage différentes de celles des coordonnées saisies. L’utilisation d’une direction cardinale (N, S, E, O) n’est pas prise en charge. Utilisez le signe moins pour les coordonnées sud et ouest.

Extent
Limite d'extraction
(Facultatif)

Limite de polygone qui permet de découper le nuage de points en entrée. Cette limite doit représenter une zone d’étude principale généralement définie par un polygone contigu, mais qui peut également être composée de plusieurs polygones si elle représente une zone d’étude commune avec une interruption spatiale pertinente.

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 contient, y compris ceux situés à l’extérieur de la zone d’intérêt, seront 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 fourni 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 contenir un ensemble d’enregistrements de longueur variable 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 enregistrements de longueur variable 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 seront pas supprimés et seront conservés dans la sortie. Il s’agit de l’option par défaut.
  • Activé : les enregistrements de longueur variable des fichiers .las en entrée seront supprimés de la 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 sera au format LAS standard (fichier *.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 sont enregistrés les fichiers .las.

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, paquetage de couche de scène de nuage de points (fichier .slpk) ou service de nuage de points I3S qui va être extrait. La propriété d’exportation d’un service de nuage de points I3S doit être activée pour que ce dernier soit traité.

LAS Dataset Layer; Scene Layer; File
target_folder

Dossier existant dans lequel les fichiers .las en sortie seront enregistrés.

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 commune à 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 permet de découper le nuage de points en entrée. Cette limite doit représenter une zone d’étude principale généralement définie par un polygone contigu, mais qui peut également être composée de plusieurs polygones si elle représente une zone d’étude commune avec une interruption spatiale pertinente.

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 contient, y compris ceux situés à l’extérieur de la zone d’intérêt, seront 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 fourni dans ce paramètre.

String
remove_vlr
(Facultatif)

Spécifie si les enregistrements de longueur variable (VLR) sont supprimés. Chaque fichier .las peut contenir un ensemble d’enregistrements de longueur variable 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 enregistrements de longueur variable 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 seront pas supprimées et seront conservées dans les fichiers 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 sera au format LAS standard (fichier *.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 sont enregistrés les fichiers .las.

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.

arcpy.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())

Rubriques connexes