Доступно с лицензией Spatial Analyst.
Краткая информация
Вычисляет количество на единицу площади (плотность) точечных или полилинейных объектов, используя функцию ядра для пригонки плавно сужающейся поверхности к каждой точке или полилинии.
Более подробно о том, как работает инструмент Плотность ядер
Рисунок
Использование
Более высокие значения для параметра радиуса поиска приводят к построению более сглаженного и генерализованного растра плотности. Более низкие значения приводят к построению растра, на котором показано большее количество деталей.
При вычислении плотности учитываются только те точки или части линий, которые попадают в заданную область соседства. Если в область соседства конкретной ячейки не попадает ни одной точки или отрезка линии, такой ячейке будет присвоено значение NoData.
Если коэффициент преобразования для единиц измерения площади мал относительно объектов (расстояния между точками или длины сегментов линии, в зависимости от типа объектов), выходные значения могут быть очень маленькими. Чтобы получить более высокие значения, выберите коэффициент преобразования для более крупных единиц измерения площади (например, квадратные километры, а не квадратные метры).
В ArcGIS 10.2.1 и в более поздних версиях радиус поиска по умолчанию (пропускная способность) вычисляется на основе пространственной конфигурации и числа входных точек. Этот подход корректен для пространственных выбросов – входных точек, которые расположены слишком далеко от остальных – настолько далеко, что они не будут делать радиус поиска неоправданно большим.
Очень большие или очень малые значения в поле Population могут привести к результатам, которые могут показаться интуитивно необъяснимыми. Если среднее значение для поля численности намного больше 1 (например, для численности городского населения), радиус поиска по умолчанию может оказаться очень малым, в результате чего будут возникать небольшие кольца вокруг входных точек. Если среднее значение для поля численности намного меньше 1, то расчетная ширина полосы может показаться неоправданно большой. В таких случаях, вы можете пожелать ввести ваш собственный радиус поиска.
Вычисления плотности зависят от точных вычислений расстояния и площади. В большинстве случаев рекомендуется использовать метод GEODESIC. Метод PLANAR может быть целесообразным, если анализ должен быть выполнен в локальной области с проекцией, которая точно поддерживает правильные расстояния и площади. Смотри Более подробно о географических системах координат и системах координат проекции для определения подходящих проекций.
См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
KernelDensity (in_features, population_field, {cell_size}, {search_radius}, {area_unit_scale_factor}, {out_cell_values}, {method})
Параметр | Объяснение | Тип данных |
in_features | Входные объекты (точечные или линейные), для которых будет вычисляться плотность. | Feature Layer |
population_field | Поле, в котором хранятся значения распределения (относительной величины показателя) для каждого объекта. Поле population содержит значения количества или подсчета, которые должны быть распределены по ландшафту для построения непрерывной поверхности. Значения в поле численности могут быть целочисленными или с плавающей точкой. Опции и поведение по умолчанию для поля перечислены ниже.
| Field |
cell_size (дополнительно) | Размер ячейки для выходного набора растровых данных. Значение, устанавливаемое в параметрах среды. Если параметры среды не установлены, размер ячейки определяется, как более короткий размер экстента выходных объектов (ширины или высоты) в выходной пространственной привязке, деленный на 250. | Analysis Cell Size |
search_radius (дополнительно) | Радиус поиска, в пределах которого будет вычислена плотность. Единицы измерения выбираются, основываясь на линейных единицах проекции пространственной привязки выходных данных. Например, если единицы в метрах – чтобы включить все пространственные объекты в окрестность в 1 милю – установите радиус поиска в 1609,344 (1 миля = 1609,344 метра). Радиус поиска по умолчанию (ширина полосы) вычисляется конкретно для входного набора данных с использованием пространственного варианта Правила большого пальца Сильвермэна (Silverman's Rule of Thumb), который устойчив к пространственным выбросам (т.е. точкам, которые находятся далеко от остальных точек). Смотри рекомендации по использованию выше для ознакомления с описанием алгоритма. | Double |
area_unit_scale_factor (дополнительно) | Желаемые единицы измерения площади выходных значений плотности. По умолчанию единицы измерения выбираются на основе линейных единиц выходной пространственной привязки. Можно изменить их на соответствующие единицы измерения, если вы хотите преобразовать выходные данные плотности. Значения для плотности линий преобразуют единицы измерения и длин, и площадей. Если выходная пространственная привязка не указана, то она будет такой же, что и у входного класса пространственных объектов. Единицы выходной плотности по умолчанию определяются по линейным единицам выходной пространственной привязки следующим образом. Если выходными линейными единицами измерения являются метры, то выходными площадными единицами измерения плотности будут установлены SQUARE_KILOMETERS, что обеспечивает вывод квадратных километров для точечных объектов или километров на квадратный километр для полилинейных объектов. Если выходными линейными единицами измерения являются футы, то выходными площадными единицами измерения плотности будут установлены SQUARE_MILES. Если выходными единицами измерения являются иные, чем футы или метры, единицы, то выходными площадными единицами измерения плотности будут установлены SQUARE_MAP_UNITS. Таким образом единицы выходной плотности будут квадратом линейных единиц выходной пространственной привязки. Например, если выходными линейными единицами измерения являются сантиметры, то выходными площадными единицами измерения плотности будут SQUARE_MAP_UNITS, что приводит к результату в квадратных сантиметрах. Если выходными линейными единицами измерения являются километры, то выходными площадными единицами измерения плотности будут SQUARE_MAP_UNITS, что приводит к результату в квадратных километрах. Доступными опциями и соответствующими им выходными единицами измерения плотности являются следующие:
| String |
out_cell_values (дополнительно) | Определяет, что представляют значения в выходном растре.
| String |
method (дополнительно) | Определяет, будет ли инструмент использовать кратчайший путь на сфероиде (geodesic) или на плоской земной поверхности (planar). Настоятельно рекомендуется использовать метод geodesic (геодезические), если данные хранятся в системе координат, не подходящей для измерения расстояний (например, Web Mercator или любая географическая система координат), или если анализ охватывает большую географическую область.
| String |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster | Выходной растр плотности. Это всегда растр с плавающей точкой. | Raster |
Пример кода
KernelDensity, пример 1 (окно Python)
В этом примере вычисляется сглаженный растр плотности из точечного шейп-файла.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outKDens = KernelDensity("rec_sites.shp", "NONE", 45, 1200, "SQUARE_KILOMETERS")
outKDens.save("C:/sapyexamples/output/kdensout")
KernelDensity, пример 2 (автономный скрипт)
В этом примере вычисляется сглаженный растр плотности из точечного шейп-файла.
# Name: KernelDensity_Ex_02.py
# Description: Calculates a magnitude per unit area from point or polyline
# features using a kernel function to fit a smoothly tapered
# surface to each point or polyline.
# 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 = "rec_sites.shp"
populationField = "NONE"
cellSize = 60
searchRadius = 2500
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute KernelDensity
outKernelDensity = KernelDensity(inFeatures, populationField, cellSize,
searchRadius, "SQUARE_KILOMETERS")
# Save the output
outKernelDensity.save("C:/sapyexamples/output/kerneldout")
Параметры среды
- Автоподтверждение (Auto Commit)
- Размер ячейки (Cell size)
- Текущая рабочая область (Current Workspace)
- Экстент (Extent)
- Географические преобразования (Geographic Transformations)
- Маска (Mask)
- Выходное ключевое слово CONFIG (Output CONFIG Keyword)
- Выходная система координат (Output Coordinate System)
- Временная рабочая область (Scratch Workspace)
- Растр привязки (Snap Raster)
- Размер листа (Tile Size)