Créer un jeu de données LAS (Gestion des données)
Récapitulatif
Crée un jeu de données LAS faisant référence à un ou plusieurs fichiers LAS et à des entités de contrainte de surface facultatives.
Illustration
Utilisation
Le jeu de données LAS est conçu pour être utilisé avec des données lidar aéroportées au format *.las ou *.zlas. Il est possible de créer des versions de fichiers LAS pris en charge sont 1.0, 1.1, 1.2 et 1.3 et les fichiers *.zlas, qui sont des fichiers *.las compressés, grâce à l'utilitaire disponible ici.
Envisagez la création et la gestion du jeu de données LAS via la fenêtre ArcCatalog qui est plus interactive. Reportez-vous à la rubrique Création d'un jeu de données LAS pour plus d'informations.
Les entités de contrainte de surface permettent d'imposer des valeurs d'altitude dérivées d'entités représentant les caractéristiques de surface du jeu de données LAS.
Le jeu de données LAS lit les informations de référence spatiale figurant dans l'en-tête de chaque fichier LAS. Si ces informations ne figurent pas dans l'en-tête ou qu'elles sont mal rédigées, vous pouvez géoréférencer correctement le fichier LAS en créant un fichier *.prj auxiliaire qui partage son nom, se trouve dans le même dossier et contient la représentation sous forme de chaîne du système de coordonnées du fichier LAS, comme c'est le cas avec le fichier *.prj d'un fichier de formes.
S'il est activé, le paramètre Calculer les statistiques offre une structure d'indexation spatiale interne qui améliore les performances globales d'un jeu de données LAS. Lorsque les statistiques sont calculées, un fichier auxiliaire .lasx est créé pour chaque fichier LAS et stocké avec les fichiers LAS sur le disque. Le calcul des statistiques ne s'applique qu'aux fichiers LAS sans fichier auxiliaire (.lasx) LAS, ou dotés de fichiers auxiliaires LAS obsolètes.
Vous pouvez classer les points lidar en plusieurs catégories qui décrivent la matière détectée par la valeur lidar renvoyée : sol, bâtiment ou eau. L'association ASPRS (American Society for Photogrammetry and Remote Sensing) a défini les codes de classes suivants pour les versions de fichiers LAS 1.1, 1.2 et 1.3 :
Valeur de classification
Type de classification
0
Jamais classé
1
Non attribué
2
Sol
3
Végétation basse
4
Végétation moyenne
5
Végétation haute
6
Bâtiment
7
Bruit
8
Clé de modèle
9
Eau
10
Réservé à la définition ASPRS
11
Réservé à la définition ASPRS
12
Superposition
13–31
Réservé à la définition ASPRS
Remarque :Alors que les spécifications LAS 1.0 proposent des codes de classes compris entre 0 et 255, elles ne présentent pas de jeu de classification standard. Les codes de classes utilisés dans les fichiers 1.0 sont habituellement définis par le fournisseur de données et communiquées via des informations auxiliaires.
Chaque fichier LAS est examiné pour déterminer si sa structure interne est cohérente avec les spécifications LAS. Si un fichier LAS ne se charge pas dans le jeu de données LAS, le fichier peut être endommagé ou son en-tête peut comporter des informations erronées. Utilisez l'utilitaire CheckLAS pour savoir si vos données présentent certaines erreurs courantes.
Si un fichier LAS ne se trouve pas dans son emplacement approprié lorsqu'il est consulté par l'intermédiaire du jeu de données LAS, des informations de projection incorrectes peuvent être stockées dans son en-tête. Dans ce cas, si la référence spatiale correcte est connue, une projection peut être attribuée au fichier LAS en créant un fichier PRJ. Utilisez l'outil Définir une projection LAS de l'exemple Outils du jeu de données LAS.
Syntaxe
Paramètre | Explication | Type de données |
input [input,...] | Fichiers LAS et dossiers contenant les fichiers LAS qui seront référencés par le jeu de données LAS. Ces informations peuvent être fournies sous forme d'une chaîne contenant toutes les données en entrée ou d'une liste des chaînes contenant des éléments de données spécifiques (par exemple, "lidar1.las ; lidar2.las ; folder1 ; folder2" ou ["lidar1.las", "lidar2.las", "folder1", "folder2"]). Reportez-vous à la rubrique Présentation de la syntaxe des outils pour plus d'informations sur la spécification de listes pour la saisie. | File; Folder |
out_las_dataset |
Jeu de données LAS qui va être créé. | LAS Dataset |
folder_recursion (Facultatif) |
Spécifie si les données lidar résidant dans les sous-répertoires d'un dossier en entrée seraient ajoutées au jeu de données LAS.
| Boolean |
in_surface_constraints [[in_feature_class, height_field, SF_type],...] (Facultatif) | Classes d'entités qui sont référencées par le jeu de données LAS. Pour chaque entité, les propriétés suivantes doivent être définies : in_feature_class : classe d'entités qui doit être référencée par le jeu de données LAS. height_field : champ qui spécifie la source des valeurs d'altitude pour les entités. N'importe quel champ numérique de la table attributaire de l'entité peut être utilisé. Si l'entité prend en charge des valeurs Z, vous pouvez lire la géométrie de l'entité en sélectionnant l'option Shape.Z. Si aucune hauteur n'est requise, spécifiez le mot-clé <Aucun> pour créer des entités z-less dont l'altitude serait interpolée à partir de la surface. SF_type - Type de surface qui définit le mode d'incorporation de la géométrie de l'entité à la triangulation pour la surface. Les options rigides ou malléables font référence à la représentation des tronçons d'entité sous la forme de ruptures de pente distinctes ou d'un changement graduel.
| Value Table |
spatial_reference (Facultatif) |
Référence spatiale du jeu de données LAS. Si aucune référence spatiale n'est explicitement attribuée, le jeu de données LAS utilise le système de coordonnées du premier fichier LAS en entrée. Si les fichiers en entrée ne contiennent aucune information de référence spatiale et que le Système de coordonnées en entrée n'est pas défini, le système de coordonnées du jeu de données LAS est signalé comme étant inconnu. | Coordinate System |
compute_stats (Facultatif) | Spécifie si des statistiques vont être calculées pour les fichiers LAS et si un index spatial va être généré pour 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. Un fichier auxiliaire .lasx est créé pour chaque fichier LAS.
| Boolean |
relative_paths (Facultatif) |
Spécifie si les fichiers lidar et les entités de contrainte de surface seront référencés par le jeu de données LAS par l'intermédiaire de chemins relatifs ou absolus. Les chemins relatifs peuvent être pratiques si le jeu de données LAS et ses données associées vont être déplacés dans le système de fichiers à l'aide du même emplacement relatif les uns par rapport aux autres.
| Boolean |
Exemple de code
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.CreateLasDataset_management("folder_a; folder_b/5S4E.las",
"test.lasd", "RECURSION",
"LA/boundary.shp <None> Softclip;"\
"LA/ridges.shp Elevation hardline", "",
"COMPUTE_STATS", "RELATIVE_PATHS")
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''*********************************************************************
Name: Export Elevation Raster from Ground LAS Measurements
Description: This script demonstrates how to export
ground measurements from LAS files to a raster using a
LAS dataset. This sample is designed to be used as a script
tool.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
surfCons = arcpy.GetParameterAsText(2)
classCode = arcpy.GetParameterAsText(3)
returnValue = arcpy.GetParameterAsText(4)
spatialRef = arcpy.GetParameterAsText(5)
lasD = arcpy.GetParameterAsText(6)
outRaster = arcpy.GetParameterAsText(7)
cellSize = arcpy.GetParameter(8)
zFactor = arcpy.GetParameter(9)
if arcpy.ProductInfo == 'ArcView':
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasD, recursion, surfCons, sr)
# Execute MakeLasDatasetLayer
lasLyr = arcpy.CreateUniqueName('Baltimore')
arcpy.management.MakeLasDatasetLayer(lasD, lasLyr, classCode, returnValue)
# Execute LasDatasetToRaster
arcpy.conversion.LasDatasetToRaster(lasLyr, outRaster, 'ELEVATION',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', cellSize, zFactor)
arcpy.GetMessages()
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
finally:
arcpy.management.Delete(lasLyr)