Сводка
Вычисляет площадь и объем области между поверхностью и базовой плоскостью.
Иллюстрация
Использование
Примените Z коэффициент для корректировки вычисления объема, если Z-значения поверхности выражены в единицах измерения, отличающихся от единиц измерения XY. Использование Z коэффициента не влияет на исходные данные. Инструмент автоматически определяет соответствующее значение Z-фактора при задании систем координат XY и Z.
В выходном текстовом файле хранится полный путь к поверхности, параметры, использованные для получения результатов, и вычисленные значения площадей и объемов. Если при нескольких запусках инструмента задан один и тот же выходной файл, ранее существующие записи не удаляются, а новые результаты присоединяются к таблице.
Набор данных Высота плоскости Справочная информация Коэффициент Z 2D площадь 3D площадь Объем C:\data\tin
100.00
Над
1
15984467.82
16354331.40
1886012931.05
C:\data\raster.tif
250.5
Под
3.28084
0
0
0
C:\data.gdb\fd\terrain
1250
Над
0.3048
1854238.36
1970550.88
1099221466.89
Если экстент региона, для которого необходимо рассчитать площадь поверхности и объем, не прямоугольный, создайте полигон для обозначения границ области интереса, затем используйте инструмент Объем полигона для проведения вычислений в регионе, заданном плоскостью полигона и данной поверхностью.
Растровая поверхность оценивается с использованием экстента центральной точки каждой ячейки, в противоположность экстенту всей площади ячейки. В готовом анализе область данных растра будет уменьшена на половину ячейки, по сравнению с областью данных, отображаемой для этого растра.
Синтаксис
arcpy.ddd.SurfaceVolume(in_surface, {out_text_file}, {reference_plane}, {base_z}, {z_factor}, {pyramid_level_resolution})
Параметр | Объяснение | Тип данных |
in_surface | Растр, TIN или terrain поверхность, которая будет обрабатываться. | Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer |
out_text_file (Дополнительный) | Текстовой ASCII-файл с разделителями-запятыми, содержащий вычисления площади и объема. Если файл уже существует, новые результаты будут добавлены. | File |
reference_plane (Дополнительный) | Направление с базовой плоскости, в котором вычисляются результаты.
| String |
base_z (Дополнительный) | Z-значение плоскости, которая будет использоваться для вычисления площади и объема. | Double |
z_factor (Дополнительный) | Коэффициент, на который будут умножаться z-значения. Этот способ обычно используется для конвертации линейных Z-единиц для соответствия линейным единицам XY. Значение по умолчанию равно 1, при нем значения высоты не изменяются. Этот параметр отключен, если пространственная привязка входной поверхности имеет Z-датум с заданными линейными единицами измерения. | Double |
pyramid_level_resolution (Дополнительный) | z-допуск или разрешение размера окна для уровня пирамидных слоев Terrain, которое будет использоваться этим инструментом. Значением по умолчанию является 0, полное разрешение. | Double |
Пример кода
SurfaceVolume. Пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне 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)
SurfaceVolume, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
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)
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst