Spatial Analyst のライセンスで利用可能。
サマリ
測地線による方法を使用して、一連の観測フィーチャから見通せるラスター サーフェスの位置を決定します。
使用法
このツールによって実行可能な可視解析には 2 つのタイプがあり、[解析タイプ] パラメーターによって制御されます。1 番目のタイプ FREQUENCYの場合、ツールは、一連の観測点から見通せるラスター サーフェスの位置を決定します。もう 1 つのタイプ OBSERVERSの場合、ツールは、各ラスター サーフェスの位置から見通せる観測点を特定します。
このツールは GPU により処理を加速化できます。つまり、システムで GPU デバイス (グラフィックス処理装置) を使用可能な場合は、そのデバイスを使用してツールのパフォーマンスを強化できます。
現在、このツールは CUDA 計算機能 2.0 または OpenCL 1.2 を備えた NVIDIA グラフィックス カードのみをサポートしており、システムに適切なカードがインストールされている必要があります。ツールを適切に実行するには、「NVIDIA ドライバー アップデート ページ」をご参照ください。
Windows TdrDelay (Timeout Detection and Recovery Delay) レジストリ キーの値が小さすぎて演算を実行できない場合、GPU エラーが返され、実行が失敗することがあります。TdrDelay のデフォルト値は 2 秒ですが、場合によっては、60 秒のようにより大きな値に調整する必要があります。ほとんどの Windows システムでは、レジストリの TdrDelay キーへのパスは HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers です。TdrDelay キーが存在しない場合は、このパスに作成して大きい値を割り当てる必要があります。この変更を有効にするには、コンピューターを再起動する必要があります。TdrDelay レジストリ キーを定義する方法の詳細については、Microsoft TDR レジストリ キー Web ページ にアクセスしてください。
他の類似のツールとは異なり、[可視領域 (詳細設定) (Viewshed 2)] には [Z 係数] パラメーターがありません。出力可視領域ラスターの正確さを補正するために、 回転楕円体鉛直座標系 を入力ラスターに割り当てます (入力ラスターに含まれていない場合)。
各セルの中心の可視領域は、目標点と各観測点の間の見通し線テストにより判定されます。観測点が目標点をセルの中心で見通せる場合、このセルは可視と見なされます。このツールは、可視領域を判定するときに地球の曲率を常に考慮します。
出力可視領域ラスターでは、見通せないセルに NoData が割り当てられます。
OBSERVERS 解析タイプの場合、入力観測点の許容最大数は 32 です。
入力ラスターにサンプリング エラーによって発生した望ましくないノイズが含まれている場合、このツールを実行する前に [フォーカル統計 (Focal Statistics)] ツールの [MEAN] オプションのようなローパス フィルターを使用することでラスターを滑らかにすることも考えられます。
入力ラスターをリサンプリングする必要がある場合は、共一次内挿法を使用します。入力ラスをリサンプリングする例としては、出力座標系、範囲、またはセル サイズが入力と異なる場合があります。
デフォルトでは、可視領域は入力データセットの最大範囲まで計算されます。パフォーマンスを向上させるために、[外部半径] パラメーターを解析対象の最大距離に明示的に設定しておくことをお勧めします。このパーメーターを使用すると、ツールが観測点から特定の距離内にあるセルだけに計算を実行します。
[解析方法] パラメーターを使用すると、結果の品質と、結果を取得するまでにかかる時間を制御できます。PERIMETER_SIGHTLINES 方法は、出力品質は落ちますがパフォーマンスが向上するので、予備的な解析に使用します。最も正確な出力を得るには、 ALL_SIGHTLINES 方法を使用します。
このツールの実装の技術的側面に関する詳細については、以下のリソースをご参照ください。
http://support.esri.com/en/knowledgebase/techarticles/detail/42804
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
Viewshed2 (in_raster, in_observer_features, {out_agl_raster}, {analysis_type}, {vertical_error}, {out_observer_region_relationship_table}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {inner_radius_is_3d}, {outer_radius}, {outer_radius_is_3d}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle}, {analysis_method})
パラメータ | 説明 | データ タイプ |
in_raster | 入力サーフェス ラスター。整数または浮動小数点のいずれのラスターでもかまいません。 可視領域計算中に、入力ラスターは 3 次元地心座標系に変換されます。入力ラスターの NoData セルは可視領域をブロックしません。 | Raster Layer |
in_observer_features | 観測位置を指定する入力フィーチャクラス。入力には、ポイント フィーチャ、マルチポイント フィーチャ、またはポリライン フィーチャを使用できます。 可視領域計算中に、入力フィーチャクラスは 3 次元地心座標系に変換されます。サーフェス ラスターの範囲外の観測点または NoData セル上にある観測点は計算で無視されます。 | Feature Layer |
out_agl_raster (オプション) | 出力 AGL (Above Ground Level) ラスター。 AGL の出力は、見えないセルが 1 つ以上の観測点から見えるようにするためにセルに追加する必要がある最小の高さで各セルの値が構成されるラスターとなります。この出力ラスターでは、すでに見通せるセルには値 0 が割り当てられます。 垂直誤差パラメーターが 0 の場合、出力 AGL ラスターは 1 バンド ラスターになります。垂直誤差パラメーターが 0 より大きい場合、入力ラスターからのランダムな効果を考慮に入れるために、出力 AGL ラスターは 3 バンド ラスターとして作成されます。1 番目のバンドは平均 AGL 値、2 番目のバンドは最小 AGL 値、3 番目のバンドは最大 AGL 値を表します。 | Raster |
analysis_type (オプション) | 実行する可視解析のタイプを選択します。観測点に対して各セルがどのように見えるかを決定するか、サーフェスの位置ごとに見ることができる観測点を特定します。
| String |
vertical_error (オプション) | サーフェス標高値の不確実性 (二乗平均平方根誤差 (RMSE)) の大きさ。これは、入力標高値の予測誤差を表す浮動小数点値です。このパラメーターに 0 よりも大きい値を指定すると、出力可視領域ラスターは浮動小数点になります。この場合、出力可視領域ラスターの各セルの値は観測点からセルを見通せる確率の合計を表しています。 解析タイプ OBSERVERS または解析方法が PERIMETER_SIGHTLINESの場合、このパラメーターは使用できません。 | Linear unit |
out_observer_region_relationship_table (オプション) | 各観測点で見通せる地域を特定するための出力テーブル。このテーブルは、所定の観測点から見通せる地域を特定するために、入力観測点フィーチャクラスおよび出力可視領域ラスターに関連付けることができます。 この出力は、次の解析タイプの場合のみ作成されます。OBSERVERS。 | Table |
refractivity_coefficient (オプション) | 大気中での可視光線の屈折係数。 デフォルト値は 0.13 です。 | Double |
surface_offset (オプション) | この値は、可視領域解析の各目標点のセルの Z 値に加算する垂直距離 (単位: サーフェス) を示します。値は整数または浮動小数点で指定する必要があります。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Linear unit | Field |
observer_elevation (オプション) | この値は、観測点または頂点のサーフェス標高を定義するために使用されます。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターを指定しなかった場合、観測点の標高は共一次内挿法を使用してサーフェス ラスターから取得されます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。。 | Linear unit | Field |
observer_offset (オプション) | この値は、観測点の標高に追加する垂直距離 (単位: サーフェス) を示します。値は整数または浮動小数点で指定する必要があります。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。。 | Linear unit | Field |
inner_radius (オプション) | この値は、可視領域を決定する開始 (最小) 距離を定義します。この距離よりも近くにあるセルは出力では見えないものとされますが、非観測距離と観測距離の間にあるセルの可視領域をブロックします。デフォルト値は 0 です。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。。 | Linear unit | Field |
inner_radius_is_3d (オプション) | 非観測距離パラメーターの距離のタイプ。
| Boolean |
outer_radius (オプション) | この値は、可視領域を決定する最大距離を定義します。この距離を超えるセルは、解析から除外されます。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Linear unit | Field |
outer_radius_is_3d (オプション) | 観測距離パラメーターの距離のタイプ。
| Boolean |
horizontal_start_angle (オプション) | この値は、水平方向のスキャン範囲の開始角度を定義します。値は、0 を北の方向として度単位の 0 〜 360.0 で指定する必要があります。デフォルト値は 0 です。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Constant | Field |
horizontal_end_angle (オプション) | この値は、水平方向のスキャン範囲の終了角度を定義します。値は、0 を北の方向として度単位の 0 〜 360.0 で指定する必要があります。デフォルト値は 360.0 です。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Constant | Field |
vertical_upper_angle (オプション) | この値は、水平面より上でスキャンするときの仰角の上限を定義します。値は、0 ~ 90.0 の角度で指定する必要があり、整数または浮動小数点を使用できます。デフォルト値は 90.0 です。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Constant | Field |
vertical_lower_angle (オプション) | この値は、水平面より下でスキャンするときの仰角の下限を定義します。値は、-90 ~ 0 の角度で指定する必要があり、整数または浮動小数点を使用できます。デフォルト値は -90.0 です。 この値には、入力観測点フィーチャ データセットのフィールドまたは数値のフィールドを指定できます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Constant | Field |
analysis_method (オプション) | 可視性を計算する方法を選択します。このオプションを使用すると、精度の低下を許容する代わりにパフォーマンスを向上させることができます。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_raster | 出力ラスター。 FREQUENCY 解析タイプの場合、垂直誤差パラメーターが 0 であるか、または指定しなかった場合、出力ラスターには、入力観測点から、入力サーフェス ラスターの各セル位置を見通せる回数が記録されます。垂直誤差パラメーターが 0 よりも大きい場合、出力ラスターの各セルには、観測点からセルを見通せる確率の合計が記録されます。OBSERVERS 解析タイプの場合、出力ラスターには、可視領域の一意の地域 ID が記録されます。これらの一意の地域 ID は観測点-地域リレーションシップ テーブルを介して観測点フィーチャに関連付けることができます。 | Raster |
コードのサンプル
Viewshed2 (可視領域 (詳細設定) (Viewshed 2)) の例 1 (Python ウィンドウ)
この例では、観測点パラメーターを使用せず、一連の観測位置から見通せるサーフェス位置を決定します。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outViewshed2 = Viewshed2("elevation", "obser1.shp", "", "OBSERVERS", "",
"C:/sapyexamples/output/obstable01.dbf",
analysis_method="ALL_SIGHTLINES")
outViewshed2.save("C:/sapyexamples/output/outvwshd2_01")
Viewshed2 (可視領域 (詳細設定) (Viewshed 2)) の例 2 (スタンドアロン スクリプト)
この例では、入力フィーチャクラスの属性を観測点パラメーターとして使用して、一連の観測位置から見通せるサーフェス位置を決定します。
# Name: Viewshed2_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")
inRaster = "elevation"
inObservers = "obser2.shp"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/sapyexamples/output/obser_region2.dbf"
refractCoeff = ""
surfaceOffset = "offsetb"
observerElevation = "spot"
observerOffset = "offseta"
innerRadius = "radius1"
innerIs3D = "False"
outerRadius = "radius2"
outerIs3D = "True"
horizStartAngle = "azimuth1"
horizEndAngle = "azimuth2"
vertUpperAngle = "vert1"
vertLowerAngle = "vert2"
analysisMethod = "ALL_SIGHTLINES"
# Execute Viewshed2
outViewshed2 = Viewshed2(inRaster, inObservers, outAGL, analysisType,
verticalError, outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
# Save the output
outViewshed2.save("C:/sapyexamples/output/outvwshd2_02")
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 Spatial Analyst または 3D Analyst
- ArcGIS for Desktop Standard: 次のものが必要 Spatial Analyst または 3D Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 Spatial Analyst または 3D Analyst