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

サマリー

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

カーネル密度の詳細

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

使用法

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

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

  • 数値を使用してセル サイズを指定した場合、出力ラスターではそれが直接使用されます。

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

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

  • デフォルトの検索範囲は、空間構成と入力ポイントの数に基づいて計算されます。 このアプローチでは、空間的な外れ値 (他の入力ポイントから非常に遠く離れた入力ポイント) が補正されるため、検索範囲が不当に大きくなることがありません。

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

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

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

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

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

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

  • 参考文献:

    Silverman, B. W. Density Estimation for Statistics and Data Analysis. New York: Chapman and Hall, 1986.

パラメーター

ラベル説明データ タイプ
入力ポイント、またはライン フィーチャ

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

Feature Layer
人口フィールド

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

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

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

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

  • 入力フィーチャに z 値がある場合は、Shape フィールドを使用できます。

  • Z 値がない場合は、POPULATION がデフォルト フィールドになります。 以下の条件も適用されます。

    • POPULATION フィールドが存在せず、POPULATIONabcd フィールドが存在する場合は、このフィールドがデフォルトで使用されます。 'abcd' は有効な任意の文字です (例: POPULATION6POPULATION1974POPULATIONROADTYPE)。
    • POPULATION フィールドも POPULATIONabcd フィールドも存在せず、POP フィールドが存在する場合は、POP フィールドがデフォルトで使用されます。
    • POPULATION フィールド、POPULATIONabcd フィールド、POP フィールドが存在せず、POPabcd フィールドが存在する場合は、POPabcd フィールドがデフォルトで使用されます。
    • POPULATION フィールド、POPULATIONabcd フィールド、POP フィールド、POPabcd フィールドがいずれも存在しない場合は、[なし] がデフォルトで使用されます。
Field
出力セル サイズ
(オプション)

作成される出力ラスターのセル サイズ。

このパラメーターは、数値で定義するか、既存のラスター データセットから取得することができます。 セル サイズがパラメーター値として明示的に指定されていない場合、環境セル サイズの値が指定されていれば、それが使用されます。そうでない場合、その他のルールを使用してその他の入力から計算されます。 詳細については、使用法セクションをご参照ください。

Analysis Cell Size
検索範囲
(オプション)

密度の計算対象となる検索範囲。 単位は、出力空間参照の投影法の距離単位に基づきます。

たとえば、単位がメートルの場合、1 マイル近傍内のフィーチャをすべて含めるには、検索範囲を 1609.344 に設定します (1 マイル = 1609.344 メートル)。

デフォルトの検索範囲は、Silverman's Rule-of-thumb (Silverman、1986) の空間バリアントを使用し、入力データセットに限定して計算されます。Silverman's Rule-of-thumb は、空間的な外れ値 (残りのポイントから遠く離れたポイント) に対して十分に堅牢です。 アルゴリズムの説明については、使用上のヒントをご参照ください。

Double
面積単位
(オプション)

出力密度値に使用される面積単位を指定します。

デフォルトの単位は、出力空間参照の距離単位に基づいて決定されます。 密度の出力を変換する場合は、この単位を適切な単位に変更することができます。 線密度の値は長さと面積の両方の単位を変換します。

出力空間参照を指定しなかった場合、出力空間参照は入力フィーチャクラスと同じになります。 デフォルトの出力密度単位は、出力空間参照の距離単位に基づいて決定されます。 出力の距離単位がメートルの場合、デフォルトの出力の面積密度単位はポイント フィーチャでは [平方キロメートル]、ポリライン フィーチャではキロメートル/平方キロメートルになります。 出力の距離単位がフィートの場合、出力の面積密度単位は [平方マイル] に設定されます。

出力の距離単位がフィートまたはメートル以外の場合、出力の面積密度単位は [平方マップ単位] に設定されます。 つまり、出力の密度単位は出力空間参照の投影法の距離単位の平方になります。 たとえば、出力の距離の単位がセンチメートルの場合、出力の面積密度の単位は [平方マップ単位] になり、結果として平方センチメートルになります。 出力の距離の単位がキロメートルの場合、出力の面積密度の単位は [平方マップ単位] になり、結果として平方キロメートルになります。

利用可能なオプションとそれに対応する出力の密度単位は次のとおりです。

  • マップの面積単位出力空間参照の距離単位の平方が使用されます。
  • 平方マイルUS マイルが使用されます。
  • 平方キロメートルキロメートルが使用されます。
  • エーカーUS エーカーが使用されます。
  • ヘクタールヘクタールが使用されます。
  • 平方ヤードUS ヤードが使用されます。
  • 平方フィートUS フィートが使用されます。
  • 平方インチUS インチが使用されます。
  • 平方メートルメートルが使用されます。
  • 平方センチメートルセンチメートルが使用されます。
  • 平方ミリメートルミリメートルが使用されます。
String
出力のセル値
(オプション)

