空間ウェイト マトリックスの作成(Generate Spatial Weights Matrix) (空間統計解析)
図
使用法
-
このツールでは空間ウェイト マトリックス ファイル(SWM)が出力されます。[空間リレーションシップのコンセプト] の指定を必要とする [ホット スポット分析(Hot_Spot_Analysis)] などのツールでは、空間ウェイト マトリックス ファイルが許容されます。[空間リレーションシップのコンセプト] パラメータについて GET_SPATIAL_WEIGHTS_FROM_FILE を選択し、[ウェイト マトリックス ファイル] パラメータについてこのツールを使って作成する空間ウェイト ファイルのフル パスを指定します。
このツールでは、生成される空間ウェイト マトリックス ファイルの特性として、フィーチャ数、接続性、最小、最大、平均近傍数もレポートされます。このサマリには、[結果] ウィンドウからアクセスできます。[結果] ウィンドウのメッセージ エントリを右クリックして、[表示] を選択して表示します。このサマリを使うことで、すべてのフィーチャに 1 つ以上の近隣フィーチャを確保できます。一般的に、フィーチャ接続性には、低い値を設定することが望ましいといえます。大きなデータセット(最小で 8 つの近隣フィーチャ)の場合は特にこれがいえます。
時空間分析の場合は、 [空間リレーションシップのコンセプト] パラメータに対して SPACE_TIME_WINDOW を選択します。空間を定義するには、[閾値距離] の値を指定します。時間を定義するには、[日付/時間フィールド] と、[日付/時間のタイプ]([時間] または [日] など)と [日付/時間の間隔値] の両方を指定します。[日付/時間の間隔値] は整数です。たとえば、「1000」フィートと入力し、[時間] を選択し、[日付/時間の間隔値] に「3」と入力した場合、間隔が 1,000 フィート以内で 3 時間以内に発生するフィーチャが近接フィーチャと見なされます。
空間ウェイト マトリックス ファイル(*.swm)は、リレーションシップのコンセプトを一連のフィーチャ間で生成、保存、再利用、および共有できるようにするためのものです。パフォーマンス向上のため、このファイルはバイナリ ファイル形式で作成されます。フィーチャのリレーションシップは疎行列として保存されるため、0 ではないリレーションシップのみが SWM ファイルに書き込まれます。一般的に、SWM ファイルに 1,500 万を超える、0 ではないリレーションシップが含まれる場合でも、ツールは十分に機能します。ただし、SWM ファイルの使用時にメモリ エラーが発生した場合は、フィーチャのリレーションシップの定義方法を再度見直す必要があります。原則として、空間ウェイト マトリックスでは、すべてのフィーチャが 1 つ以上の近接フィーチャを持ち、ほとんどのフィーチャが約 8 つの近接フィーチャを持ち、約 1,000 を超える近接フィーチャを持つフィーチャがないようにしてください。
-
距離ベースの [空間リレーションシップのコンセプト] を使用する場合は、データを投影座標系(地理座標系ではなく)にしてください。
-
ライン フィーチャとポリゴン フィーチャの場合は、距離の計算にフィーチャの重心が使用されます。マルチポイント、ポリライン、または複数のパートを持つポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 1、ライン フィーチャの場合は長さ、ポリゴン フィーチャの場合は面積です。
-
個別値フィールドは、このツールを実行して得られたフィーチャ リレーションシップにリンクしています。そのため、個別値は、すべてのフィーチャについて一意でなければならず、通常はフィーチャクラスとともに保持される永続的なフィールドに置かれます。一意の ID フィールドがない場合は、フィーチャクラス テーブルに新しい整数フィールドを追加して(フィールドの追加)、フィールド値が FID/OID フィールドと等しくなるように計算することで、簡単に作成できます(フィールド演算(Calculate Field))。固有値パラメータに FID/OID フィールドを直接使用することはできません。
-
[近傍数] パラメータは、Inverse または Fixed の空間リレーションシップのコンセプトについて、[閾値距離] パラメータをオーバーライドすることができます。閾値距離として 10 マイルを、近傍数として 3 を指定すると、近傍の特定のために閾値を引き上げる必要があっても、すべてのフィーチャについて 3 つ以上の近傍が特定されます。閾値距離は、最小近傍数を満たすことのできない場合にのみ引き上げられます。
[空間リレーションシップのコンセプト] パラメータの [CONVERT_TABLE] オプションを使用すれば、ASCII 空間ウェイト マトリックス ファイルを SWM 形式の空間ウェイト マトリックス ファイルに変換できます。まず、ASCII ウェイトを書式付きのテーブル(Excel を使用したものなど)に配置する必要があります。
注意:テーブルにセルフ ポテンシャルのウェイトが含まれている場合、これらは SWM 出力ファイルから除外され、分析にはデフォルトのセルフ ポテンシャル値が使用されます。[ホット スポット分析] ツールの場合、デフォルトのセルフ ポテンシャル値は 1 ですが、[セルフ ポテンシャル] フィールドに値を指定すればこの値を上書きできます。これ以外のツールのデフォルトのセルフ ポテンシャル値はゼロです。
ポリゴン フィーチャの場合は、ほぼ常に[行を標準化] パラメータに [行] を選択することができます。[行の標準化] を行うと、解析対象の変数の実際の空間分布を反映するのではなく、各フィーチャの近傍の数が集約方式またはサンプリング プロセスの関数になるときに、偏りが緩和されます。
-
このツールのパラメータの詳細については、「空間関係のモデリング」のヘルプ トピックをご参照ください。
空間ウェイト マトリックス ファイルを使用できるツールは、分析に先立ってフィーチャ ジオメトリを出力座標系に投影します。すべての数学的演算は、出力座標系に基づいて実行されます。したがって、出力座標系の設定が入力フィーチャクラスの空間参照と一致しない場合は、空間ウェイト マトリックス ファイルを使用するすべての分析について、出力座標系が空間ウェイト マトリックス ファイルの作成時に使用された設定と一致していることを確認するか、または空間ウェイト マトリックス ファイルと関連付けられた空間参照に一致するように入力フィーチャクラスを投影してください。
シェープファイルを使用するときは、NULL 値を格納できないため、注意が必要です。シェープファイル以外の入力からシェープファイルを作成するツールまたはその他の方法では、NULL 値がゼロとして格納または解釈される場合があります。場合によっては、NULL 値はシェイプファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
Input_Feature_Class |
フィーチャの空間関係の評価対象となるフィーチャクラス。 | Feature Class |
Unique_ID_Field |
入力フィーチャクラスのすべてのフィーチャで値が異なる整数フィールドです。 | Field |
Output_Spatial_Weights_Matrix_File |
作成する空間ウェイト マトリックス ファイル(SWM)についてのフル パス。 | File |
Conceptualization_of_Spatial_Relationships |
フィーチャ間の空間リレーションシップをどのようにコンセプト化するかを指定します。
注意:ポリゴン隣接手法は、ArcGIS for Desktop Advanced ライセンスでしか利用できません。 | String |
Distance_Method (オプション) |
各フィーチャから隣接フィーチャまでの距離の計算方法を指定します。
| String |
Exponent (オプション) |
逆距離の計算のためのパラメータ。典型的な値は 1 または 2 です。 | Double |
Threshold_Distance (オプション) |
Inverse Distance または Fixed Distance の空間リレーションシップのコンセプトについて、カットオフ値を指定します。この値は、環境出力データの座標系で指定した単位で指定します。時空間ウィンドウの空間リレーションシップのコンセプトについて、空間ウィンドウのサイズを定義します。 値をゼロにすると、距離の閾値が適用されません。このパラメータを空欄のままにすると、出力フィーチャクラスの範囲とフィーチャ数に基づきデフォルトの閾値が計算されます。 | Double |
Number_of_Neighbors (オプション) |
最小のまたは正確な近傍数を反映した整数。[K 個の最近隣フィーチャ(K Nearest Neighbors)] の場合、各フィーチャは指定された近傍数をもつことになります。[Inverse distance] または [固定距離]の場合、各フィーチャは少なくともこの数の近隣フィーチャをもつことになります(必要に応じて、近傍数を満たすために距離の閾値が一時的に引き上げられます)。アイランド ポリゴンが存在する場合に、[隣接] の空間リレーションシップのコンセプトの 1 つを選択すると、指定された数の最近隣ポリゴンがアイランド ポリゴンに関連付けられます。 | Long |
Row_Standardization (オプション) |
設計のサンプリングや適用される集約方式のためにフィーチャの分布に偏りがあると考えられる場合は、行を標準化することをお勧めします。
| Boolean |
Input_Table (オプション) |
入力フィーチャクラスにあるすべてのフィーチャを他のすべてのフィーチャに関連付ける数値ウェイトが格納されたテーブル。必須フィールドは、[入力フィーチャクラスの一意な ID(Input Feature Class Unique ID)] フィールド、[NID(近隣 ID)]、および [ウェイト] フィールドです。 | Table |
Date_Time_Field (オプション) |
各フィーチャのタイムスタンプを持つ日付フィールド。 | Field |
Date_Time_Interval_Type (オプション) |
時間の計測に使用する単位。
| String |
Date_Time_Interval_Value (オプション) |
タイム ウィンドウを構成する時間単位数を示す整数。 たとえば、[日付/時間の間隔タイプ] に [時間] を、[日付/時間の間隔値] に 3 を選択した場合、タイム ウィンドウは 3 時間になります。指定した空間ウィンドウ内およびタイム ウィンドウ内にあるフィーチャが近接フィーチャになります。 | Long |
コードのサンプル
次の Python ウィンドウ スクリプトは、GenerateSpatialWeightsMatrix(空間ウェイト マトリックスの作成)ツールの使用方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION")
次のスタンドアロン Python ウィンドウのスクリプトは、GenerateSpatialWeightsMatrix(空間ウェイト マトリックスの作成)ツールの使用方法を示しています。
# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the Hot-Spot Analysis Tool (Local Gi*)
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.gp.overwriteOutput = True
# Local variables...
workspace = "C:/Data"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Copy the input feature class and integrate the points to snap
# together at 500 feet
# Process: Copy Features and Integrate
cf = arcpy.CopyFeatures_management("911Calls.shp", "911Copied.shp",
"#", 0, 0, 0)
integrate = arcpy.Integrate_management("911Copied.shp #", "500 Feet")
# Use Collect Events to count the number of calls at each location
# Process: Collect Events
ce = arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")
# Add a unique ID field to the count feature class
# Process: Add Field and Calculate Field
af = arcpy.AddField_management("911Count.shp", "MyID", "LONG", "#", "#", "#", "#",
"NON_NULLABLE", "NON_REQUIRED", "#",
"911Count.shp")
cf = arcpy.CalculateField_management("911Count.shp", "MyID", "[FID]", "VB")
# Create Spatial Weights Matrix for Calculations
# Process: Generate Spatial Weights Matrix...
swm = arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID",
"euclidean6Neighs.swm",
"K_NEAREST_NEIGHBORS",
"#", "#", "#", 6,
"NO_STANDARDIZATION")
# Hot Spot Analysis of 911 Calls
# Process: Hot Spot Analysis (Getis-Ord Gi*)
hs = arcpy.HotSpots_stats("911Count.shp", "ICOUNT", "911HotSpots.shp",
"GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "NONE",
"#", "#", "euclidean6Neighs.swm")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()