Disponible con una licencia de Spatial Analyst.
Resumen
Calcula una magnitud por unidad de área a partir de entidades de punto o polilínea mediante una función kernel para adaptar una superficie suavemente estrechada a cada punto o polilínea. Se puede utilizar una barrera para alterar la influencia que ejerce una entidad durante el cálculo de densidad kernel.
Ilustración
Uso
Los valores más altos del parámetro Radio de búsqueda (search_radius en Python) producen un ráster de densidad más generalizado y más suave. Los valores inferiores producen un ráster que muestra más detalles.
Solo los puntos o las partes de una línea que caen dentro de la vecindad se consideran en el cálculo de la densidad. Si no cae ningún punto o sección de línea dentro de la vecindad de una celda en particular, se asigna NoData a esa celda.
Los valores muy altos o muy bajos del parámetro Campo de población (population_field en Python) pueden dar lugar a resultados que pueden parecer no intuitivos. Si el valor medio del campo de población es mucho mayor que 1 (por ejemplo, como sucede con las poblaciones en las ciudades), el radio predeterminado de búsqueda puede ser muy pequeño, lo cual generaría pequeños anillos alrededor de los puntos de entrada. Si el valor medio del campo de población es mucho menor que 1, el radio de búsqueda calculado puede ser injustificadamente grande. En estos casos, puede introducir su propio radio de búsqueda.
El Tamaño de celda de salida se puede definir mediante un valor numérico u obtenerse desde un dataset ráster existente. Si el tamaño de celda no se ha especificado explícitamente como el valor del parámetro, se deriva del entorno Tamaño de celda si se ha especificado. Si no se ha especificado el tamaño de celda del parámetro o el tamaño de celda del entorno, pero se ha configurado el entorno Ráster de alineación, se usa el tamaño de celda del ráster de alineación. Si no se especifica nada, el tamaño de celda se calcula a partir de la anchura o la altura de la extensión dividido por 250, donde la extensión se encuentra en el Sistema de coordenadas de salida especificado en el entorno.
Si el tamaño de celda se especifica usando un valor numérico, la herramienta lo usa directamente para el ráster de salida.
Si el tamaño de celda se especifica mediante un dataset ráster, el parámetro muestra la ruta del dataset ráster en lugar del valor del tamaño de celda. El tamaño de celda de ese dataset ráster se usa directamente en el análisis, siempre que la referencia espacial del dataset sea la misma que la referencia espacial de salida. Si la referencia espacial del dataset es diferente a la referencia espacial de salida, se proyecta en función del Método de proyección de tamaño de celda seleccionado.
El radio de búsqueda predeterminado se calcula en función de la configuración espacial y el número de puntos de entrada. Este enfoque corrige la presencia de valores espaciales atípicos (puntos de entrada que están muy alejados del resto) de tal modo que estos puntos no generen un radio de búsqueda demasiado grande para ser razonable.
Si las unidades del factor de escala de la unidad de área son pequeñas en relación con las entidades (distancia entre los puntos o longitud de secciones de línea según el tipo de entidad), los valores de salida pueden ser pequeños. Para obtener valores más elevados seleccione el factor de escala de unidades para las unidades más elevadas (por ejemplo, kilómetros cuadrados frente a metros cuadrados).
El parámetro Valores de celda de salida (out_cell_values en Python) especifica lo que representan los valores de ráster de salida. Cuando se elige Densidad, los valores presentan el valor de densidad kernel por áreas de unidad correspondiente a cada celda. Si se elige Recuentos esperados, los valores representan la densidad kernel por área de celda. La ecuación con la que se calculan lo recuentos a partir de los valores de densidad es Recuento = Densidad × Área.
La opción Planar (PLANAR en Python) del parámetro Método (method en Python) resulta adecuada cuando el análisis se va a realizar a escala local con una proyección que mantiene el área y la distancia correctas de manera exacta. La opción Geodésico (GEODESIC en Python) es adecuada si el análisis se va a realizar a escala regional o a gran escala (por ejemplo, con Web Mercator o cualquier sistema de coordenadas geográficas). Este método tiene en cuenta la curvatura del esferoide y trata correctamente los datos cercanos a los polos y a la línea internacional de cambio de fecha.
Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento que se aplican a esta herramienta.
Sintaxis
KernelDensity(in_features, population_field, {cell_size}, {search_radius}, {area_unit_scale_factor}, {out_cell_values}, {method}, {in_barriers})
Parámetro | Explicación | Tipo de datos |
in_features | Las entidades de entrada (punto o línea) para las que se calculará la densidad. | Feature Layer |
population_field | Campo que denota los valores de población para cada entidad. El campo de población es el recuento o la cantidad que se expandirá a lo largo del paisaje para crear una superficie continua. Los valores del campo de población pueden ser enteros o de punto flotante. A continuación se enumeran las opciones y los comportamientos predeterminados para los campos.
| Field |
cell_size (Opcional) | El tamaño de celda del ráster de salida que se va a crear. Este parámetro se puede definir mediante un valor numérico u obtenerse desde un dataset ráster existente. Si el tamaño de celda no se ha especificado explícitamente como valor de parámetro, se usa el valor del tamaño de celda del entorno si se ha especificado; de lo contrario, se utilizan reglas adicionales para calcularlo a partir de las otras entradas. Consulte la sección Uso para obtener más detalles. | Analysis Cell Size |
search_radius (Opcional) | El radio de búsqueda dentro del cual se calcula la densidad. Las unidades están basadas en la unidad lineal de la proyección de la referencia espacial de salida. Por ejemplo, si las unidades están expresadas en metros, para incluir todas las entidades dentro de una vecindad de una milla, establezca el radio de búsqueda en 1.609,344 (1 milla = 1.609,344 metros). El radio de búsqueda predeterminado se calcula específicamente para el dataset de entrada utilizando una variante espacial de la Regla general de Silverman (Silverman, 1986) que es bastante sólida para los valores atípicos espaciales (puntos que están alejados de todos los demás). Consulte la descripción del algoritmo en las sugerencias de uso. | Double |
area_unit_scale_factor (Opcional) | Unidades de área de los valores de densidad de salida. Una unidad predeterminada se selecciona según la unidad lineal de la referencia espacial de salida. Puede cambiarla a la unidad adecuada si desea convertir la salida de densidad. Los valores de la densidad de línea convierten las unidades de longitud y área. Si no se especifica ninguna referencia espacial de salida, esta será la misma que la clase de entidad de entrada. Las unidades de densidad de salida predeterminadas se determinan mediante las unidades lineales de la referencia espacial de salida, como se indica a continuación. Si las unidades lineales de salida están expresadas en metros, las unidades de densidad de área de salida se establecerán en Kilómetros cuadrados para las entidades de punto o en kilómetros por kilómetros cuadrados para las entidades de polilínea. Si las unidades lineales de salida están expresadas en pies, las unidades de densidad de área de salida se establecerán en Millas cuadradas. Si las unidades de salida están expresadas en otra unidad distinta de pies o metros, las unidades de densidad de área de salida se establecerán en Unidades de mapa cuadradas. Esto significa que las unidades de densidad de salida corresponderán a la parte cuadrada de las unidades lineales de la referencia espacial de salida. Por ejemplo, si las unidades lineales de salida están expresadas en centímetros, las unidades de densidad de área de salida serán Unidades de mapa cuadradas, lo que dará como resultado centímetros cuadrados. Si las unidades lineales de salida están expresadas en kilómetros, las unidades de densidad de área de salida serán Unidades de mapa cuadradas, lo que dará como resultado kilómetros cuadrados. A continuación se indican las opciones disponibles y las unidades de densidad de salida correspondientes:
| String |
out_cell_values (Opcional) | Especifica qué representan los valores del ráster de salida.
Dado que el valor de la celda está vinculado al tamaño de celda especificado, el ráster resultante no se puede remuestrear con otro tamaño de celda. | String |
method (Opcional) | Especifica si se va a utilizar la tierra plana (planar) o la ruta más corta en un método de esferoide (geodésico).
El método geodésico solo admite puntos como entidades de entrada. | String |
in_barriers (Opcional) | El dataset que define las barreras. La barreras pueden ser una capa de entidades de polígono o polilínea. Este parámetro solo se admite cuando el parámetro method está establecido en PLANAR. | Feature Layer |
Valor de retorno
Nombre | Explicación | Tipo de datos |
out_raster | El ráster de densidad kernel de salida. Siempre es un ráster de punto flotante. | Raster |
Muestra de código
En este ejemplo se calcula un ráster de densidad suavizada a partir de un shapefile de puntos.
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")
En este ejemplo se calcula un ráster de densidad suavizada a partir de un shapefile de puntos.
# 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")
Entornos
Información de licenciamiento
- Basic: Requiere Spatial Analyst
- Standard: Requiere Spatial Analyst
- Advanced: Requiere Spatial Analyst