イベントの集計(Collect Events) (空間統計)
サマリ
犯罪や病気のインシデントなどのイベント データを加重ポイント データに変換します。
図
使用法
-
[イベントの集計(Collect Events)] を実行すると、一致するポイントが結合され、入力フィーチャクラス内のすべての一意な場所を格納した出力フィーチャクラスが作成されます。次に、「ICOUNT」という名前のフィールドが追加され、それぞれの一意な場所でのすべてのインシデントの合計が格納されます。
-
このツールで結合されるのは、完全に同一の X と Y の重心座標をもつフィーチャだけです。[イベントの集計(Collect Events)] ツールを実行する前に、[インテグレート(Integrate)] ツールで近隣のフィーチャをスナップするとよいかもしれません。
注意:[インテグレート] ツールを実行すると、フィーチャ ジオメトリが永続的に変更されます。[インテグレート] ツールを使用する前に、必ずフィーチャクラスのバックアップ コピーを作成してください。
-
[ホット スポット分析(Getis-Ord Gi*)]、[クラスタ/外れ値分析(Local Moran's I)]、[空間的自己相関分析(Morans I)] などのツールでは、個々のインシデントではなく加重ポイントが必要です。[イベントの集計(Collect Events)] は、一致するフィーチャが入力フィーチャクラスに格納されている状態でウェイトを作成する場合に使用できます。
-
このツールは、ポリゴンやライン データについて使用することもできますが、実際には、イベント、インシデント、またはその他の固定ポイント フィーチャ データでの使用にしか適していません。ラインとポリゴン フィーチャの場合、フィーチャの一致はフィーチャの真のジオメトリ重心に基づきます。マルチポイント、ポリライン、またはマルチパートを伴うポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 1、ライン フィーチャの場合は長さ、ポリゴン フィーチャの場合は面積です。
-
[入力フィーチャクラス] が投影されていない場合(つまり、座標が、度、分、および秒で与えられた場合)、または出力座標系が地理座標系に設定された場合、弦の測定値を使用して距離が計算されます。少なくとも互いに約 30°の範囲内のポイントに対して、すばやく計算することができ、真の測地距離の非常に優れた推定値が得られるため、弦距離の測定値が使用されます。弦距離は、地球の真の扁平楕円体形状ではなく、球体に基づいて計算されます。地球の表面上の 2 点が与えられた場合、2 点間の弦の距離は、3 次元の地球内部を通過して 2 点を接続するラインの長さになります。弦距離は、メートル単位でレポートされます。
注意:分析範囲が 30°を越えて広がる場合、必ずデータを投影変換してください。30°を超える場合、弦距離は測地距離の良好な推定値にはなりません。
-
それぞれのポイント/マルチポイントのパート/マルチパート データをシングルパート フィーチャとして扱う場合は、[マルチパート → シングルパート(Multipart To Singlepart)] ツールを実行してから、シングルパート フィーチャクラスに対して [イベントの集計(Collect Events)] を実行します。詳細については、「マルチポイント データの処理」をご参照ください。
-
この機能は、出力フィーチャクラスに加え、生成された出力値として、カウント フィールドの名前、および任意の 1 つの場所に生じる最大カウント値も渡します。生成されたこれらの出力値は、モデルやスクリプトでこのツールを使用する場合に有用です。
-
ArcMap でこのツールを実行すると、自動的に、コンテンツ ウィンドウに出力フィーチャクラスが、[ICOUNT] フィールドにデフォルトのレンダリングが適用された状態で追加されます。等級シンボルを使ったレンダリング方式は、<ArcGIS>/ArcToolbox/Templates/Layers内のレイヤ ファイルで定義されています。必要に応じて、テンプレート レイヤ シンボルをインポートすれば、デフォルトのレンダリングを再適用できます。
構文
パラメータ | 説明 | データ タイプ |
Input_Incident_Features |
イベントまたはインシデント データを表すフィーチャ。 | Feature Layer |
Output_Weighted_Point_Feature_Class |
重み付きポイント データを格納するための出力フィーチャクラス。 | Feature Class |
コードのサンプル
次の Python ウィンドウ スクリプトは、Collect Events(イベントの集計)ツールの使用方法を示しています。
import arcpy
arcpy.env.workspace = "C:/Data"
arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")
次のスタンドアロン Python ウィンドウのスクリプトは、Collect Events(イベントの集計)ツールの使用方法を示しています。
# 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()