出力ラスターの値が表す内容を指定します。

セル値は指定されたセル サイズにリンクされているため、結果ラスターを別のセル サイズにリサンプリングすることはできません。

  • 密度出力ラスター値は、各セルの単位面積あたりで算出された密度の値を表します。 これがデフォルトです。
  • 予測数出力ラスター値は、セル面積あたりで算出された密度の値を表します。
String
方法
(オプション)

平面地球 (平面) を使用するか、楕円体 (測地線) の最短パスを使用するかを指定します。

測地線方法は、入力フィーチャとしてポイントのみをサポートします。

  • 平面フィーチャ間の平面距離が使用されます。 これがデフォルトです。
  • 測地線フィーチャ間の測地距離が使用されます。
String
入力バリア フィーチャ
(オプション)

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

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

Feature Layer

戻り値

ラベル説明データ タイプ
出力ラスター

出力カーネル密度ラスター。

常に浮動小数点ラスターです。

Raster

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 フィールドを使用できます。

  • Z 値がない場合は、POPULATION がデフォルト フィールドになります。 以下の条件も適用されます。

    • POPULATION フィールドが存在せず、POPULATIONabcd フィールドが存在する場合は、このフィールドがデフォルトで使用されます。 'abcd' は有効な任意の文字です (例: POPULATION6POPULATION1974POPULATIONROADTYPE)。
    • POPULATION フィールドも POPULATIONabcd フィールドも存在せず、POP フィールドが存在する場合は、POP フィールドがデフォルトで使用されます。
    • POPULATION フィールド、POPULATIONabcd フィールド、POP フィールドが存在せず、POPabcd フィールドが存在する場合は、POPabcd フィールドがデフォルトで使用されます。
    • POPULATION フィールド、POPULATIONabcd フィールド、POP フィールド、POPabcd フィールドがいずれも存在しない場合は、[なし] がデフォルトで使用されます。
Field
cell_size
(オプション)

作成される出力ラスターのセル サイズ。

このパラメーターは、数値で定義するか、既存のラスター データセットから取得することができます。 セル サイズがパラメーター値として明示的に指定されていない場合、環境セル サイズの値が指定されていれば、それが使用されます。そうでない場合、その他のルールを使用してその他の入力から計算されます。 詳細については、使用法セクションをご参照ください。

Analysis Cell Size
search_radius
(オプション)

密度の計算対象となる検索範囲。 単位は、出力空間参照の投影法の距離単位に基づきます。

たとえば、単位がメートルの場合、1 マイル近傍内のフィーチャをすべて含めるには、検索範囲を 1609.344 に設定します (1 マイル = 1609.344 メートル)。

デフォルトの検索範囲は、Silverman's Rule-of-thumb (Silverman、1986) の空間バリアントを使用し、入力データセットに限定して計算されます。Silverman's Rule-of-thumb は、空間的な外れ値 (残りのポイントから遠く離れたポイント) に対して十分に堅牢です。 アルゴリズムの説明については、使用上のヒントをご参照ください。

Double
area_unit_scale_factor
(オプション)

出力密度値に使用される面積単位を指定します。

デフォルトの単位は、出力空間参照の距離単位に基づいて決定されます。 密度の出力を変換する場合は、この単位を適切な単位に変更することができます。 線密度の値は長さと面積の両方の単位を変換します。

出力空間参照を指定しなかった場合、出力空間参照は入力フィーチャクラスと同じになります。 デフォルトの出力密度単位は、出力空間参照の距離単位に基づいて決定されます。 出力の距離単位がメートルの場合、デフォルトの出力の面積密度単位はポイント フィーチャでは [平方キロメートル]、ポリライン フィーチャではキロメートル/平方キロメートルになります。 出力の距離単位がフィートの場合、出力の面積密度単位は [平方マイル] に設定されます。

出力の距離単位がフィートまたはメートル以外の場合、出力の面積密度単位は [平方マップ単位] に設定されます。 つまり、出力の密度単位は出力空間参照の投影法の距離単位の平方になります。 たとえば、出力の距離の単位がセンチメートルの場合、出力の面積密度の単位は [平方マップ単位] になり、結果として平方センチメートルになります。 出力の距離の単位がキロメートルの場合、出力の面積密度の単位は [平方マップ単位] になり、結果として平方キロメートルになります。

利用可能なオプションとそれに対応する出力の密度単位は次のとおりです。

  • SQUARE_MAP_UNITS出力空間参照の距離単位の平方が使用されます。
  • SQUARE_MILESUS マイルが使用されます。
  • SQUARE_KILOMETERSキロメートルが使用されます。
  • ACRESUS エーカーが使用されます。
  • HECTARESヘクタールが使用されます。
  • SQUARE_YARDSUS ヤードが使用されます。
  • SQUARE_FEETUS フィートが使用されます。
  • SQUARE_INCHESUS インチが使用されます。
  • 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")