ラベル | 説明 | データ タイプ |
入力ラスター/フィーチャ領域 | 最適なコリドーで接続される入力領域。 領域は、ラスターまたはフィーチャ データセットによって定義できます。 領域の入力がラスターの場合、領域は同じ値を持つ連続 (隣接) するセルのグループによって定義されます。 各領域には一意の番号を付ける必要があります。 領域の一部でないセルは NoData にする必要があります。 ラスター タイプは整数である必要があり、正または負の値を指定できます。 領域の入力がフィーチャ データセットの場合、ポリゴン、ポリライン、ポイントのいずれかを使用できます。 ポリゴン フィーチャの領域には、マルチパート ポリゴンは使用できません。 | Raster Layer; Feature Layer |
入力最適コリドー ポリゴン | 各入力領域を接続する最適なコリドーの出力ポリゴンまたはライン フィーチャクラス。 コリドー (またはライン) は、コリドーが同じルートを通過する場所では重複します。 各コリドー (またはライン) には一意の番号が付与され、属性テーブルの追加フィールドにはパスに関する特定情報が格納されます。 次のような追加フィールドがあります。
| Feature Class |
入力ラスターまたはフィーチャ バリア (オプション) | バリアを定義するデータセット。 バリアは、整数または浮動小数点ラスター、またはポイント、ライン、ポリゴン フィーチャのいずれかによって定義できます。 | Raster Layer; Feature Layer |
入力コスト ラスター (オプション) | 各セル内を平面的に通過するときにかかるインピーダンスまたはコストを定義するラスター。 各セル位置の値は、そのセル上を通過するための単位距離あたりのコストを表します。 セル内を通過する総コストを取得するために、各セル位置の値にセル解像度を乗算して、対角移動についても補正します。 コスト ラスターとして、整数値または浮動小数点値を使用できますが、負の値や 0 は使用できません (負またはゼロのコストは指定できません)。 | Raster Layer |
出力最適接続ライン (オプション) | 出力されるライン フィーチャクラスは、各入力領域を接続する最適なラインを識別します。 ラインは、パスが同じルートを通過する場所では重複します。 各パス (またはライン) は、一意の番号が付けられ、属性テーブルのその他のフィールドには、パスに関する特定の情報が格納されています。 次のような追加フィールドがあります。
| Feature Class |
出力隣接コリドー ポリゴン (オプション) | 各領域を、その最近隣領域またはコスト近傍のそれぞれに接続する最適なコリドーを識別する、出力ポリゴンまたはライン フィーチャクラス。 コリドー (またはライン) は、コリドーが同じルートを通過する場所では重複します。 各コリドーには一意の番号が付与され、属性テーブルの追加フィールドにはパスに関する特定情報が格納されます。 次のような追加フィールドがあります。
| Feature Class |
出力隣接接続ライン (オプション) | 各領域からその各コスト最近隣領域までの最適ラインを識別する出力ライン フィーチャクラス。 各コリドー (またはポリゴン) には一意の番号が付与され、属性テーブルの追加フィールドにはパスに関する特定情報が格納されます。 次のような追加フィールドがあります。
各パスは、一意のラインで表されるため、同じルートが最適である場所には複数のラインがあります。 | Feature Class |
コリドー作成方法 (オプション) | コリドーの作成方法を指定します。
注意:このリリースでは、コリドーを作成する方法は「固定幅」のみです。 デフォルト オプションが 1 つだけのため、このパラメーターは非アクティブになり、ツールのダイアログ ボックスには表示されません。 | String |
コリドー幅 (オプション) | 結果として得られるコリドーの幅を定義する距離。 値は 0 以上でなくてはなりません。 デフォルトは 0 です。 | Double |
距離計算の方法 (オプション) | 距離を平面 (平面地球) と測地線 (楕円体) のどちらの方法を用いて計算するかを指定します。
| String |
使用法
入力領域には、ラスターまたはフィーチャ データを使用できます。
ラスターの場合、領域は、同じ値を持つ連続 (隣接) しているセルのグループです。 入力領域がラスターで識別されるとき、ゾーン (同じ値を持つセル) が複数の領域から構成される場合、事前処理のステップとして、まず [リージョン グループ (Region Group)] ツールを実行して、各領域に個別値を割り当てます。 続いて、得られたラスターをこのツールの入力領域として使用します。
入力領域がポリゴン、ライン、ポイント データで識別されるときは、結果の領域は個別値を持つように、フィーチャ ID を使用してラスターに変換されます。 マルチパート ポリゴンを入力として使用することはできません。 マルチポイント データが指定された場合、ツールは、その位置にあるポイントの 1 つを領域値としてランダムに選択します。
ラスター化された入力フィーチャの領域は、環境のセル サイズで解像度を制御できます。 デフォルトでは、解像度が入力コスト ラスター (指定されている場合) の解像度に設定されます。
入力領域データにポリゴン フィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。 内部的なラスター化処理では、[ポリゴン → ラスター (Polygon to Raster)] ツールと同じデフォルトの [集約タイプ] ([セルの中心]) が使用されます。 つまり、セルの中心に配置されていないデータは、ラスター化された中間領域に含まれず、距離の計算では表されません。 たとえば、領域が出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。
これを回避するには、[ポリゴン → ラスター (Polygon to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[優先フィールド] の値を設定して、結果の出力をこのツールの入力として使用します。 または、入力フィーチャから適切な量の情報を捕捉できる、十分に小さいセル サイズを選択します。
領域入力がフィーチャの場合、ObjectID フィールドが領域識別子として使用されます。
[入力ラスターまたはフィーチャ バリア] パラメーターで指定された位置、[入力コスト ラスター] で値が NoData のセルの位置、マスク環境内にない位置はすべて、バリアとしての役割を果たします。
マスク解析環境は、フィーチャクラスまたはラスター データセットに設定することができます。 マスクがフィーチャの場合は、ラスターに変換されます。 値を含むセルは、マスク エリア内にある位置を定義します。 NoData セルは、マスク エリア外にある位置を定義し、バリアと見なされます。
デフォルトの処理範囲は [入力コスト ラスター] パラメーターの値の範囲と同じになります (コスト ラスターで指定されている場合)。それ以外の場合は、入力領域の範囲に設定されます。
[入力コスト ラスター] パラメーターは、アルゴリズムが乗算処理のため、値にゼロを入力できません。 コスト ラスターにゼロ値が含まれており、それらの値が最小コストを表している場合は、ゼロ値を小さい正の値 (0.01 など) に変更してからこのツールを実行してください。
[Con] ツールを使用すると、値がゼロのセルを別の値に変更することができます。 値ゼロのエリアが解析から除外されるエリアを表している場合は、まず [Set NULL] ツールを実行して、それらの値を NoData に変換します。
[入力コスト ラスター] パラメーターの値が入力されていると、ツールは、[コリドー幅] パラメーターの値に基づき、そのコスト サーフェスで計算を実行します。 これにより、指定された幅で最適なコリドーが確実に作成されます。サーフェスのエッジ付近に位置する領域は他の結果に接続されない可能性があります。
[入力ラスターまたはフィーチャ バリア] パラメーターの値に近い位置の領域を指定した場合も、コリドーが接続されない可能性があります。
[出力隣接コリドー ポリゴン] および [出力隣接接続ライン] パラメーターでは、コスト サーフェスが指定されていない場合、近傍はユークリッド距離で識別されます。 その場合は、領域の最も近い近傍は、距離が最も近い近傍になります。 ただし、コスト サーフェスが指定されている場合、移動コストが最も低いものが領域の最も近い近傍となるコスト距離によって近傍が識別されます。 コスト アロケーション処理は、近傍の領域を識別するために実行されます。
[出力隣接コリドー ポリゴン] パラメーターの値は、オプションの隣接する接続ラインの出力に生成されるパスから作成されます。 オプションの隣接する接続ラインの出力内にあるパスは、グラフ理論に変換されます。 領域は頂点、パスはエッジ、累積距離またはコストはエッジのウェイトになります。 パスのグラフ表現から最小スパニング ツリーが計算され、領域間を移動するのに必要な最適な接続ライン ネットワークが決定されます。 次に、最適な接続ライン ネットワークから最適なコリドー ポリゴン ネットワークが作成されます。
[出力最適接続ライン] パラメーターの値は、[出力オプション隣接接続ライン] パラメーターから生成されるパスのサブセットです。 このサブセットを計算するため、隣接接続ラインはグラフ理論に変換されます。 領域は頂点、パスはエッジ、累積距離またはコストはエッジのウェイトになります。 パスのグラフ表現から最小スパニング ツリーが計算され、領域間を移動するのに必要な最適な接続ラインのサブセットが決定されます。
各最適ラインは、まず、ポリゴンまたはマルチセル領域の外側の境界に到達します。 ツールは、領域の境界から追加の線分でパスを延長して、領域間の開始および終了ポイントを設定し、その間の移動を可能にします。 これらの線分に沿った移動の追加距離または追加コストはありません。
入力領域とアロケーション近傍の構成によって、パスは中間領域を通過して、近傍領域に到達できます。 そのパスが中間領域を移動すると、コストが発生します。
[出力隣接接続ライン] パラメーターの値は、最小スパニング ツリー ネットワークの代替ネットワークとして使用することができます。 この出力は、各領域を隣接するコスト領域と接続し、多くのパスを持つより複雑なネットワークを作成します。 フィーチャクラスは、そのまま使用したり、独自のネットワークの作成元として使用することができます。 これを行うには、[属性条件で選択] ボタン、[マップ] タブの 選択グループ、または [属性検索 (Select Layer By Attribute)] ツールを使用して、ネットワーク内で必要な特定のパスを選択します。 パスの選択は、エリアの知識と結果の属性テーブルのパスに関連付けられた統計情報に基づいて決定できます。
このツールで作成されるコリドーは、固定幅のコリドーです。 [コリドー幅] パラメーターは、コリドーの固定幅を距離として識別します。 [コリドー幅] パラメーターの値が 0 の場合、出力されるコリドーは最適なパス ラインになります。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
パラメーター
OptimalCorridorConnections(in_regions, out_optimal_polygons, {in_barriers}, {in_cost_raster}, {out_optimal_lines}, {out_neighbor_polygons}, {out_neighbor_lines}, {corridor_method}, {corridor_width}, {distance_method})
名前 | 説明 | データ タイプ |
in_regions | 最適なコリドーで接続される入力領域。 領域は、ラスターまたはフィーチャ データセットによって定義できます。 領域の入力がラスターの場合、領域は同じ値を持つ連続 (隣接) するセルのグループによって定義されます。 各領域には一意の番号を付ける必要があります。 領域の一部でないセルは NoData にする必要があります。 ラスター タイプは整数である必要があり、正または負の値を指定できます。 領域の入力がフィーチャ データセットの場合、ポリゴン、ポリライン、ポイントのいずれかを使用できます。 ポリゴン フィーチャの領域には、マルチパート ポリゴンは使用できません。 | Raster Layer; Feature Layer |
out_optimal_polygons | 各入力領域を接続する最適なコリドーの出力ポリゴンまたはライン フィーチャクラス。 コリドー (またはライン) は、コリドーが同じルートを通過する場所では重複します。 各コリドー (またはライン) には一意の番号が付与され、属性テーブルの追加フィールドにはパスに関する特定情報が格納されます。 次のような追加フィールドがあります。
| Feature Class |
in_barriers (オプション) | バリアを定義するデータセット。 バリアは、整数または浮動小数点ラスター、またはポイント、ライン、ポリゴン フィーチャのいずれかによって定義できます。 | Raster Layer; Feature Layer |
in_cost_raster (オプション) | 各セル内を平面的に通過するときにかかるインピーダンスまたはコストを定義するラスター。 各セル位置の値は、そのセル上を通過するための単位距離あたりのコストを表します。 セル内を通過する総コストを取得するために、各セル位置の値にセル解像度を乗算して、対角移動についても補正します。 コスト ラスターとして、整数値または浮動小数点値を使用できますが、負の値や 0 は使用できません (負またはゼロのコストは指定できません)。 | Raster Layer |
out_optimal_lines (オプション) | 出力されるライン フィーチャクラスは、各入力領域を接続する最適なラインを識別します。 ラインは、パスが同じルートを通過する場所では重複します。 各パス (またはライン) は、一意の番号が付けられ、属性テーブルのその他のフィールドには、パスに関する特定の情報が格納されています。 次のような追加フィールドがあります。
| Feature Class |
out_neighbor_polygons (オプション) | 各領域を、その最近隣領域またはコスト近傍のそれぞれに接続する最適なコリドーを識別する、出力ポリゴンまたはライン フィーチャクラス。 コリドー (またはライン) は、コリドーが同じルートを通過する場所では重複します。 各コリドーには一意の番号が付与され、属性テーブルの追加フィールドにはパスに関する特定情報が格納されます。 次のような追加フィールドがあります。
| Feature Class |
out_neighbor_lines (オプション) | 各領域からその各コスト最近隣領域までの最適ラインを識別する出力ライン フィーチャクラス。 各コリドー (またはポリゴン) には一意の番号が付与され、属性テーブルの追加フィールドにはパスに関する特定情報が格納されます。 次のような追加フィールドがあります。
各パスは、一意のラインで表されるため、同じルートが最適である場所には複数のラインがあります。 | Feature Class |
corridor_method (オプション) | コリドーの作成方法を指定します。 注意:このリリースでは、コリドーを作成する方法は「固定幅」のみです。 デフォルト オプションが 1 つだけのため、このパラメーターは非アクティブになり、ツールのダイアログ ボックスには表示されません。
| String |
corridor_width (オプション) | 結果として得られるコリドーの幅を定義する距離。 値は 0 以上でなくてはなりません。 デフォルトは 0 です。 | Double |
distance_method (オプション) | 距離を平面 (平面地球) と測地線 (楕円体) のどちらの方法を用いて計算するかを指定します。
| String |
コードのサンプル
次の Python ウィンドウ スクリプトは、OptimalCorridorConnections 関数の使用方法を示しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/arcpyexamples/data"
out_OCC_raster = OptimalCorridorConnections("InRegions.tif",
"OutCorridors.shp", "InBarriers.tif", "InCostRaster.tif",
"OutOptimalPaths.shp", "OutNbrPoly.shp", "OutNbrLines.shp",
"FIXED_WIDTH_CORRIDOR", 5000, "PLANAR")
既知の生息地間をつなぐ、野生動物のコリドーの最適なネットワークを計算します。
# Name: OptimalCorridorConnections_standalone.py
# Description: Calculates corridor.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set environment settings
env.workspace = "C:/arcpyexamples/data"
# Set local variables
regions = "Lakes.tif"
outCorridors = "NewCorridors.shp"
roadBarriers = "Roads.shp"
costSurface = "CostSurface.tif"
optimalLines = "OutCorridorCenterLines.shp"
outAllCorridors = "OutAllCorridors.shp"
outAllLines = "OutAllCenterLines.shp"
corridorMethod = "FIXED_WIDTH_CORRIDOR"
corridorWidth = 5000
distanceMethod = "GEODESIC"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute OptimalCorridorConnections
OptimalCorridorConnections(regions, outCorridors, roadBarriers,
costSurface, optimalLines,
outAllCorridors, outAllLines,
corridorMethod, corridorWidth, distanceMethod)