可視領域の作成 (Create Viewshed) (ラスター解析)

概要

観測者が地上でオブジェクトを見ることができるエリアを作成します。入力観測点によって、観測者 (地上にいる人または火の見櫓の監視人など) または観測されるオブジェクト (風力タービン、給水塔、乗り物、またはその他の人など) を表すことができます。

観測者と観測対象オブジェクトはいずれも、地面からの高さに設定することができます。これらの高さは、可視領域を決定する際に使用されます。たとえば、風力タービンの高さが 300 フィート、地上に立っている人の身長が 6 フィートの場合に計算される可視領域は、風力タービンの高さが 200 フィート、地上に立っている人の身長が 5 フィートの場合に計算される可視領域よりも大きくなるのが一般的です。

結果レイヤーには、入力観測点から入力サーフェス ラスターの各セル位置を見通せた回数が記録されます。表示されないセルには NoData 値が割り当てられます。

[可視領域の作成] ツール

使用法

  • このラスター解析 ポータル ツールは、ArcGIS Enterprise「ArcGIS Enterprise の解析について」へのリンク ポータルにサイン インすると使用できます。このポータルに、ArcGIS Image Server 「ラスター解析の設定と配置」へのリンク用に構成された Raster Analysis 「ArcGIS Image Server とは」へのリンク があります。ツールを起動すると、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
(オプション)

可視領域の計算に使用する最適化方法。

  • SPEEDこの方法を使用すると、処理速度が最適化され、結果の精度がやや落ちる一方で、パフォーマンスが向上します。これがデフォルトです。
  • ACCURACYこの方法では、処理時間が長くなる代わりに、結果の精度が最適化されます。
String
maximumViewingDistanceType
(オプション)

最大表示距離を決定する方法。

  • DISTANCE最大距離は、指定した値によって定義されます。これがデフォルトの方法です。
  • FIELD 観測点の位置ごとの最大距離は、指定したフィールド内の値によって決定されます。
String
maximumViewingDistance
(オプション)

これは、表示可能エリアの計算を停止する距離を指定するオプションです。この距離を超えると、観測点およびその他のオブジェクトが互いに見えるかどうかはわかりません。

単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。

デフォルトはマイルです。

Linear Unit
maximumViewingDistanceField
(オプション)

これは、観測点ごとの最大表示距離を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの XY 単位と同じ単位にする必要があります。

最大表示距離は、表示可能エリアの計算を停止する距離を指定するオプションです。この距離を超えると、観測点およびその他のオブジェクトが互いに見えるかどうかはわかりません。

Field
minimumViewingDistanceType
(オプション)

最大表示距離を決定する方法を選択します。

  • DISTANCE最小距離は、指定した値によって定義されます。これがデフォルトの方法です。
  • FIELD 観測点の位置ごとの最小距離は、指定したフィールド内の値によって決定されます。
String
minimumViewingDistance
(オプション)

これは、表示可能エリアの計算を開始する距離を指定するオプションです。この距離よりも近くにあるサーフェス上のセルは出力に表示されませんが、最小表示距離と最大表示距離の間にあるセルの可視領域をブロックできます。

単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。

デフォルトの単位はメートルです。

Linear Unit
minimumViewingDistanceField
(オプション)

これは、観測点ごとの最小表示距離を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの XY 単位と同じ単位にする必要があります。

最小表示距離は、表示可能エリアの計算を開始する距離を定義します。この距離よりも近くにあるサーフェス上のセルは出力に表示されませんが、最小表示距離と最大表示距離の間にあるセルの可視領域をブロックできます。

Field
viewingDistanceIs3D
(オプション)

最小表示距離パラメーターと最大表示距離パラメーターを 3 次元で計測するか単純な 2 次元で計測するかを指定します。2D 距離は、海面と同じ高さの投影位置を使用して観測点と対象の間で計測される単純な直線距離です。3D 距離は、相対的な高さが考慮されるため、より現実的な値になります。

  • 2D表示距離は、2D 距離で測定されます。これがデフォルトです。
  • 3D表示距離は、3D 距離で測定されます。
Boolean
observersElevationType
(オプション)

観測点の標高を決定する方法。

  • ELEVATION観測点の標高は、指定した値によって定義されます。これがデフォルトの方法です。
  • FIELD観測点の位置ごとの標高は、指定したフィールド内の値によって決定されます。
String
observersElevation
(オプション)

これは、観測点の位置の標高です。

このパラメーターを指定しなかった場合、観測点の標高は共一次内挿法を使用してサーフェス ラスターから取得されます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ内のフィールドに設定してください。

単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。

デフォルトの単位はメートルです。

Linear Unit
observersElevationField
(オプション)

これは、観測点の標高を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの Z 単位と同じ単位にする必要があります。

このパラメーターを指定しなかった場合、観測点の標高は共一次内挿法を使用してサーフェス ラスターから取得されます。

Field
observersHeightType
(オプション)

観測点の高度を決定する方法。

  • HEIGHT観測点の高度は、指定した値から取得されます。これがデフォルトの方法です。
  • FIELD 観測点の位置ごとの高度は、指定したフィールド内の値によって決定されます。
String
observersHeight
(オプション)

これは、観測点の位置に使用される高度です。

単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。

デフォルトの単位はメートルです。

Linear Unit
observersHeightField
(オプション)

これは、観測点の高度を指定するために使用できるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの Z 単位と同じ単位にする必要があります。

Field
targetHeightType
(オプション)

目標点の高度を決定する方法。

  • HEIGHT目標点の高度は、指定した値から取得されます。これがデフォルトの方法です。
  • FIELD 目標点ごとの高度は、指定したフィールド内の値によって決定されます。
String
targetHeight
(オプション)

これは、可視性の評価に使用される地上の構造物または人の高さです。生成される可視領域は、観測点からこれらの他のオブジェクトを見ることができるエリアです。その逆も同じことが当てはまります。その他のオブジェクトから観測点を見ることができます。

単位には、キロメートル、メートル、マイル、ヤード、フィートを使用できます。

デフォルトの単位はメートルです。

Linear Unit
targetHeightField
(オプション)

これは、目標点の高度を指定するために使用されるフィールドです。そのフィールドに含まれる値を入力標高サーフェスの Z 単位と同じ単位にする必要があります。

Field
aboveGroundLevelOutputName
(オプション)

出力 AGL (地上レベル) ラスターの名前。AGL の出力は、見えないセルが 1 つ以上の観測点から見えるようにするためにセルに追加する必要がある最小の高さで各セルの値が構成されるラスターとなります。この出力ラスターでは、すでに見通せるセルには値 0 が割り当てられます。

String

派生した出力

名前説明データ タイプ
outputRaster

出力の可視領域ラスター。

ラスター レイヤー
outputAboveGroundLevelRaster

出力 AGL (地上レベル) ラスター。

ラスター レイヤー

コードのサンプル

CreateViewshed (可視領域の作成) の例 1 (Python ウィンドウ)

この例では、指定されたサーフェスと観測点を使用して、可視領域イメージ サービスを作成します。

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")
CreateViewshed (可視領域の作成) の例 2 (スタンドアロン スクリプト)

この例では、指定されたサーフェスと観測点を使用して、可視領域イメージ サービスを作成します。

#---------------------------------------------------------------------------
# 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

関連トピック