Параметры поверхности (Spatial Analyst)

Доступно с лицензией Spatial Analyst.

Доступно с лицензией 3D Analyst.

Краткая информация

Определяет такие параметры растровой поверхности, как экспозиция, уклон и кривизна.

Более подробно о том, как работает инструмент Параметры поверхности

Использование

  • Выходные параметры рассчитываются для каждой ячейки путем подбора локальной поверхности вокруг целевой ячейки. Доступные варианты параметры поверхности Тип параметра (parameter_type в Python): Уклон, Экспозиция, Средняя кривизна, Тангенциальная (нормальной изолинии) кривизна, Профильная (нормальной линии уклона) кривизна, Плановая (проецированной изолинии) кривизна, Геодезическое кручение контура, Кривизна Гаусса и Кривизна Казорати.

  • Все выходные параметры вычисляются с использованием геодезических координат и уравнений.

  • Если для Типа параметра указана опцию Уклон (SLOPE в Python), выходные данные будут содержать скорость изменения высоты для каждой ячейки цифровой модели рельефа (DEM). Это первая производная от ЦМР. Диапазон значений выходного уклона зависит от типа единиц измерения.

  • Если для Типа параметра указана опция Экспозиция (ASPECT в Python), выходные данные определяют направление компаса, к которому обращен уклон склона для каждого местоположения. Экспозиция выражается положительными значениями градусов от 0 до 360, измеряемыми по часовой стрелке от направления на север.

  • Кривизна используется для описания формы поверхности. Применительно к наукам о Земле она используется для понимания влияния гравитации, эрозии и других факторов на поверхность, а также применяется в сочетании с другими параметрами поверхности для нахождения и классификации форм рельефа.

    • Средняя кривизна (MEAN_CURVATURE в Python) - общая кривизна поверхности. Вычисляется как среднее значение между минимальной и максимальной кривизной. Если она указано в качестве Типа параметра, выходные данные эквивалентны среднему значению профильной (нормальной линии уклона) и тангенциальной (нормальной изолинии) кривизны. Ее знак (положительный или отрицательный) не является точным индикатором, за исключением крайних значений. Высокие положительные значения обозначают области максимальной эрозии, высокие отрицательные значения - максимального накопления (Minár et al., 2020).
    • Профильная (нормальной линии уклона) кривизна (PROFILE_CURVATURE в Python) — геометрическая нормальная кривизна вдоль линии уклона. Положительные значения указывают на области ускорения поверхностного стока и эрозии. Отрицательная кривизна профиля указывает на области замедления поверхностного стока и наличие отложений. Положительная кривизна профиля (линия нормального уклона) указывает на то, что поверхность в этой ячейке является выпуклой в направлении уклона. Отрицательная кривизна указывает на то, что поверхность вогнута в этой ячейке в том же направлении. Значение 0 означает, что поверхность плоская.
    • Тангенциальная (нормальная кривизна контура) (TANGENTIAL_CURVATURE в Python) — геометрическая нормальная кривизна, перпендикулярная линии уклона, касательная к изолинии. Положительные значения соответствуют областям расходящегося по поверхности потока. Отрицательные значения тангенциальной кривизны указывают на области сходящегося по поверхности потока. Положительная тангенциальная кривизна (нормальная кривизна контура) указывает на то, что поверхность выпукла в этой ячейке в перпендикулярном направлению уклона направлении. Отрицательная кривизна указывает на то, что поверхность вогнута в этой ячейке в направлении, перпендикулярном уклону. Значение 0 означает, что поверхность плоская.
    • Кривизна плана (проецированной изолинии) (CONTOUR_CURVATURE в Python) — кривизна вдоль изолиний.
    • Геодезическое кручение изолиний (CONTOUR_GEODESIC_TORSION в Python) — скорость изменения угла наклона вдоль изолиний.
    • Кривизна Гаусса (GAUSSIAN_CURVATURE в Python) — общая кривизна поверхности. Она вычисляется как произведение минимальной и максимальной кривизны и может быть как положительной, так и отрицательной. Положительные значения указывают на то, что поверхность в этой ячейке выпуклая, а отрицательные значения - на то, что она вогнутая. Значение 0 означает, что поверхность плоская.
    • Кривизна Касорати (CASORATI_CURVATURE в Python) — общая кривизна поверхности. Это может быть ноль или положительное число. Высокие положительные значения указывают на области резкого изгиба в нескольких направлениях.

    Единицы всех выходных типов кривизны будут обратными для (квадрат обратной величины для Гауссовой кривизны) x,y-единиц настройки среды Выходная система координат.

  • Опция Квадратическая параметра Тип локальной поверхности (local_surface_type = "QUADRATIC" в Python) не точно соответствует ячейкам окрестности. Она используется по умолчанию и рекомендуется для большинства данных и приложений.

    • Квадратическая поверхность сводит к минимуму влияние зашумленных данных поверхностей, например, поверхности лидара высокого разрешения, что особенно важно при вычислении кривизны.
    • Используйте квадратическую поверхность при указании размера окрестности больше, чем размер ячейки, и при использовании опции адаптивной окрестности.
  • Опция Биквадратическая параметра Тип локальной поверхности (local_surface_type = "BIQUADRATIC" в 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), экспозиция будет измеряться из точки на экваторе, чтобы скорректировать угол наклона направления, возникающий при приближении к полюсам. Этот параметр позволяет гарантировать, что оси север-юг и восток-запад перпендикулярны друг другу.

    Отметьте опцию Использовать экваториальную экспозицию, если местность находится недалеко от северного или южного полюса.

  • Воспользуйтесь параметром Входная маска анализа (in_analysis_mask в Python), чтобы ограничить область анализ отдельными местоположениями внутри входного растра поверхности. Местоположения могут задаваться как растровыми, так и векторными данными. У параметра Входная маска анализа будет приоритет над настройкой среды Маска.

  • Если Растр входной поверхности (in_raster в Python) и растровые данные для Входная маска анализа (in_analysis_mask в Python) имеют одинаковый размер ячейки и ячейки выровнены, они будут непосредственно использованы в инструменте. Они не будут пересчитываться при выполнении инструмента.

    Если ячейки отличаются, выходной размер ячейки будет соответствовать максимальному входному, а значение Входная растровая поверхность будет использовано в качестве растра замыкания. Если размер ячейки такой же, но ячейки не выровнены, в качестве внутреннего растра замыкания будет использоваться Входная растровая поверхность. Любо из этих случаев запускает внутреннюю операцию пересчета, перед выполнением извлечения.

    Дополнительные сведения доступны в разделах Размер ячейки и Растр замыкания.

  • См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

  • Литература:

    • James, D. E., Tomer, M. D., and Porter, S. A. 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., and Jenčo, M. A comprehensive system of definitions of land surface (topographic) curvatures, with implications for their application in geoscience modelling and prediction. Earth-Science Reviews, 103414, 2020. https://doi.org/10.1016/j.earscirev.2020.103414

Параметры

ПодписьОписаниеТип данных
Входная растровая поверхность

Входной растр поверхности.

Raster Layer
Тип параметра
(Дополнительный)

Задает тип параметра выходной поверхности, который будет вычислен.

  • УклонБудет вычислена скорость изменения высоты. Используется по умолчанию.
  • ЭкспозицияБудет вычислено направление нисходящего наклона максимальной скорости изменения для каждой ячейки.
  • Средняя кривизнаБудет измерена общая кривизна поверхности. Вычисляется как среднее значение между минимальной и максимальной кривизной. Эта кривизна описывает истинную выпуклость или вогнутость поверхности, независимо от направления или влияния гравитации.
  • Тангенциальная (нормальной изолинии) кривизнаБудет измерена геометрическая нормальная кривизна, перпендикулярная линии уклона, касательная к изолинии. Эта кривизна обычно применяется для характеристики сходимости или расхождения потока по поверхности.
  • Профильная (нормальной линии уклона) кривизнаБудет измерена геометрическая нормальная кривизна вдоль линии уклона. Эта кривизна обычно применяется для характеристик ускорения или замедления накопления на поверхности.
  • Плановая (проецированной изолинии) кривизнаБудет измерена кривизна вдоль изолиний.
  • Геодезическое кручение изолинийБудет измерена скорость изменения угла наклона вдоль изолиний.
  • Гауссова кривизнаБудет измерена общая кривизна поверхности. Она вычисляется как произведение минимальной и максимальной кривизны.
  • Кривизна КасоратиБудет измерена общая кривизна поверхности. Это может быть ноль или любое другое положительное число.
String
Тип локальной поверхности
(Дополнительный)

Задает тип функции поверхности, которая будет установлена вокруг целевой ячейки.

  • КвадратическаяКвадратическая функция поверхности будет установлена в ячейки окрестности. Используется по умолчанию.
  • БиквадратическаяБиквадратическая функция поверхности будет установлена в ячейки окрестности.
String
Расстояние окрестности
(Дополнительный)

Выходные данные будут рассчитаны на этом расстоянии от центра целевой ячейки. Оно определяет размер окрестности.

Значением по умолчанию является размер ячейки входного растра, в результате чего получается окрестность 3 на 3.

Linear Unit
Использовать адаптивную окрестность
(Дополнительный)

Указывает, будет ли расстояние до окрестности меняться в зависимости от изменений ландшафта (адаптивное). Максимальное расстояние определяется расстоянием окрестности. Минимальное расстояние - это размер ячейки входного растра.

  • Отмечено — во всех местоположениях будет использоваться единое (фиксированное) расстояние окрестности. Используется по умолчанию.
  • Отмечено — во всех местоположениях будет использоваться адаптивное расстояние окрестности.
Boolean
Z единицы
(Дополнительный)

Задает линейные единицы измерения, которые будет использоваться для вертикальных z-значений.

Они определяется вертикальной системой координат, если она указана. Если вертикальной системы координат нет, то единицы измерения z-значений необходимо указать в списке единиц, чтобы обеспечить точный геодезический расчет. По умолчанию метры.

  • ДюймЛинейными единицами измерения будут дюймы.
  • ФутЛинейными единицами измерения будут футы.
  • ЯрдЛинейными единицами измерения будут ярды.
  • Миля (США)Линейными единицами измерения будут мили.
  • Морская миляЛинейными единицами измерения будут морские мили.
  • МиллиметрЛинейными единицами измерения будут миллиметры.
  • СантиметрЛинейными единицами измерения будут сантиметры.
  • МетрЛинейными единицами измерения будут метры.
  • КилометрЛинейными единицами измерения будут километры.
  • ДециметрЛинейными единицами измерения будут дециметры.
String
Измерение уклона
(Дополнительный)

Единицы измерения (градусы или проценты), которые будут использоваться для выходного растра уклона.

Этот параметр доступен только в том случае, если для параметра Тип параметра установлено значение Уклон.

  • СтепеньУклон вычисляется в градусах.
  • Процентное увеличениеКрутизна склона вычисляется как процент увеличения и называется также уклоном в процентах.
String
Проецировать геодезические азимуты
(Дополнительный)

Определяет, будут ли геодезические азимуты спроецированы с учетом корректного искажения углов, вызванного выходной пространственной привязкой.

  • Не отмечено—геодезические азимуты не будут спроецированы. Используется по умолчанию.
  • Отмечено—геодезические азимуты будут спроецированы.

Этот параметр доступен только в том случае, если для параметра Тип параметра установлено значение Aspect.

Boolean
Использовать экваториальную экспозицию
(Дополнительный)

Указывает, будет ли экспозиция измеряться от точки на экваторе или от северного полюса.

  • Не отмечено — экспозиция будет измеряться от северного полюса. Используется по умолчанию.
  • Отмечено — Экспозиция будет измеряться из точки на экваторе.

Этот параметр доступен только в том случае, если для параметра Тип параметра установлено значение Aspect.

Boolean
Входная маска анализа
(Дополнительный)

Входные данные, задающие местоположения, где будет выполняться анализ.

Может быть растром или набором классов объектов. Если входными данными являются растры , они могут быть двух типов: целочисленные или с плавающей точкой. Если входными являются векторные данные, это может быть точка, линия или полигон.

Если входные данные маски являются растром, анализ будет выполняться в местоположениях с допустимым значением, включая нулевое. Ячейки, которые имеют значение NoData во входной маске, будут иметь значение NoData в выходных данных.

Composite Geodataset

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

Выходной растр.

Raster

SurfaceParameters(in_raster, {parameter_type}, {local_surface_type}, {neighborhood_distance}, {use_adaptive_neighborhood}, {z_unit}, {output_slope_measurement}, {project_geodesic_azimuths}, {use_equatorial_aspect}, {in_analysis_mask})
ИмяОписаниеТип данных
in_raster

Входной растр поверхности.

Raster Layer
parameter_type
(Дополнительный)

Задает тип параметра выходной поверхности, который будет вычислен.

  • SLOPEБудет вычислена скорость изменения высоты. Используется по умолчанию.
  • ASPECTБудет вычислено направление нисходящего наклона максимальной скорости изменения для каждой ячейки.
  • MEAN_CURVATUREБудет измерена общая кривизна поверхности. Вычисляется как среднее значение между минимальной и максимальной кривизной. Эта кривизна описывает истинную выпуклость или вогнутость поверхности, независимо от направления или влияния гравитации.
  • TANGENTIAL_CURVATUREБудет измерена геометрическая нормальная кривизна, перпендикулярная линии уклона, касательная к изолинии. Эта кривизна обычно применяется для характеристики сходимости или расхождения потока по поверхности.
  • PROFILE_CURVATUREБудет измерена геометрическая нормальная кривизна вдоль линии уклона. Эта кривизна обычно применяется для характеристик ускорения или замедления накопления на поверхности.
  • CONTOUR_CURVATUREБудет измерена кривизна вдоль изолиний.
  • CONTOUR_GEODESIC_TORSIONБудет измерена скорость изменения угла наклона вдоль изолиний.
  • GAUSSIAN_CURVATUREБудет измерена общая кривизна поверхности. Она вычисляется как произведение минимальной и максимальной кривизны.
  • CASORATI_CURVATUREБудет измерена общая кривизна поверхности. Это может быть ноль или любое другое положительное число.
String
local_surface_type
(Дополнительный)

Задает тип функции поверхности, которая будет установлена вокруг целевой ячейки.

  • QUADRATICКвадратическая функция поверхности будет установлена в ячейки окрестности. Используется по умолчанию.
  • BIQUADRATICБиквадратическая функция поверхности будет установлена в ячейки окрестности.
String
neighborhood_distance
(Дополнительный)

Выходные данные будут рассчитаны на этом расстоянии от центра целевой ячейки. Оно определяет размер окрестности.

Значением по умолчанию является размер ячейки входного растра, в результате чего получается окрестность 3 на 3.

Linear Unit
use_adaptive_neighborhood
(Дополнительный)

Указывает, будет ли расстояние до окрестности меняться в зависимости от изменений ландшафта (адаптивное). Максимальное расстояние определяется расстоянием окрестности. Минимальное расстояние - это размер ячейки входного растра.

  • FIXED_NEIGHBORHOODВо всех местоположениях будет использоваться единое (фиксированное) расстояние окрестности. Используется по умолчанию.
  • ADAPTIVE_NEIGHBORHOODВо всех местоположениях будет использоваться адаптивное расстояние окрестности.
Boolean
z_unit
(Дополнительный)

