カーネル密度 (Kernel Density) (Spatial Analyst)

Spatial Analyst のライセンスで利用可能。

概要

カーネル関数を使用してポイントまたはポリライン フィーチャから単位面積ごとの値を計算し、各ポイントまたはポリラインに滑らかなテーパ サーフェスを合わせます。バリアを使用すると、カーネル密度の計算時にフィーチャの影響を変更できます。

[カーネル密度 (Kernel Density)] の詳細

[カーネル密度 (Kernel Density)] の図
OutRas = KernelDensity(InPts, None, 30)

使用法

  • [検索範囲] (Python では search_radius) パラメーターの値が大きいほど、滑らかで単純化された密度のラスターが作成されます。値が小さいほど、詳細を示すラスターが作成されます。

  • 密度の計算時、近傍内にあるポイントまたはラインの一部だけが考慮されます。特定セルの近傍内にポイントやライン セクションがない場合、そのセルには NoData が割り当てられます。

  • [Population フィールド] (Python では population_field) パラメーターの値が非常に大きいあるいは非常に小さい場合、不自然に見える結果が得られることがあります。Population フィールドの平均が 1 よりも非常に大きい場合 (たとえば、都市の人口)、デフォルトの検索範囲が非常に小さくなることがあり、その結果、入力値の周囲のリングが小さくなります。[Population フィールド] の平均が 1 よりも非常に小さい場合、計算された検索範囲が不当に大きく見えることがあります。そのような場合は、独自の検索範囲を入力できます。

  • [出力セル サイズ] は、数値で定義するか、既存のラスター データセットから取得できます。セル サイズがパラメーター値として明示的に指定されていない場合、[セル サイズ] 環境が指定されていれば、そこから取得されます。パラメーターのセル サイズも環境のセル サイズも指定されておらず、[スナップ対象ラスター] 環境が設定されている場合には、スナップ ラスターのセル サイズが使用されます。何も指定されていない場合、セル サイズは範囲の幅または高さ (どちらか短い方) を 250 で割って求められます。この範囲は環境で指定された [出力座標系] にあります。

  • セル サイズが数値によって指定されている場合、このツールは出力ラスターに対してこの値を直接使用します。

    セル サイズがラスター データセットを使用して指定されている場合、パラメーターはセル サイズの値ではなくラスター データセットのパスを示します。データセットの空間参照が出力空間参照と同じである場合、解析ではラスター データセットのセル サイズが直接使用されます。データセットの空間参照が出力空間参照と異なる場合は、選択された [セル サイズ投影法] に基づいて投影されます。

  • デフォルトの検索範囲は、空間構成と入力ポイントの数に基づいて計算されます。この方法は、検索範囲が不当に大きくならないように、空間的な外れ値 (他の入力ポイントから非常に離れた入力ポイント) を修正します。

  • 面積単位の係数単位がフィーチャ (フィーチャ タイプに応じて、ポイント間の距離またはライン セクションの長さ) に比べて小さい場合、出力値が小さくなる可能性があります。大きな値を得るには、大きな単位の面積単位の係数 (平方キロメートル対平方メートルなど) を選択します。

  • NULL 値をサポートするデータ形式 (ファイル ジオデータベース フィーチャクラスなど) では、入力として使用すると、NULL 値は無視されます。

  • [出力のセル値] (Python では out_cell_values) パラメーターは、出力ラスターの値が何を表すかを指定します。[密度] を選択した場合、値は、各セルの単位面積あたりのカーネル密度の値を表します。[予測数] を選択すると、セル面積あたりのカーネルの密度の値を表します。密度の値からカウントを計算する等式は、「カウント = 密度 × 面積」です。

  • 正しい距離と面積を正確に維持する投影を使用してローカル レベルの縮尺で解析を実行する場合は、[メソッド] (Python では PLANAR) パラメーターの [平面] オプション (Python では method) が適しています。解析を地域的な縮尺または大縮尺で実行する場合は、[測地線] (Python では GEODESIC) オプションが適しています。この方法では、楕円体の曲率を考慮して、極と日付変更線の近くのデータを正確に処理します。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

構文

KernelDensity(in_features, population_field, {cell_size}, {search_radius}, {area_unit_scale_factor}, {out_cell_values}, {method}, {in_barriers})
パラメーター説明データ タイプ
in_features

密度を計算する入力フィーチャ (ポイントまたはライン)。

Feature Layer
population_field

各フィーチャの人口値を示すフィールド。population フィールドは、連続サーフェスを作成する地形上に分散する個数や数量です。

人口フィールドの値は、整数値または浮動小数点値です。

フィールドのオプションとデフォルトの動作は以下のとおりです。

  • アイテムまたは特殊な値を使用せず、各フィーチャを 1 回だけカウントする場合は、None を使用します。

  • 入力フィーチャが Z 値を含む場合は、Shape フィールドを使用できます。

  • それ以外の場合、デフォルト フィールドは POPULATION です。以下の条件も適用されます。

    • POPULATION フィールドが存在せず、POPULATIONxxxx フィールドが存在する場合は、そのフィールドがデフォルトで使用されます。"xxxx" は任意の有効な文字です。たとえば、POPULATION6POPULATION1974POPULATIONROADTYPE などです。
    • 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's Rule of Thumb (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
(オプション)

バリアを定義するデータセット。

バリアはポリライン フィーチャまたはポリゴン フィーチャのレイヤーになります。

Feature Layer

戻り値

名前説明データ タイプ
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

関連トピック