Доступно с лицензией Spatial Analyst.
Доступно с лицензией 3D Analyst.
Сводка
Определяет параметры растровой поверхности, такие как экспозиция, уклон и кривизна.
Более подробно о том, как работает инструмент Параметры поверхности.
Использование
Выходные параметры вычисляются по отдельным ячейкам путем подстраивания локальной поверхности вокруг целевой ячейки. Можно вычислить пять параметров поверхности: Уклон, Экспозиция, Средняя кривизна, Тангенциальная кривизна (нормальная изолиния) и Кривизна профиля (линии нормального уклона). Эти опции доступны в параметре Тип параметра (parameter_type в Python).
Все выходные параметры вычисляются с учетом геодезических координат и уравнений.
Если указана опция Уклон (SLOPE в Python) для Типа параметра, то результат будет представлять собой долю изменений высоты для каждой ячейки ЦМР. Это первая производная от ЦМР. Диапазон значений от выходных результатов уклона зависит от типа единиц измерения.
Если выбрана опция Экспозиция (ASPECT в Python) для Типа параметра, то результат определяет направления по компасу для граней уклона вниз по склону для каждой локации. Она выражается положительными значениями градусов от 0 до 360, измеряемыми по часовой стрелке от направления на север.
Кривизна используется для описания формы поверхности. Применительно к наукам о Земле она используется для понимания воздействия силы тяжести, эрозии и других сил на поверхность, а также в сочетании с другими параметрами поверхности для идентификации и классификации форм рельефа.
- Средняя кривизна (MEAN_CURVATURE в Python) измеряет общую кривизну поверхности. Она вычисляется как среднее из минимальной и максимальной кривизны. Если она задана как Тип параметра, то результат будет соответствовать среднему от кривизны профиля (линии нормального уклона) и тангенциальной кривизны (нормальной изолинии). Ее знак, положительный или отрицательный, не является окончательным индикатором, за исключением крайних значений. Высокие положительные значения обозначают области максимальной эрозии, высокие отрицательные значения - максимального накопления (Minár et al., 2020).
- Кривизна профиля (линии нормального уклона) (PROFILE_CURVATURE в Python) измеряет геометрически нормальную кривизну вдоль линии уклона. Положительные значения указывают на области ускорения поверхностного потока и эрозии. Отрицательная кривизна профиля указывает на области замедления поверхностного потока и осаждения. Положительная кривизна профиля (линии нормального уклона) означает, что поверхность в этой ячейке выпуклая в направлении уклона. Отрицательная кривизна указывает, что поверхность вогнута в этой ячейке в том же направлении. Значение 0 указывает, что поверхность плоская.
- Тангенциальная кривизна (нормальной изолинии) (TANGENTIAL_CURVATURE в Python) измеряет геометрически нормальную кривизну перпендикулярно линии уклона, по касательной к изолинии. Положительные значения указывают на области расходящегося поверхностного потока. Отрицательная тангенциальная кривизна указывает на области сходящегося поверхностного потока. Положительная тангенциальная кривизна профиля (нормальной изолинии) означает, что поверхность в этой ячейке выпуклая перпендикулярно направлению уклона. Отрицательная кривизна указывает, что поверхность вогнута в этой ячейке в направлении, перпендикулярном уклону. Значение 0 указывает, что поверхность плоская.
Опция Квадратический (QUADRATIC в Python) в Типе локальной поверхности (local_surface_type в Python) не соответствует в точности ячейкам окрестности. Это значение по умолчанию и она является рекомендованной для большинства данных и приложений.
- Квадратическая поверхность минимизирует эффект зашумленных данных поверхности, например, данные поверхности лидар с высоким разрешением, что особенно важно при вычислении кривизны.
- Квадратическую поверхность следует использовать при настройки размера окрестности, которая больше размера ячейки, а также при использовании опции адаптивного соседства.
Опция Биквадратический (BIQUADRATIC в Python) в Типе локальной поверхности ( в Python) в точности соответствует данным из ячеек окрестности.
- Эта опция подходит для входной поверхности высокой точности.
- Если расстояние соседства больше, чем размер ячейки входного растра, то преимущества точности поверхности биквадратического типа будут утеряны. Расстояние окрестности следует оставить по умолчанию (равным размеру ячейки).
Расстояние окрестности (neighborhood_distance в Python) определяет размер окрестности и вычисляет параметр поверхности на этом расстоянии от центра целевой ячейки..
- Оно не может быть меньше, чем размер ячейки входного растра.
- Меньшее расстояние окрестности захватывает большую локальную вариабельность ландшафта, характеристики меньших объектов ландшафта. Для данных высот с высоким разрешением более подходящими будут длинные расстояния.
Если отмечен параметр Использовать адаптивную окрестность (use_adaptive_neighborhood задан как ADAPTIVE_NEIGHBORHOOD в Python), то расстояние окрестности будет меняться при изменении рельефа. Расстояние окрестности будет сокращено, если в окне вычисления будет выявлено слишком сильное разнообразие.
Настройка Z единиц поверхности (z-unit в Python) важна, чтобы гарантировать точное вычисление выходного уклона.
Если z-единицы в вертикальной системе координат входного растра доступны, то они будут применены автоматически. Предполагается, что вы укажите единицы измерения z-значения входного растра, если они отсутствует. Вы можете использовать инструмент Определить проекцию для указания z-значения. Если они не указаны, по умолчанию будут применяться метры.
Диапазон значений выходных результатов уклона зависит от типа Выходных единиц измерения уклона (output_slope_measurement в Python):
- Для Градусов (DEGREE в Python) диапазон значений уклона будет от 0 до 90.
- Для Процентного роста (PERCENT_RISE в Python) диапазон будет от 0 до практически бесконечности. Плоская поверхность соответствует значению 0 процентов, уклон поверхности в 45 градусов соответствует 100 процентам подъема, и по мере того, как поверхность становится более вертикальной, процент подъема все больше и больше увеличивается.
Если отмечен параметр Проецировать геодезические азимуты (project_geodesic_azimuths установлен как PROJECT_GEODESIC_AZIMUTHS в Python), будет правдой следующее:
- Север будет всегда по направлению 360 градусов.
- Азимуты будут спроецированы с учетом искажения, вызванного неравноугольной Выходной системой координат. Эти углы можно использовать для точного определения точек на самом крутом склоне.
Отметьте параметр Проецировать геодезические азимуты, если вы используете результат Параметров поверхности как входные данные обратного направления в параметре Входной растр обратного направления или направления стока (in_back_direction_raster в Python) для группы инструментов Расстояние.
Если отмечен параметр Использовать экваториальную экспозицию (project_geodesic_azimuths задан как USE_EQUATORIAL_ASPECT в Python), то экспозиция будет измерена от точки вдоль экватора, чтобы скорректировать скос направления, который возникает при приближении к полюсам. Эта опция будет гарантировать, что оси север-юг и запад-восток проходят перпендикулярно друг другу.
Отметьте параметр Использовать экваториальную экспозицию, если ваша территория расположена близко к северному или южному полюсу.
См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Литература:
- James D.E., M.D. Tomer, S.A. Porter. (2014). Trans-scalar landform segmentation from high-resolution digital elevation models. Poster presented at: ESRI Annual Users Conference; July 2014; San Diego, California.
- Minár, J., Evans, I. S., & Jenčo, M. (2020). A comprehensive system of definitions of land surface (topographic) curvatures, with implications for their application in geoscience modelling and prediction. Earth-Science Reviews, 103414. https://doi.org/10.1016/j.earscirev.2020.103414
Синтаксис
SurfaceParameters(in_raster, {parameter_type}, {local_surface_type}, {neighborhood_distance}, {use_adaptive_neighborhood}, {z_unit}, {output_slope_measurement}, {project_geodesic_azimuths}, {use_equatorial_aspect})
Parameter | Объяснение | Тип данных |
in_raster | Входной растр поверхности. | Raster Layer |
parameter_type (Дополнительный) | Задает тип параметра вычисляемой выходной поверхности.
| String |
local_surface_type (Дополнительный) | Определяет тип функции поверхности, расположенной вокруг целевой ячейки.
| String |
neighborhood_distance (Дополнительный) | Выходные данные рассчитываются на этом расстоянии от центра целевой ячейки. Определяет размер окрестности. Значением по умолчанию является размер ячейки входного растра, в результате чего получается окрестность 3 x 3. | Linear Unit |
use_adaptive_neighborhood (Дополнительный) | Разрешить изменять расстояние соседства в соответствии с изменениями ландшафта. Максимальное расстояние определяется расстоянием окрестности. Минимальное расстояние - это размер ячейки входного растра.
| Boolean |
z_unit (Дополнительный) | Линейные единицы измерения для вертикальных z-значений. Они определяется вертикальной системой координат, если она указана. Если вертикальной системы координат нет, то единицы измерения z-значений необходимо указать в списке единиц, чтобы гарантировать точный геодезический расчет. По умолчанию метры.
| String |
output_slope_measurement (Дополнительный) | Если parameter_type задан как SLOPE, то единицы измерения определяются для выходного растра уклона (градусы или проценты).
| String |
project_geodesic_azimuths (Дополнительный) | Определяет, будут ли геодезические азимуты спроецированы с учетом корректного искажения углов, вызванного выходной пространственной привязкой.
| Boolean |
use_equatorial_aspect (Дополнительный) | Измеряет экспозицию от точки на экваторе.
| Boolean |
Значение отраженного сигнала
Name | Объяснение | Тип данных |
out_raster | Выходной растр. | Raster |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
Этот пример создает растр уклонов с выходными значениями в процентах, используется метод адаптивной окрестности. Максимальное расстояние окрестности равно 5 метрам.
from arcpy.sa import *
outSurfaceParameters = SurfaceParameters("elevation_1m.tif", "", "", "5 METERS",
"ADAPTIVE_NEIGHBORHOOD", "", "PERCENT_RISE")
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters01.tif")
В следующем примере показано использование этого инструмента в автономном скрипте Python.
Этот пример создает растр кривизны профиля (линии нормального уклона) с использованием метода адаптивной окрестности. Максимальное расстояние окрестности равно 10 метрам.
# Name: SurfaceParameters_Ex_02.py
# Description: Derive profile (normal slope line) curvature for a 1m resolution
# elevation raster over an adaptive neighborhood distance of maximum 10m.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy.sa import *
# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set local variables
inRaster = "elevation_1m.tif"
inParameterType = "PROFILE_CURVATURE"
inNeighborhoodDistance = "10 METERS"
inUseAdaptiveNeighborhood = "ADAPTIVE_NEIGHBORHOOD"
# Execute the tool
outSurfaceParameters = SurfaceParameters(inRaster, inParameterType, "",
inNeighborhoodDistance, inUseAdaptiveNeighborhood)
# Save the output
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters02.tif")
В следующем примере показано использование этого инструмента в автономном скрипте Python.
Этот пример создает растр экспозиции с использованием расстояния окрестности 5 м. Исправить искажения направления из-за использования неконформной проекции.
# Name: SurfaceParameters_Ex_03.py
# Description: Derive aspect for an elevation surface over a distance of 5m, correct
# for direction distortion from non-conformal projection system.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy.sa import *
# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set local variables
inRaster = "elevation_1m.tif"
inParameterType = "ASPECT"
inNeighborhoodDistance = "5 METERS"
inProjectGeodesicAzimuths = "PROJECT_GEODESIC_AZIMUTHS"
# Execute the tool
outSurfaceParameters = SurfaceParameters(inRaster, inParameterType, "",
inNeighborhoodDistance, "", "", "",
inProjectGeodesicAzimuths)
# Save the output
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters03.tif")
Environments
Информация о лицензиях
- Basic: Требуется Spatial Analyst или 3D Analyst
- Standard: Требуется Spatial Analyst или 3D Analyst
- Advanced: Требуется Spatial Analyst или 3D Analyst