概要
空間ウェイト マトリックス ファイル (*.swm) を構築して、データセット内のフィーチャ間の空間リレーションシップを表します。
図
使用法
このツールでは空間ウェイト マトリックス ファイル (*.swm) が出力されます。[空間リレーションシップのコンセプト] の指定を必要とする [ホット スポット分析 (Hot_Spot_Analysis)] などのツールでは、空間ウェイト マトリックス ファイルが許容されます。[空間リレーションシップのコンセプト] パラメーターの場合は、GET_SPATIAL_WEIGHTS_FROM_FILE を選択し、[ウェイト マトリックス ファイル] パラメーターの場合は、このツールを使って作成する空間ウェイト ファイルのフル パスを指定します。
このツールでは、生成される空間ウェイト マトリックス ファイルの特性として、フィーチャ数、接続性、最小、最大、平均近傍数もレポートされます。このサマリーには、[結果] ウィンドウからアクセスできます。[結果] ウィンドウのメッセージ エントリを右クリックして、[表示] を選択して表示します。このサマリーを使うことで、すべてのフィーチャに 1 つ以上の近隣フィーチャを確保できます。一般的に、フィーチャ接続性には、低い値を設定することが望ましいといえます。大きなデータセット (最小で 8 つの近隣フィーチャ) の場合は特にこれがいえます。
時空間分析の場合は、 [空間リレーションシップのコンセプト] パラメーターに対して SPACE_TIME_WINDOW を選択します。空間を定義するには、[閾値距離] の値を指定します。時間を定義するには、[日付/時間フィールド] と、[日付/時間のタイプ] (時間または日など) と [日付/時間の間隔値] の両方を指定します。[日付/時間の間隔値] は整数です。たとえば、「1000」フィートと入力し、HOURS を選択し、[日付/時間の間隔値] に「3」と入力した場合、間隔が 1,000 フィート以内で 3 時間以内に発生するフィーチャが近接フィーチャと見なされます。
空間ウェイト マトリックス ファイル (*.swm) は、リレーションシップのコンセプトを一連のフィーチャ間で生成、保存、再利用、および共有できるようにするためのものです。パフォーマンス向上のため、このファイルはバイナリ ファイル形式で作成されます。フィーチャのリレーションシップは疎行列として保存されるため、0 ではないリレーションシップのみが SWM ファイルに書き込まれます。一般的に、SWM ファイルに 1,500 万を超える、0 ではないリレーションシップが含まれる場合でも、ツールは十分に機能します。ただし、SWM ファイルの使用時にメモリ エラーが発生した場合は、フィーチャのリレーションシップの定義方法を再度見直す必要があります。原則として、空間ウェイト マトリックスでは、すべてのフィーチャが 1 つ以上の近接フィーチャを持ち、ほとんどのフィーチャが約 8 つの近接フィーチャを持ち、約 1,000 を超える近接フィーチャを持つフィーチャがないようにしてください。
[入力フィーチャクラス] が投影されていない場合 (つまり、座標が、度、分、および秒で与えられた場合)、または出力座標系が地理座標系に設定された場合、弦の測定値を使用して距離が計算されます。少なくとも互いに約 30°の範囲内のポイントに対して、すばやく計算することができ、真の測地距離の非常に優れた推定値が得られるため、弦距離の測定値が使用されます。弦距離は、短回転楕円体に基づいています。地球の表面上の 2 点が与えられた場合、2 点間の弦の距離は、3 次元の地球内部を通過して 2 点を接続するラインの長さになります。弦距離は、メートル単位でレポートされます。
弦距離を解析で使用するときに、[閾値距離] パラメーターを指定する場合、メートル単位で指定する必要があります。
ArcGIS 10.2.1 より前は、選択したパラメーターおよび環境設定によって、地理座標 (度、分、秒) を使用して計算が実行される場合、警告メッセージが表示されていました。この警告は、距離の計算を正確に行うために、投影座標系にデータを投影変換することを薦めるメッセージでした。このツールは、10.2.1 以降、地理座標計算が必要なときに、必ず弦距離を計算するようになりました。
-
ライン フィーチャとポリゴン フィーチャの場合は、距離の計算にフィーチャの重心が使用されます。マルチポイント、ポリライン、または複数のパートを持つポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 1、ライン フィーチャの場合は長さ、ポリゴン フィーチャの場合は面積です。
個別値フィールドは、このツールを実行して得られたフィーチャ リレーションシップにリンクしています。そのため、個別値は、すべてのフィーチャについて一意でなければならず、通常はフィーチャクラスとともに保持される永続的なフィールドに置かれます。一意の ID フィールドがない場合は、フィーチャクラス テーブルに新しい整数フィールドを追加して ([フィールドの追加 (Add Field)])、フィールド値が FID または OBJECTID フィールドと等しくなるように計算することで、作成できます (フィールド演算 (Calculate Field))。FID および OBJECTID フィールドの値は、フィーチャクラスをコピーまたは編集するときに変更される場合があります。そのため、これらのフィールド値を [個別値] パラメーターで直接使用することはできません。
[近傍数] パラメーターは、逆距離または固定距離の空間リレーションシップのコンセプトについて、[閾値距離] パラメーターをオーバーライドすることができます。10 マイルの閾値距離を指定し、[近傍数] パラメーターに 3 を指定した場合、すべてのフィーチャは、近隣フィーチャを検索するために閾値距離を増やす必要があったとしても、3 つ以上の近隣フィーチャを受け取ります。閾値距離は、最小近傍数を満たすことのできない場合にのみ引き上げられます。
-
[空間リレーションシップのコンセプト] パラメーターの CONVERT_TABLE オプションを使用すれば、ASCII 空間ウェイト マトリックス ファイルを SWM 形式の空間ウェイト マトリックス ファイルに変換できます。まず、ASCII ウェイトを書式付きのテーブル (Excel を使用したものなど) に配置する必要があります。
ポリゴン フィーチャの場合は、ほぼ常に [行を標準化] パラメーターに ROW を選択することができます。[行の標準化] を行うと、解析対象の変数の実際の空間分布を反映するのではなく、各フィーチャの近傍の数が集約方式またはサンプリング プロセスの関数になるときに、偏りが緩和されます。
-
このツールのパラメーターの詳細については、「空間関係のモデリング」のヘルプ トピックをご参照ください。
空間ウェイト マトリックス ファイルを使用できるツールは、分析に先立ってフィーチャ ジオメトリを出力座標系に投影します。すべての数学的演算は、出力座標系に基づいて実行されます。したがって、出力座標系の設定が入力フィーチャクラスの空間参照と一致しない場合は、空間ウェイト マトリックス ファイルを使用するすべての分析について、出力座標系が空間ウェイト マトリックス ファイルの作成時に使用された設定と一致していることを確認するか、または空間ウェイト マトリックス ファイルと関連付けられた空間参照に一致するように入力フィーチャクラスを投影してください。
構文
arcpy.stats.GenerateSpatialWeightsMatrix(Input_Feature_Class, Unique_ID_Field, Output_Spatial_Weights_Matrix_File, Conceptualization_of_Spatial_Relationships, {Distance_Method}, {Exponent}, {Threshold_Distance}, {Number_of_Neighbors}, {Row_Standardization}, {Input_Table}, {Date_Time_Field}, {Date_Time_Interval_Type}, {Date_Time_Interval_Value})
パラメーター | 説明 | データ タイプ |
Input_Feature_Class | フィーチャの空間関係の評価対象となるフィーチャクラス。 | Feature Class |
Unique_ID_Field | 入力フィーチャクラスのすべてのフィーチャで値が異なる整数フィールドです。個別値フィールドがない場合は、整数フィールドをフィーチャクラス テーブルに追加し、FID/OBJECTID フィールドに等しいフィールド値を計算することによって、作成できます。 | Field |
Output_Spatial_Weights_Matrix_File | 作成する空間ウェイト マトリックス ファイル (*.swm) についてのフル パス。 | File |
Conceptualization_of_Spatial_Relationships | フィーチャ間の空間リレーションシップをどのようにコンセプト化するかを指定します。
| String |
Distance_Method (オプション) | 各フィーチャから隣接フィーチャまでの距離の計算方法を指定します。
| String |
Exponent (オプション) | 逆距離の計算のためのパラメーター。典型的な値は 1 または 2 です。 | Double |
Threshold_Distance (オプション) | 逆距離または固定距離の空間リレーションシップのコンセプトについて、カットオフ値を指定します。この値は、環境出力データの座標系で指定した単位で指定します。時空間ウィンドウの空間リレーションシップのコンセプトについて、空間ウィンドウのサイズを定義します。 値をゼロにすると、距離の閾値が適用されません。このパラメーターを空欄のままにすると、出力フィーチャクラスの範囲とフィーチャ数に基づきデフォルトの閾値が計算されます。 | Double |
Number_of_Neighbors (オプション) | 最小のまたは正確な近傍数を反映した整数。K_NEAREST_NEIGHBORS の場合、各フィーチャは指定された近傍数を持つことになります。INVERSE_DISTANCE または FIXED_DISTANCE の場合、各フィーチャは少なくともこの数の近隣フィーチャを持つことになります (必要に応じて、近傍数を満たすために距離の閾値が一時的に引き上げられます)。[空間リレーションシップのコンセプト] のいずれかの隣接を選択した場合、各ポリゴンにはこの最小近傍数が割り当てられます。この近傍数よりも少ない近傍数を持つポリゴンに対して、フィーチャの中心点との近接度に基づいて近隣フィーチャが追加されます。 | 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 |
コードのサンプル
GenerateSpatialWeightsMatrix (空間ウェイト マトリックスの生成) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、GenerateSpatialWeightsMatrix (空間ウェイト マトリックスの生成) ツールの使用方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION")
GenerateSpatialWeightsMatrix (空間ウェイト マトリックスの生成) の例 2 (スタンドアロン Python スクリプト)
次のスタンドアロン 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 property to overwrite existing output, by default
arcpy.env.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())
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい
関連トピック
- 空間関係のモデリング ツールセットの概要
- 空間的自己相関分析 (Spatial Autocorrelation (Global Moran's I))
- 高/低クラスター分析 (High/Low Clustering (Getis-Ord General G))
- クラスター/外れ値分析 (Cluster and Outlier Analysis (Anselin Local Moran's I))
- ホット スポット分析 (Hot Spot Analysis (Getis-Ord Gi*))
- グループ分析 (Grouping Analysis)
- 空間ウェイト
- 空間関係のモデリング
- ネットワーク空間ウェイトの生成 (Generate Network Spatial Weights)