Résumé
Extrait les fichiers LAS superposés aux entités de découpage ou à l'étendue.
Illustration
Utilisation
-
Lorsqu'un jeu de données LAS est spécifié en entrée, tous les points de données qu'il référence dans les fichiers LAS sont traités. Un sous-ensemble de données Lidar peut également être sélectionné en fonction de ses codes de classification, ses balises de classification et ses valeurs renvoyées en appliquant les filtres de points LAS souhaités via une couche de jeu de données LAS. Les filtres peuvent être définis par l'intermédiaire de la boîte de dialogue des propriétés de la couche ou de l'outil Créer une couche de jeu de données LAS.
Utilisez cet outil pour extraire un sous-ensemble de données Lidar capturées dans les fichiers Lidar source. Par exemple, si vous avez uniquement besoin d'utiliser une zone définie par une limite de polygone, vous pouvez extraire le fichier LAS en utilisant le polygone comme entité limite.
Pour reprojeter des fichiers LAS, spécifiez la référence spatiale souhaitée dans le paramètre d'environnement Système de coordonnées en sortie.
Si l'étendue d'extraction est définie avec une limite d'extraction, l'intersection des deux est utilisée pour définir la couverture des fichiers LAS extraits.
Le paramètre Réorganiser les points, s'il est activé (rearrange_points='REARRANGE_POINTS' dans Python), trie les enregistrements de points en agrégats spatiaux qui sont optimisés pour lire les fichiers. Cette optimisation améliore considérablement l'affichage sur toute la plateforme ArcGIS. La réorganisation des points prend plus de temps. Ce paramètre est activé par défaut, car la réorganisation des points améliore considérablement l'accès aux données.
Syntaxe
ExtractLas_3d (in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset})
Paramètre | Explication | Type de données |
in_las_dataset | Jeu de données LAS à traiter. | LAS Dataset Layer |
target_folder | Dossier dans lequel les fichiers LAS en sortie sont écrits. Chaque fichier en sortie dispose de la même version de fichiers LAS et du même format d'enregistrement des points que le fichier en entrée. | Folder |
extent (Facultatif) | Spécifiez l'étendue des données qui seront évaluées par cet outil. | Extent |
boundary (Facultatif) | Limite de polygone qui définit les emplacements dans lesquels les fichiers LAS sont extraits. | Feature Layer |
process_entire_files (Facultatif) | Indiquez comment appliquer l'étendue de traitement.
| 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) | Détermine si les enregistrements supplémentaires de longueur variable doivent être supprimés ou conservés dans les fichiers LAS.
| Boolean |
rearrange_points (Facultatif) | Détermine si les points doivent être réorganisés dans les fichiers LAS.
| 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. La présence de statistiques permet au filtrage de la couche du jeu de données LAS et aux options de symbologie de n'afficher que les valeurs d'attributs LAS qui existent dans les fichiers LAS.
| Boolean |
out_las_dataset (Facultatif) | Jeu de données LAS en sortie. | LAS Dataset |
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())
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst