Créer une couche de jeu de données LAS (Gestion des données)
Récapitulatif
Crée une couche de jeux de données LAS qui peut appliquer des filtres aux fichiers LAS et activer ou désactiver des contraintes de surface référencées par un jeu de données LAS.
Utilisation
Cet outil crée une couche temporaire, stockée dans la mémoire, qui peut être conservée en tant que fichier de couche à l'aide de l'outil Enregistrer dans un fichier de couche.
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.
La couche peut être utilisée comme contexte pour générer des entrées pour d'autres outils de géotraitement acceptant un jeu de données LAS. Par exemple, si un jeu de données raster ou TIN est nécessaire depuis des données lidar terre nue retournées, les options de filtre peuvent servir à sélectionner le deuxième code de classe et la première valeur retournée. La couche de jeu de données LAS résultante peut alors être utilisée dans l'outil Jeu de données LAS vers raster ou l'outil Jeu de données LAS vers TIN pour créer la sortie voulue.
Syntaxe
Paramètre | Explication | Type de données |
in_las_dataset |
Jeu de données LAS en entrée. | LAS Dataset Layer |
out_layer |
Nom de la couche de jeu de données LAS résultante. Du texte suivi d'un barre oblique inverse ou d'une barre oblique indique un groupe de couches. | Las Dataset Layer |
class_code [class_code,...] (Facultatif) |
Codes de classification à utiliser en tant que filtre de requête pour les points de données LAS. Les valeurs correctes sont comprises entre 1 et 32. Aucun filtre n'est appliqué par défaut. | Long |
return_values [return_values,...] (Facultatif) | Spécifie les valeurs renvoyées à utiliser pour le filtrage des points de données. Lorsque rien n'est spécifié, tous les retours sont utilisés. Les options de retour valides incluent tout nombre compris entre 1 et 5 et les mots-clés suivants :
| String |
no_flag (Facultatif) | Indique si les points de données auxquels aucun indicateur de classification n'est attribué doivent être activés à des fins d'affichage et d'analyse.
| Boolean |
synthetic (Facultatif) | Indique si les points de données signalés comme étant synthétiques ou les points provenant d'une source de données autre que lidar, doivent être activés à des fins d'affichage et d'analyse.
| Boolean |
keypoint (Facultatif) | Indique si les points de données signalés comme étant des points clé de modèle ou des mesures significatives ne devant pas être affinées, doivent être activés à des fins d'affichage et d'analyse.
| Boolean |
withheld (Facultatif) | Indique si les points de données signalés comme étant retenus, qui constituent généralement des mesures de bruit indésirable, doivent être activés à des fins d'affichage et d'analyse.
| Boolean |
surface_constraints [surface_constraints,...] (Facultatif) |
Nom des entités de contraintes de surface qui seront activées dans la couche. Toutes les contraintes sont activées par défaut. | String |
Exemple de code
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python :
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.MakeLasDatasetLayer_management('Baltimore.lasd', 'Baltimore Layer',
2, 'LAST', 'INCLUDE_UNFLAGGED',
'EXCLUDE_SYNTHETIC', 'INCLUDE_KEYPOINT',
'EXCLUDE_WITHHELD')
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)