カーネル密度(Kernel Density) (Spatial Analyst)
サマリ
カーネル関数を使用してポイントまたはポリライン フィーチャから単位面積ごとの値を計算し、各ポイントまたはポリラインに滑らかなテーパ サーフェスを合わせます。
図
使用法
-
[検索範囲] パラメータの値が大きいほど、滑らかで単純化された密度のラスタが作成されます。値が小さいほど、詳細を示すラスタが作成されます。
-
近傍内にあるポイントまたはラインの一部だけが、密度の計算に考慮されます。特定セルの近傍内にポイントやライン セクションがない場合、そのセルには NoData が割り当てられます。
-
面積単位の係数単位がフィーチャ(フィーチャ タイプに応じて、ポイント間の距離またはライン セクションの長さ)に比べて小さい場合、出力値が小さくなる可能性があります。大きな値を得るには、大きな単位の面積単位の係数(平方キロメートル対平方メートルなど)を選択します。
-
ArcGIS 10.2.1 では、デフォルトの検索半径(バンド幅)は、空間構成と入力ポイントの数に基づいて計算されます。この方法は、検索半径が不当に大きくならないように、空間的な外れ値(他の入力ポイントから非常に離れた入力ポイント)を修正します。
-
Population フィールドの非常に大きいか非常に小さい値によって、不自然に見える結果が得られることがあります。Population フィールドの平均が 1 よりも非常に大きい場合(たとえば、都市の人口)、デフォルトの検索半径が非常に小さくなることがあり、その結果、入力値の周囲のリングが小さくなります。Population フィールドの平均が 1 よりも非常に小さい場合、計算されたバンド幅が不当に大きく見えることがあります。そのような場合は、独自の検索半径を入力できます。
構文
パラメータ | 説明 | データ タイプ |
in_features |
密度を計算する入力フィーチャ(ポイントまたはライン)。 | Feature Layer |
population_field |
各フィーチャの人口値を示すフィールド。[Population フィールド] は、連続サーフェスを作成する地形上に分散する個数や数量です。 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 (オプション) |
出力密度値の望ましい面積単位。 デフォルトの単位は、出力空間参照の投影法の距離単位に基づいて選択されます。密度の出力を変換する場合は、これを適切な単位に変更できます。線密度の値は長さと面積の両方の単位を変換します。 たとえば、入力単位がメートルの場合、デフォルトの出力の面積密度単位はポイント フィーチャでは平方キロメートル、ポリライン フィーチャではキロメートル/平方キロメートルになります。 入力フィーチャの単位に基づくデフォルトの密度単位は以下のとおりです。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
出力カーネル密度ラスタ。 常に浮動小数点ラスタです。 | Raster |
コードのサンプル
次の例では、ポイント シェープ ファイルから滑らかな密度のラスタを計算しています。
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")
次の例では、ポイント シェープ ファイルから滑らかな密度のラスタを計算しています。
# 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")