Spatial Analyst のライセンスで利用可能。
概要
2 つ以上の領域間に最小コスト接続ネットワークを生成します。
図
使用法
入力領域には、ラスターまたはフィーチャ データを使用できます。
ラスターの場合、領域は、同じ値を持つ連続 (隣接) しているセルのグループです。入力領域がラスターで識別されるとき、ゾーン (同じ値を持つセル) が複数の領域から構成される場合、事前処理のステップとして、まず [リージョン グループ (Region Group)] ツールを実行して、各領域に個別値を割り当てます。結果のラスターを [コスト接続性 (Cost Connectivity)] ツールの入力領域として使用します。
入力領域がポリゴン、ライン、ポイント データで識別されるときは、結果の領域は個別値を持つように、フィーチャ ID を使用してラスターに変換されます。そのため、マルチパート ポリゴンは入力に使用できません。マルチポイント データが入力された場合、[コスト接続性 (Cost Connectivity)] ツールは、その位置にあるポイントの 1 つを領域値としてランダムに選択します。
ラスター化された入力フィーチャの領域は、[セル サイズ] 環境で解像度を制御できます。デフォルトでは、解像度が入力コスト ラスターの解像度に設定されます。
入力のソース データにポリゴンフィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。内部的なラスター化処理では、[ポリゴン → ラスター (Polygon to Raster)] ツールと同じデフォルトの [集約タイプ] (CELL_CENTER) が使用されます。つまり、セルの中心に配置されていないデータは、ラスター化された中間領域に含まれず、距離の計算では表されません。たとえば、領域が出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。
この状況を回避するには、中間的な手順として、[ポリゴン → ラスター (Polygon to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[優先フィールド] を設定して、結果の出力を [コスト接続性 (Cost Connectivity)] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、十分に小さいセル サイズを選択することもできます。
領域の入力がフィーチャである場合は、ObjectID フィールド (たとえば、フィーチャ入力のタイプによって、OID または FID など) が使用されます。
[入力コスト ラスター] で NoData のセル位置は、バリアの役割を果たします。
入力領域データとコスト ラスターの範囲が異なる場合、デフォルトの出力範囲は両者の交差部分です。
このアルゴリズムは乗算処理なので、コスト ラスターに値ゼロを含めることができません。コスト ラスターに値ゼロが含まれており、それらの値が最小コストを表している場合は、まず [Con] ツールを実行して、値ゼロを小さい正の値 (0.01 など) に変更します。その後で [コスト接続性 (Cost Connectivity)] ツールを実行してください。値ゼロのエリアが解析から除外されるエリアを表している場合は、まず [Set NULL] ツールを実行して、それらの値を NoData に変更します。その後で [コスト接続性 (Cost Connectivity)] ツールを実行してください。
[隣接する接続の出力フィーチャクラス] では、近傍はユークリッド距離ではなく、コスト距離で識別されます。そのため、領域の最も近い近傍は、距離が最も近い近傍ではなく、移動コストが最も低い近傍になります。コスト アロケーション処理は、近傍の領域を識別するために実行されます。
最適な出力ネットワークは、オプションの隣接する接続の出力で生成されるパスから作成されます。オプションの隣接する接続の出力内にあるパスは、グラフ理論に変換されます。領域は頂点、パスはエッジ、累積コストはエッジのウェイトになります。パスのグラフ表現から最小スパニング ツリーが計算され、領域間を移動するのに必要な最小コスト パス ネットワークが決定されます。
各最小コスト パスは、まず、ポリゴンまたはマルチセル領域の外側の境界に到達します。ツールは、領域の境界から追加の線分でパスを延長して、領域間の開始および終了ポイントを設定し、その間の移動を可能にします。これらの線分に沿った移動の追加コストはありません。
[コスト距離 (Cost Distance)] および [コスト パス (Cost Path)] ツールを使用すると、事前情報に基づき、最小スパニング ツリー内で直接接続されていない領域を接続できます。たとえば、特定の領域で、消防士が領域から退避するために、代替の避難ルートが必要な場合があります。[コスト パス (Cost Path)] の結果のパスは領域のエッジにしか到達しないため、それ以降のネットワーク解析を実行するために、統合化されたネットワーク内でこれらの追加パスを使用する場合は、領域内でこれらのパスを延長して、最小スパニング ツリー ネットワーク内のパスと接続する必要があります。
オプションの隣接する接続の出力は、最小スパニング ツリー ネットワークの代替ネットワークとして使用することができます。この出力は、各領域を隣接するコスト領域と接続するため、多くのパスを持つより複雑なネットワークを作成します。フィーチャクラスは、そのまま使用したり、独自のネットワークの作成元として使用することができます。そのためには、[選択] ドロップダウン リストの [属性条件で選択] ツール、[ツール] ツールバーの [フィーチャの選択] ツール、または [選択 (Select)] ジオプロセシング ツールを使用して、ネットワーク内で使用する特定のパスを選択できます。 パスの選択は、エリアの知識と結果の属性テーブルのパスに関連付けられた統計情報に基づいて決定できます。
結果のネットワーク (最小スパニング ツリーまたはオプションの隣接する接続) は、Network Analyst ネットワークに変換して、その他のネットワーク解析を実行できます。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
CostConnectivity(in_regions, in_cost_raster, out_feature_class, {out_neighbor_paths})
パラメーター | 説明 | データ タイプ |
in_regions | 最小コストネットワークで接続される入力領域。 領域は、ラスターまたはフィーチャ データセットによって定義できます。 領域の入力がラスターの場合、領域は同じ値を持つ連続 (隣接) するセルのグループによって定義されます。各領域には一意の番号を付ける必要があります。領域の一部でないセルは NoData にする必要があります。ラスター タイプは整数である必要があり、正または負の値を指定できます。 領域の入力がフィーチャ データセットの場合、ポリゴン、ライン、ポイントのいずれかを使用できます。ポリゴン フィーチャの領域には、マルチパート ポリゴンは使用できません。 | Raster Layer; Feature Layer |
in_cost_raster | 各セル内を平面的に通過するときにかかるインピーダンスまたはコストを定義するラスター。 各セル位置の値は、そのセル上を通過するための単位距離あたりのコストを表します。セル内を通過する総コストを取得するために、各セル位置の値にセル解像度を乗算して、対角移動についても補正します。 コスト ラスターとして、整数値または浮動小数点値を使用できますが、負の値や 0 は使用できません (負またはゼロのコストは指定できません)。 | Raster Layer |
out_feature_class | 各入力領域を接続するために必要な、パスの最適 (最小コスト) ネットワークの出力ポリライン フィーチャクラス。 各パス (またはライン) は、一意の番号が付けられ、属性テーブルのその他のフィールドには、パスに関する特定の情報が格納されています。これらのフィールドには次のようなものがあります。
この情報から、ネットワーク内のパスに対する理解を深めることができます。 各パスは、一意のラインで表されるため、パスが同じルートを移動する場所には複数のラインがあります。 | Feature Class |
out_neighbor_paths (オプション) | 各領域からその各コスト最近隣領域までのすべてのパスを特定する出力ポリライン フィーチャクラス。 各パス (またはライン) は、一意の番号が付けられ、属性テーブルのその他のフィールドには、パスに関する特定の情報が格納されています。これらのフィールドには次のようなものがあります。
この情報から、ネットワーク内のパスに対する理解を深めることができます。これは、必要に応じて削除すべきパスを決定する場合に特に有用です。 各パスは、一意のラインで表されるため、パスが同じルートを移動する場所には複数のラインがあります。 | Feature Class |
コードのサンプル
CostConnectivity (コスト接続性) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトで、[CostConnectivity (コスト接続性)] ツールの使用方法を示します。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
CostConnectivity("regions.shp", "cost_ras", "C:/sapyexamples/output/costnetwork", "C:/sapyexamples/output/costneigh")
CostConnectivity (コスト接続性) の例 2 (スタンドアロン スクリプト)
2 つの入力領域間を接続するパスの最適な最小コスト ネットワークを生成します。
# Name: CostConnectivity_Ex_02.py
# Description: Calculates the least-cost network
# 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
inRegionData = "regions.shp"
inCostRaster = "cost_ras"
outCostNetwork = "C:/sapyexamples/output/costnetwork"
outOptCostNeigh = "C:/sapyexamples/output/costneigh"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Cost Connectivity
CostConnectivity(inRegionData, inCostRaster, outCostNetwork, outOptCostNeigh)
環境
ライセンス情報
- Basic: 次のものが必要 Spatial Analyst
- Standard: 次のものが必要 Spatial Analyst
- Advanced: 次のものが必要 Spatial Analyst