Résumé
Calcule la superficie et le volume de la région entre une surface et un plan de référence.
Illustration
Utilisation
Appliquez un facteur Z pour garantir la précision des calculs de volume lorsque les valeurs Z de la surface sont exprimées dans une unité de mesure différente des unités XY. L'utilisation d'un facteur Z ne modifie pas les données d'origine. L’outil détermine automatiquement le facteur Z qui convient lorsque les systèmes de coordonnées XY et Z sont définis.
Le fichier texte en sortie va stocker le chemin d'accès complet à la surface, les paramètres utilisés pour générer les résultats et les mesures de la superficie et du volume calculés. Si le même fichier en sortie est désigné dans différentes exécutions de l'outil, les enregistrements existants sont conservés et les résultats sont ajoutés à la table.
Jeu de données Hauteur du plan Référence Facteur Z Surface 2D Surface 3D Volume C:\data\tin
100.00
Dessus
1
15984467.82
16354331.40
1886012931.05
C:\data\raster.tif
250.5
Dessous
3.28084
0
0
0
C:\data.gdb\fd\terrain
1250
Dessus
0.3048
1854238.36
1970550.88
1099221466.89
Si la région pour laquelle les calculs volumétriques et de superficie de la surface sont souhaités est définie par une étendue non rectangulaire, créez un polygone afin de délimiter la zone d'intérêt, puis utilisez l'outil Volume du polygone en vue d'effectuer les calculs pour la région située entre le plan défini par le polygone et une surface donnée.
Une surface raster est évaluée à l'aide de l'étendue du point central de chaque cellule, et non de l'étendue de toute la superficie des cellules. L'analyse obtenue réduit la zone de données du raster de la moitié d'une cellule par rapport à la zone de données affichée pour le raster.
Syntaxe
arcpy.ddd.SurfaceVolume(in_surface, {out_text_file}, {reference_plane}, {base_z}, {z_factor}, {pyramid_level_resolution})
Paramètre | Explication | Type de données |
in_surface | Surface raster, TIN ou de MNT à traiter. | Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer |
out_text_file (Facultatif) | Fichier texte ASCII A délimité par des virgules, contenant les calculs de superficie et de volume. Si le fichier existe déjà, les nouveaux résultats sont ajoutés au fichier. | File |
reference_plane (Facultatif) | Direction à partir du plan de référence pour lequel calculer les résultats.
| String |
base_z (Facultatif) | Valeur Z du plan servant à calculer la surface et le volume. | Double |
z_factor (Facultatif) | Facteur par lequel les valeurs z sont multipliées. Il permet généralement de convertir des unités linéaires Z afin d'apparier les unités linéaires XY. La valeur par défaut est de 1, ce qui laisse les valeurs d’altitude inchangées. Ce paramètre est désactivé si la référence spatiale de la surface en entrée possède un datum Z avec une unité linéaire spécifiée. | Double |
pyramid_level_resolution (Facultatif) | Résolution de taille de fenêtre ou de tolérance z du niveau de pyramide de MNT qui sera utilisée par cet outil. La valeur par défaut est 0 (ou résolution maximale). | Double |
Exemple de code
1er exemple d'utilisation de l'outil SurfaceVolume (fenêtre Python)
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.SurfaceVolume_3d("sample.gdb/featuredataset/terrain", "surf_vol.txt",
"ABOVE", 300, 1, 5)
2e exemple d'utilisation de l'outil SurfaceVolume (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Surface Volume Example
Description: This script demonstrates how to use the
Surface Volume tool.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inSurface = "elevation_tin"
#Execute SurfaceVolume
result = arcpy.SurfaceVolume_3d(inSurface, "", "ABOVE", "300", "1", "5")
print result.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)
Environnements
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst