Плотность ядер (Spatial Analyst)

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

Сводка

Вычисляет количество на единицу площади (плотность) точечных или полилинейных объектов, используя функцию ядра для пригонки плавно сужающейся поверхности к каждой точке или полилинии. Для изменения влияния объекта в процессе вычисления плотности ядер можно использовать барьер.

Более подробно о том, как работает инструмент Плотность ядер

Иллюстрация

Иллюстрация инструмента Плотность ядер
OutRas = KernelDensity(InPts, None, 30)

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

  • Более высокие значения для параметра Радиуса поиска (search_radius в Python) приводят к построению более сглаженного и генерализованного растра плотности. Более низкие значения приводят к построению растра, на котором показано большее количество деталей.

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

  • Очень большие или очень малые значения в параметре поле Population (population_field в Python) могут привести к результатам, которые могут показаться интуитивно необъяснимыми. Если среднее значение для поля численности намного больше 1 (например, для численности городского населения), радиус поиска по умолчанию может оказаться очень малым, в результате чего будут возникать небольшие кольца вокруг входных точек. Если среднее значение для поля численности намного меньше 1, то расчетный радиус поиска может показаться неоправданно большой. В таких случаях, вы указать собственный радиус поиска.

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

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

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

  • Радиус поиска по умолчанию рассчитывается на основе пространственной конфигурации и количества входных точек. Этот подход корректен для пространственных выбросов – входных точек, которые расположены слишком далеко от остальных – настолько далеко, что они не будут делать радиус поиска неоправданно большим.

  • Если коэффициент преобразования для единиц измерения площади мал относительно объектов (расстояния между точками или длины сегментов линии, в зависимости от типа объектов), выходные значения могут быть очень маленькими. Чтобы получить более высокие значения, выберите коэффициент преобразования для более крупных единиц измерения площади (например, квадратные километры, а не квадратные метры).

  • Параметр Выходные значения ячеек (out_cell_values в Python) определяет, что будут показывать значения выходного растра. Если выбрано Плотности, то значения будут показывать плотность ядер на единицу площади для каждой ячейки. Если выбрано Ожидаемое количество, то значения будут показывать плотность ядер на площадь ячейки. Уравнение, вычисляющее количество на основе значений плотности, будет Количество = Плотность × Площадь.

  • Опция Плоские (PLANAR в Python) в параметре Метод (method в Python) может быть целесообразной, если анализ должен быть выполнен в локальных масштабах с проекцией, которая точно поддерживает правильные расстояния и площади. Опция Геодезические (GEODESIC в Python) подходит, если анализ будет выполняться в масштабе региона или других больших площадей (например, с использованием проекции Web Mercator или любой географической системы координат). Этот метод учитывает кривизну сфероида и корректно обрабатывает данные вблизи полюсов и международной линии смены дат.

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

Синтаксис

KernelDensity(in_features, population_field, {cell_size}, {search_radius}, {area_unit_scale_factor}, {out_cell_values}, {method}, {in_barriers})
ParameterОбъяснениеТип данных
in_features

Входные объекты (точечные или линейные), для которых будет вычисляться плотность.

Feature Layer
population_field

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

Значения в поле численности могут быть целочисленными или с плавающей точкой.

Опции и поведение по умолчанию для поля перечислены ниже.

  • Используйте значение Нет, если не будет использовано какого-либо показателя или специального значения, и каждый объект будет подсчитан один раз.

  • Вы можете использовать Shape, если входные объекты содержат Z.

  • В противном случае, полем по умолчанию будет POPULATION. Также могут применяться следующие условия:

    • Если нет поля с именем POPULATION, но есть поле с именем POPULATIONxxxx, по умолчанию будет использовано оно. xxxx может быть любым действительным символом, таким как POPULATION6, POPULATION1974 или POPULATIONROADTYPE.
    • Если нет поля с именем POPULATION, или поля с именем POPULATIONxxxx, но есть поле POP, оно будет использовано по умолчанию.
    • Если нет поля с именем POPULATION, но есть поле с именем POPULATIONxxxx, или нет поля POP, но есть поле POPxxxx, по умолчанию будет использовано оно.
    • Если нет полей POPULATION, POPULATIONxxxx, POP и POPxxxx, по умолчанию будет использовано значение NONE.
Field
cell_size
(Дополнительный)

Размер ячейки выходного растра, который будет создан.

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

Analysis Cell Size
search_radius
(Дополнительный)

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

Например, если единицы в метрах – чтобы включить все пространственные объекты в окрестность в 1 милю – установите радиус поиска в 1609,344 (1 миля = 1609,344 метра).

Радиус поиска по умолчанию вычисляется конкретно для входного набора данных с использованием пространственного варианта Правила большого пальца Сильвермэна (Silverman, 1986), который достаточно устойчив к пространственным выбросам (т.е. точкам, которые находятся далеко от остальных точек). Смотри рекомендации по использованию для ознакомления с описанием алгоритма.

Double
area_unit_scale_factor
(Дополнительный)

Единицы измерения площади выходных значений плотности.

По умолчанию единицы измерения выбираются на основе линейных единиц выходной пространственной привязки. Можно изменить их на соответствующие единицы измерения, если вы хотите преобразовать выходные данные плотности. Значения для плотности линий преобразуют единицы измерения и длин, и площадей.

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

Если выходными единицами измерения являются иные, чем футы или метры, единицы, то выходными площадными единицами измерения плотности будут установлены Квадратные единицы карты. Таким образом единицы выходной плотности будут квадратом линейных единиц выходной пространственной привязки. Например, если выходными линейными единицами измерения являются сантиметры, то выходными площадными единицами измерения плотности будут Квадратные единицы карты, что приводит к результату в квадратных сантиметрах. Если выходными линейными единицами измерения являются километры, то выходными площадными единицами измерения плотности будут Квадратные единицы карты, что приводит к результату в квадратных километрах.

Доступными опциями и соответствующими им выходными единицами измерения плотности являются следующие:

  • SQUARE_MAP_UNITSКвадрат линейных единиц выходной пространственной привязки.
  • SQUARE_MILESМили (США)
  • SQUARE_KILOMETERSКилометры.
  • ACRESАкры (США)
  • HECTARESГектары.
  • SQUARE_YARDSЯрды (США).
  • SQUARE_FEETФуты (США).
  • SQUARE_INCHESДюймы (США).
  • SQUARE_METERSМетры.
  • SQUARE_CENTIMETERSСантиметры.
  • SQUARE_MILLIMETERSМиллиметры.
String
out_cell_values
(Дополнительный)

Определяет, что представляют значения в выходном растре.

  • DENSITIESВыходные значения будут показывать вычисленную плотность на единицу площади для каждой ячейки. Это значение по умолчанию Короткое целое.
  • EXPECTED_COUNTSВыходные значения представляют вычисленное значение плотности на площадь ячейки.

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

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

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

  • PLANARБудет использоваться расстояние на плоскости между объектами. Это значение по умолчанию Короткое целое.
  • GEODESICБудет использоваться геодезическое расстояние между объектами.

Геодезический метод поддерживает в качестве входных данных только точки.

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

Набор данных, определяющий барьеры.

Барьеры могут быть линейными или полигональными объектами в векторном слое или классе объектов.

Этот параметр поддерживается, если параметр method установлен на PLANAR.

Feature Layer

Значение отраженного сигнала

NameОбъяснениеТип данных
out_raster

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

Это всегда растр с плавающей точкой.

Raster

Пример кода

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

В этом примере вычисляется сглаженный растр плотности из точечного шейп-файла.

from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outKDens = KernelDensity("rec_sites.shp", " ", 45, 1200, "SQUARE_KILOMETERS",
                         " ", "GEODESIC")
outKDens.save("C:/sapyexamples/output/KD_out.tif")
KernelDensity, пример 2 (автономный скрипт)

В этом примере вычисляется сглаженный растр плотности из точечного шейп-файла.

# Name: KernelDensity_Ex_02.py
# Description: Calculates the ozone concentration pattern divided by
#              Sierra Nevada Mountain in California
#              based on the point samples using a kernel function to
#              fit a smoothly tapered surface.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inFeatures = "ozone_california.shp"
populationField = "OZONE"
cellSize = 60
searchRadius = 2500
inBarriers = "SierraNevada.shp"

# Execute KernelDensity
outKernelDensity = KernelDensity(inFeatures, populationField, cellSize, searchRadius,
                                 "SQUARE_KILOMETERS", "DENSITIES", "PLANAR", inBarriers)

# Save the output 
outKernelDensity.save("C:/sapyexamples/output/KD_ozone_california.tif")

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

  • Basic: Требуется Spatial Analyst
  • Standard: Требуется Spatial Analyst
  • Advanced: Требуется Spatial Analyst

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