概要
観測者が地上でオブジェクトを見ることができるエリアを作成します。入力観測点によって、観測者 (地上にいる人または火の見櫓の監視人など) または観測されるオブジェクト (風力タービン、給水塔、乗り物、またはその他の人など) を表すことができます。
観測者と観測対象オブジェクトはいずれも、地面からの高さに設定することができます。これらの高さは、可視領域を決定する際に使用されます。たとえば、風力タービンの高さが 300 フィート、地上に立っている人の身長が 6 フィートの場合に計算される可視領域は、風力タービンの高さが 200 フィート、地上に立っている人の身長が 5 フィートの場合に計算される可視領域よりも大きくなるのが一般的です。
結果レイヤーには、入力観測点から入力サーフェス ラスターの各セル位置を見通せた回数が記録されます。表示されないセルには NoData 値が割り当てられます。
図
使用法
このラスター解析 ポータル ツールは、ArcGIS Enterprise の ポータルにサイン インすると使用できます。このポータルに、ArcGIS Image Server 用に構成された Raster Analysis があります。ツールを起動すると、ArcGIS Pro がクライアントとしてサービスを提供し、ArcGIS Enterprise とフェデレートされているサーバーで処理が発生します。ポータル ツールはポータルから入力としてレイヤーを受け取り、ポータルに出力を作成します。
入力ラスター レイヤーは、ポータルから入力されたレイヤー、イメージ サービスへの URI または URL、[Image Server レイヤーの作成 (Make Image Server Layer)] ツールの出力に対応しています。入力フィーチャ レイヤーには、ポータルからのレイヤー、フィーチャ サービスへの URI または URL を使用できます。このツールは、ローカルのラスター データまたはレイヤーをサポートしません。このポータル ツールへの入力としてはローカルのフィーチャ データとレイヤーを使用できますが、ポータルのレイヤーを入力することをお勧めします。
各セルの中心の可視領域は、目標点と各観測点の間の見通し線テストにより判定されます。
構文
arcpy.ra.CreateViewshed(inputElevationSurface, inputObserverFeatures, outputName, {optimizeFor}, {maximumViewingDistanceType}, {maximumViewingDistance}, {maximumViewingDistanceField}, {minimumViewingDistanceType}, {minimumViewingDistance}, {minimumViewingDistanceField}, {viewingDistanceIs3D}, {observersElevationType}, {observersElevation}, {observersElevationField}, {observersHeightType}, {observersHeight}, {observersHeightField}, {targetHeightType}, {targetHeight}, {targetHeightField}, {aboveGroundLevelOutputName})
パラメーター | 説明 | データ タイプ |
inputElevationSurface | 可視領域の計算に使用する標高サーフェス。 入力サーフェスの鉛直単位が水平単位と異なる場合 (標高値がフィート単位であり、座標系がメートル単位である場合など)、そのサーフェスの鉛直座標系を定義しておく必要があります。これは、このツールでは可視領域解析の Z 係数の計算に鉛直 (Z) 単位と水平 (XY) 単位が使用されるためです。鉛直座標系が定義されていないと、Z 単位の情報を取得できないため、このツールは Z 単位が XY 単位と同じであると判断します。この場合には、内部 Z 係数 1.0 が解析に使用されるので、予期しない結果が生成される可能性があります。 標高サーフェスは、整数または浮動少数点にすることができます。 | Raster Layer; Image Service; String |
inputObserverFeatures | 可視領域を計算する際の観測点の位置を表すポイント フィーチャ。 | Feature Set |
outputName | 出力ラスター サービスの名前。 デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。レイヤー名がすでに存在する場合は、別の名前を指定するよう求められます。 | String |
optimizeFor (オプション) | 可視領域の計算に使用する最適化方法。
| String |
maximumViewingDistanceType (オプション) | 最大表示距離を決定する方法。
| String |
maximumViewingDistance (オプション) | これは、表示可能エリアの計算を停止する距離を指定するオプションです。この距離を超えると、観測点およびその他のオブジェクトが互いに見えるかどうかはわかりません。 単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。 デフォルトはマイルです。 | Linear Unit |
maximumViewingDistanceField (オプション) | これは、観測点ごとの最大表示距離を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの XY 単位と同じ単位にする必要があります。 最大表示距離は、表示可能エリアの計算を停止する距離を指定するオプションです。この距離を超えると、観測点およびその他のオブジェクトが互いに見えるかどうかはわかりません。 | Field |
minimumViewingDistanceType (オプション) | 最大表示距離を決定する方法を選択します。
| String |
minimumViewingDistance (オプション) | これは、表示可能エリアの計算を開始する距離を指定するオプションです。この距離よりも近くにあるサーフェス上のセルは出力に表示されませんが、最小表示距離と最大表示距離の間にあるセルの可視領域をブロックできます。 単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。 デフォルトの単位はメートルです。 | Linear Unit |
minimumViewingDistanceField (オプション) | これは、観測点ごとの最小表示距離を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの XY 単位と同じ単位にする必要があります。 最小表示距離は、表示可能エリアの計算を開始する距離を定義します。この距離よりも近くにあるサーフェス上のセルは出力に表示されませんが、最小表示距離と最大表示距離の間にあるセルの可視領域をブロックできます。 | Field |
viewingDistanceIs3D (オプション) | 最小表示距離パラメーターと最大表示距離パラメーターを 3 次元で計測するか単純な 2 次元で計測するかを指定します。2D 距離は、海面と同じ高さの投影位置を使用して観測点と対象の間で計測される単純な直線距離です。3D 距離は、相対的な高さが考慮されるため、より現実的な値になります。
| Boolean |
observersElevationType (オプション) | 観測点の標高を決定する方法。
| String |
observersElevation (オプション) | これは、観測点の位置の標高です。 このパラメーターを指定しなかった場合、観測点の標高は共一次内挿法を使用してサーフェス ラスターから取得されます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ内のフィールドに設定してください。 単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。 デフォルトの単位はメートルです。 | Linear Unit |
observersElevationField (オプション) | これは、観測点の標高を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの Z 単位と同じ単位にする必要があります。 このパラメーターを指定しなかった場合、観測点の標高は共一次内挿法を使用してサーフェス ラスターから取得されます。 | Field |
observersHeightType (オプション) | 観測点の高度を決定する方法。
| String |
observersHeight (オプション) | これは、観測点の位置に使用される高度です。 単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。 デフォルトの単位はメートルです。 | Linear Unit |
observersHeightField (オプション) | これは、観測点の高度を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの Z 単位と同じ単位にする必要があります。 | Field |
targetHeightType (オプション) | 目標点の高度を決定する方法。
| String |
targetHeight (オプション) | これは、可視性の評価に使用される地上の構造物または人の高さです。生成される可視領域は、観測点からこれらの他のオブジェクトを見ることができるエリアです。その逆も同じことが当てはまります。その他のオブジェクトから観測点を見ることができます。 単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。 デフォルトの単位はメートルです。 | Linear Unit |
targetHeightField (オプション) | これは、目標点の高度を指定するために使用されるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの Z 単位と同じ単位にする必要があります。 | Field |
aboveGroundLevelOutputName (オプション) | 出力 AGL (地上レベル) ラスターの名前。AGL の出力は、見えないセルが 1 つ以上の観測点から見えるようにするためにセルに追加する必要がある最小の高さで各セルの値が構成されるラスターとなります。この出力ラスターでは、すでに見通せるセルには値 0 が割り当てられます。 | String |
派生した出力
名前 | 説明 | データ タイプ |
outputRaster | 出力の可視領域ラスター。 | ラスター レイヤー |
outputAboveGroundLevelRaster | 出力 AGL (地上レベル) ラスター。 | ラスター レイヤー |
コードのサンプル
この例では、指定されたサーフェスと観測点を使用して、可視領域イメージ サービスを作成します。
import arcpy
arcpy.CreateViewshed_ra(
"https://myserver/rest/services/elevation/ImageServer",
"https://myserver/rest/services/destination/FeatureServer/0",
"outview1", "SPEED", "DISTANCE", "9 Miles", "#", "DISTANCE",
"0 Meters", "#", "2D", "ELEVATION", "#", "#", "HEIGHT",
"6 Feet", "#", "HEIGHT", "3 Feet", "#", "outagl1")
この例では、指定されたサーフェスと観測点を使用して、可視領域イメージ サービスを作成します。
#---------------------------------------------------------------------------
# Name: CreateViewshed_example02.py
# Description: Creates a viewshed image service raster from given surface
# and observer points.
#
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inSurface = "https://myserver/rest/services/elevation/ImageServer"
inObservers = "https://myserver/rest/services/destination/FeatureServer/0"
outputViewshed = "outview1"
optimizeFor = "Speed"
maxDistType = "Distance"
maxDist = "9 Miles"
maxDistField = "#"
minDistType = "Distance"
minDist = "0 Miles"
minDistField = "#"
distanceIs3D = "2D"
obsElevationType = "Elevation"
obsElevation = "#"
obsElevationField = "#"
obsOffsetType = "Height"
obsOffset = "6 Feet"
obsOffsetField = "#"
surfOffsetType = "Height"
surfOffset = "3 Feet"
surfOffsetField = "#"
outputAgl = "outagl1"
# Execute Create Viewshed raster analysis tool
arcpy.CreateViewshed_ra(
inSurface, inObservers, outputViewshed, optimizeFor,
maxDistType, maxDist, maxDistField, minDistType, minDist,
minDistField, distanceIs3D, obsElevationType, obsElevation,
obsElevationField, obsOffsetType, obsOffset, obsOffsetField,
surfOffsetType, surfOffset, surfOffsetField, outputAgl)
環境
ライセンス情報
- Basic: 次のものが必要 ArcGIS Image Server
- Standard: 次のものが必要 ArcGIS Image Server
- Advanced: 次のものが必要 ArcGIS Image Server