Задает линейные единицы измерения, которые будет использоваться для вертикальных z-значений.

Они определяется вертикальной системой координат, если она указана. Если вертикальной системы координат нет, то единицы измерения z-значений необходимо указать в списке единиц, чтобы обеспечить точный геодезический расчет. По умолчанию метры.

  • INCHЛинейными единицами измерения будут дюймы.
  • FOOTЛинейными единицами измерения будут футы.
  • YARDЛинейными единицами измерения будут ярды.
  • MILE_USЛинейными единицами измерения будут мили.
  • NAUTICAL_MILEЛинейными единицами измерения будут морские мили.
  • MILLIMETERЛинейными единицами измерения будут миллиметры.
  • CENTIMETERЛинейными единицами измерения будут сантиметры.
  • METERЛинейными единицами измерения будут метры.
  • KILOMETERЛинейными единицами измерения будут километры.
  • DECIMETERЛинейными единицами измерения будут дециметры.
String
output_slope_measurement
(Дополнительный)

Единицы измерения (градусы или проценты), которые будут использоваться для выходного растра уклона.

  • DEGREEУклон вычисляется в градусах.
  • PERCENT_RISEКрутизна склона вычисляется как процент увеличения и называется также уклоном в процентах.

Этот параметр поддерживается только в том случае, если для параметра parameter_type установлено значение SLOPE.

String
project_geodesic_azimuths
(Дополнительный)

Определяет, будут ли геодезические азимуты спроецированы с учетом корректного искажения углов, вызванного выходной пространственной привязкой.

  • GEODESIC_AZIMUTHSГеодезические азимуты не будут спроецированы. Используется по умолчанию.
  • PROJECT_GEODESIC_AZIMUTHSГеодезические азимуты будут спроецированы.

Этот параметр поддерживается только в том случае, если для параметра parameter_type установлено значение ASPECT.

Boolean
use_equatorial_aspect
(Дополнительный)

Указывает, будет ли экспозиция измеряться от точки на экваторе или от северного полюса.

  • NORTH_POLE_ASPECTЭкспозиция будет измеряться от северного полюса. Используется по умолчанию.
  • EQUATORIAL_ASPECTЭкспозиция будет измеряться из точки на экваторе.

Этот параметр поддерживается только в том случае, если для параметра parameter_type установлено значение ASPECT.

Boolean
in_analysis_mask
(Дополнительный)

Входные данные, задающие местоположения, где будет выполняться анализ.

Может быть растром или набором классов объектов. Если входными данными являются растры , они могут быть двух типов: целочисленные или с плавающей точкой. Если входными являются векторные данные, это может быть точка, линия или полигон.

Если входные данные маски являются растром, анализ будет выполняться в местоположениях с допустимым значением, включая нулевое. Ячейки, которые имеют значение NoData во входной маске, будут иметь значение NoData в выходных данных.

Composite Geodataset

Возвращаемое значение

ИмяОписаниеТип данных
out_raster

Выходной растр.

Raster

Пример кода

SurfaceParameters, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python.

В этом примере создается растр уклона с выходными значениями в процентах с использованием метода адаптивной соседства окрестности. Максимальное расстояние окрестности - 5 метров.

from arcpy.sa import *
outSurfaceParameters = SurfaceParameters("elevation_1m.tif", "", "", "5 METERS",
                                         "ADAPTIVE_NEIGHBORHOOD", "", "PERCENT_RISE")
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters01.tif")
SurfaceParameters, пример 2 (автономный скрипт)

В следующем примере показано использование этого инструмента как автономного скрипта 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")
SurfaceParameters, пример 3 (автономный скрипт)

В следующем примере показано использование этого инструмента как автономного скрипта 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")

Информация о лицензиях

  • Basic: Обязательно Spatial Analyst или 3D Analyst
  • Standard: Обязательно Spatial Analyst или 3D Analyst
  • Advanced: Обязательно Spatial Analyst или 3D Analyst

Связанные разделы