Extraire LAS (3D Analyst)

Synthèse

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

Illustration

Illustration de l’outil Extract LAS (Extraire LAS)

Utilisation

  • Cet outil crée de fichiers .las ou .zlas à partir d’un jeu de données LAS, d’un nuage de points, d’un fichier .slpk ou d’un service de couche de scènes de nuage de points I3S. Si l’entrée est un jeu de données LAS, un fichier en sortie sera créé pour chaque fichier .las ou .zlas référencé par le jeu de données LAS. Si l’entrée est une couche de scènes de nuage de points, le nombre de fichiers en sortie varie en fonction du nombre de points en cours d’extraction. La taille de chaque fichier en sortie est limitée à environ 16,8 millions de points. Certains fichiers peuvent dépasser ce seuil ou contenir moins de points.

  • Le nuage de points en entrée peut être filtré, afin de limiter le nombre de points à extraire en utilisant une combinaison de codes de classification, d’indicateurs de classification et de valeurs renvoyées. Les filtres de points peuvent être définis en chargeant la couche dans une carte ou une scène et en spécifiant les filtres dans la boîte de dialogue Layer Properties (Propriétés de la couche). Les filtres de points peuvent également être appliqués à un jeu de données LAS à l’aide de l’outil Make LAS Dataset Layer (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, leur intersection est utilisée pour créer les fichiers en sortie. Si l’étendue de traitement et la limite d’extraction ne sont pas définies, l’ensemble du nuage de points en entrée est traité.

  • Si 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 correspondront au 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 sera un fichier LAS version 1.4, mais le format d’enregistrement de points dépendra des attributs du nuage de points source, comme suit :

    • Le format de points 6 sera utilisé si l’entrée ne contient pas de valeur RVB ou proche infrarouge.
    • Le format de points 7 sera utilisé si l’entrée contient des valeurs RVB, mais pas de valeur proche infrarouge.
    • Le format de points 8 sera utilisé si l’entrée contient des valeurs RVB et proche infrarouge.

    Pour utiliser une autre version du fichier LAS et le format d’enregistrement de points, générez-les en traitant les fichiers en sortie avec l’outil Convert LAS (Convertir LAS).

  • En règle générale, la référence spatiale d’un fichier .las est définie dans le fichier. Si cette information n’est pas donnée ou est incorrecte, un fichier .prj auxiliaire peut être défini dans la référence spatiale du fichier LAS. Le fichier .prj doit se trouver au même emplacement que le fichier .las et porter le même nom que le fichier .las. Lorsqu’il est présent, le fichier .prj remplace les informations relatives à la 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 incorrectement 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 le paramètre Create PRJ For LAS Files (Créer des fichiers PRJ pour les fichiers LAS).

  • Vous pouvez reprojeter le système de coordonnées horizontales du nuage de points en entrée dans une autre référence spatiale en spécifiant le paramètre d’environnement Output Coordinate System (Système de coordonnées en sortie). De plus, vous pouvez convertir des unités z en vérifiant que les unités verticales sont définies dans un système de coordonnées verticales. Toutefois, une transformation de datum vertical n’est à ce jour pas prise en charge. Vérifiez que la conversion du système de coordonnées horizontales permet de 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.

  • Vous pouvez utiliser le paramètre Extraction Boundary (Limite d’extraction) pour découper le nuage de points en entrée et lui donner une forme irrégulière. Ce paramètre prend en charge une limite de polygone qui définit une zone d’étude contigüe (une entité surfacique simple couvrant une région relativement large, par exemple). Même si plusieurs polygones représentant des zones d’intérêt avoisinantes peuvent être fournis en entrée, l’entité de limite ne prend pas en charge les polygones qui représentent un grand nombre de petites entités (des arbres ou des bâtiments, par exemple). Plusieurs polygones sont fusionnés de manière à découper correctement le nuage de points en entrée. Évitez donc de spécifier une entité de limite contenant de nombreux petits polygones, au risque de ralentir les performances.

Paramètres

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

Jeu de données LAS, paquetage de couche de scènes de nuage de points (fichier .slpk) ou service de nuage de points I3S qui sont extraits. Pour pouvoir traiter un service de nuage de points I3S, sa propriété d’exportation doit être activée.

LAS Dataset Layer; Scene Layer; File
Dossier cible

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

Folder
Etendue de traitement
(Facultatif)

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

  • Current Display Extent (Étendue actuellement affichée) Vue cartographique : l’étendue repose sur la carte ou la scène active.
  • Dessiner l’étendue Terminer avec mise à l’équerre : l’étendue est basée sur un rectangle dessiné sur la carte ou dans la scène.
  • Extent of a Layer (Étendue d’une couche) Couche : l’étendue repose sur une couche de carte active. Choisissez une couche disponible ou utilisez l’option Étendue des données dans toutes les couches. Chaque couche de carte comporte les options suivantes :

    • Toutes les entités Sélectionner tout : étendue de toutes les entités.
    • Entités sélectionnées Zone à partir des entités sélectionnées : étendue de toutes les entités sélectionnées.
    • Entités visibles Extent Indicator : étendue de toutes les entités visibles.

  • Parcourir Parcourir : l’étendue repose sur un jeu de données.
  • Intersection des entrées Intersection : l’étendue est l’étendue d’intersection de toutes les entrées.
  • Union des entrées Agréger : l’étendue est l’étendue combinée de toutes les entrées.
  • Presse-papiers Coller : l’étendue peut être copiée depuis et vers le Presse-papiers.
    • Copier l’étendue Copier : copie l’étendue et le système de coordonnées dans le Presse-papiers.
    • Coller l’étendue Coller : colle l’étendue et le système de coordonnées depuis le Presse-papiers. Si le Presse-papiers n’inclut pas de système de coordonnées, l’étendue utilise celui de la carte.
  • Reset Extent (Réinitialiser l’étendue) Réinitialiser : la valeur par défaut de l’étendue est rétablie.

Lorsque les coordonnées sont saisies manuellement, elles doivent être des valeurs numériques incluses dans le système de coordonnées de la carte active. La carte peut utiliser des unités d’affichage différentes de celles des coordonnées saisies. Utilisez le signe moins pour les coordonnées sud et ouest.

Extent
Limite d'extraction
(Facultatif)

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

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 qui sera ajouté au nom de chaque fichier .las en sortie. Le nom de base de chaque fichier est hérité du fichier source et est 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 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 ou .zlas sont réorganisés pour optimiser les performances de lecture et de mise à jour de la classification du nuage de points.

  • Désélectionné : l’ordre des points n’est pas réorganisé.
  • Sélectionné : l’ordre des points est réorganisé dans des agrégats spatiaux qui optimisent la lecture des données. Les points réorganisés peuvent améliorer les performances des opérations ultérieures effectuées sur le nuage de points. 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 uniquement disponible lorsque l’entrée est un jeu de données LAS, et il s’agit en l’occurrence de la valeur par défaut.
  • Aucune compressionLa sortie sera au format LAS standard (fichier *.las). Il s’agit de la valeur par défaut lorsque l’entrée est une couche de scènes de nuage de points.
  • Compression zLASLes fichiers .las en sortie seront compressés au format zLAS.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Dossier en sortie

Dossier dans lequel les fichiers .las seront é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, paquetage de couche de scènes de nuage de points (fichier .slpk) ou service de nuage de points I3S qui sont extraits. Pour pouvoir traiter un service de nuage de points I3S, sa propriété d’exportation doit être activée.

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

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 qui sera ajouté au nom de chaque fichier .las en sortie. Le nom de base de chaque fichier est hérité du fichier source et est 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 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 ou .zlas sont réorganisés pour optimiser les performances de lecture et de mise à jour de la classification du nuage de points.

  • MAINTAIN_POINTSL’ordre des points n’est pas réorganisé.
  • REARRANGE_POINTSL’ordre des points est réorganisé dans des agrégats spatiaux qui optimisent la lecture des données. Les points réorganisés peuvent améliorer les performances des opérations ultérieures effectuées sur le nuage de points. 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 uniquement disponible lorsque l’entrée est un jeu de données LAS, et il s’agit en l’occurrence de la valeur par défaut.
  • NO_COMPRESSIONLa sortie sera au format LAS standard (fichier *.las). Il s’agit de la valeur par défaut lorsque l’entrée est une couche de scènes de nuage de points.
  • ZLASLes fichiers .las en sortie seront compressés au format zLAS.
String

Sortie obtenue

NomExplicationType de données
out_folder

Dossier dans lequel les fichiers .las seront é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