Disponible avec une licence Spatial Analyst.
Résumé
Calcule une grandeur par unité de carte à partir d'entités ponctuelles ou polylignes à l'aide d'une fonction de noyau pour ajuster une surface régulièrement effilée à chaque point ou polyligne.
Pour en savoir plus sur le fonctionnement de l'outil Densité de noyau
Illustration
Utilisation
Des valeurs élevées au niveau du paramètre du rayon de recherche produisent un raster de densité plus généralisé et plus lisse. Des valeurs basses produisent un raster offrant davantage de détails.
Seuls les points ou portions d'une ligne situés dans le voisinage sont pris en compte lors des calculs de densité. Si aucun point ou section de ligne n'est situé dans le voisinage d'une cellule particulière, la valeur NoData est attribuée à cette dernière.
Si les unités du facteur d'échelle d'unité de surface sont petites par rapport aux entités (distance entre les points ou longueur des sections de lignes, selon le type d'entités), les valeurs en sortie peuvent être petites. Pour obtenir des valeurs plus grandes, sélectionnez le facteur d'échelle d'unité de surface correspondant à des unités plus grandes (par exemple, kilomètres carrés contre mètres carrés).
Avec ArcGIS 10.2.1 et les versions ultérieures, le rayon de recherche par défaut (bande passante) est calculé en fonction de la configuration spatiale et du nombre de points en entrée. Cette approche permet de corriger les points spatiaux aberrants (points en entrée très éloignés des autres) pour qu'ils n'agrandissent pas démesurément le rayon de recherche.
Les résultats produits par des valeurs très faibles ou très élevées du champ Population peuvent sembler peu intuitifs. Si la moyenne du champ de population est bien supérieure à 1 (comme c'est le cas des populations urbaines, par exemple), le rayon de recherche par défaut risque d'être très limité, ce qui risque de produire des anneaux de petite taille autour des points en entrée. Si la moyenne du champ de population est bien inférieure à 1, la bande passante calculée risque de paraître démesurément élevée. Dans ces cas, vous souhaiterez sans doute indiquer votre propre rayon de recherche.
Les calculs de densité dépendent des calculs précis de la distance et de la surface. Dans la plupart des cas, nous recommandons l'utilisation de la méthode GEODESIC. La méthode PLANAR peut convenir si l'analyse est exécutée sur une surface locale avec une projection qui garantit avec précision le maintien de distances et de surfaces correctes. Reportez-vous à la rubrique Pour en savoir plus sur les systèmes de coordonnées géographiques et projetées pour déterminer les projections appropriées.
Pour plus d'informations sur les environnements de géotraitement qui s'appliquent à cet outil, reportez-vous à la rubrique Environnements d'analyse et Spatial Analyst.
Syntaxe
KernelDensity (in_features, population_field, {cell_size}, {search_radius}, {area_unit_scale_factor}, {out_cell_values}, {method})
Paramètre | Explication | Type de données |
in_features | Entités en entrée (point ou ligne) pour lesquelles calculer la densité. | Feature Layer |
population_field | Champ indiquant les valeurs de population pour chaque entité. Le champ de population représente le total ou la quantité à répartir sur tout le paysage pour créer une surface continue. Le champ Population peut contenir des valeurs entières ou à virgule flottante. Les options et les comportements par défaut pour le champ sont répertoriés ci-dessous.
| Field |
cell_size (Facultatif) | Taille de cellule pour le jeu de données raster en sortie. Il s'agit de la valeur contenue dans l'environnement, si spécifiquement définie. Si l'environnement n'est pas défini, la taille de cellule est la valeur la plus faible entre la largeur et la hauteur de l'étendue en sortie dans la référence spatiale en sortie, divisée par 250. | Analysis Cell Size |
search_radius (Facultatif) | Rayon de recherche dans lequel le calcul de la densité est effectué. Les unités sont basées sur l'unité linéaire de la projection de la référence spatiale en sortie. Par exemple, si les unités sont exprimées en mètres et que vous voulez inclure toutes les entités dans un voisinage d'un mile, définissez le rayon de recherche sur 1 609,344 (1 mile = 1 609,344 mètres). Le rayon de recherche par défaut (bande passante) est calculé spécifiquement sur le jeu de données en entrée à l'aide d'une variante spatiale de la règle générale de Silverman qui ne tient pas compte des points spatiaux aberrants (points qui sont éloignés des autres points). Consultez la section précédente sur les conseils d'utilisation pour obtenir une description de l'algorithme. | Double |
area_unit_scale_factor (Facultatif) | Unités de surface souhaitées pour les valeurs de densité en sortie. Une unité par défaut est sélectionnée en fonction de l'unité linéaire de la référence spatiale en sortie. Vous pouvez la remplacer par l'unité appropriée si vous souhaitez convertir la densité en sortie. Les valeurs de densité de lignes convertissent les unités de longueur et de surface. Si aucune référence spatiale en sortie n'est spécifiée, la référence spatiale en sortie sera identique à la classe d'entités en entrée. Les unités de densité en sortie par défaut sont déterminées par les unités linéaires de la référence spatiale en sortie, comme suit. Si les unités linéaires en sortie sont en mètres, les unités de densité de la surface en sortie sont définies sur SQUARE_KILOMETERS. Il en résulte, en sortie, des kilomètres carrés pour les entités ponctuelles ou des kilomètres par kilomètres carrés pour les entités polylignes. Si les unités linéaires en sortie sont des pieds, les unités de densité de la surface en sortie seront définies sur SQUARE_MILES. Si les unités en sortie ne sont ni des pieds ni des mètres, les unités de densité de la surface en sortie seront définies sur SQUARE_MAP_UNITS. Ainsi, les unités de densité en sortie représenteront le carré des unités linéaires de la référence spatiale en sortie. Par exemple, si les unités linéaires en sortie sont des centimètres, les unités de densité de la surface en sortie seront SQUARE_MAP_UNITS qui se traduiront par des centimètres carrés. Si les unités linéaires en sortie sont des kilomètres, les unités de densité de la surface en sortie seront SQUARE_MAP_UNITS qui se traduiront par des kilomètres carrés. Les options disponibles et leurs unités de densité en sortie correspondantes sont les suivantes :
| String |
out_cell_values (Facultatif) | Détermine ce que les valeurs du raster en sortie représentent.
| String |
method (Facultatif) | Détermine s'il convient d'utiliser un plus court chemin sur une sphéroïde (géodésique) ou une méthode de terre plate (plane). Il est fortement conseillé d'utiliser la méthode géodésique avec des données stockées dans un système de coordonnées inadapté aux mesures de distance (par exemple, Web Mercator ou tout système de coordonnées géographiques) et une analyse couvrant une zone géographique étendue.
| String |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster | Raster de densité de noyau en sortie. Il s'agit toujours d'un raster à virgule flottante. | Raster |
Exemple de code
1er exemple d'utilisation de l'outil KernelDensity (fenêtre Python)
Cet exemple calcule un raster de densité lissé à partir d'un fichier de formes ponctuelles.
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")
2e exemple d'utilisation de l'outil KernelDensity (script autonome)
Cet exemple calcule un raster de densité lissé à partir d'un fichier de formes ponctuelles.
# 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")
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert Spatial Analyst
- ArcGIS Desktop Standard: Requiert Spatial Analyst
- ArcGIS Desktop Advanced: Requiert Spatial Analyst