3D Analyst のライセンスで利用可能。
サマリー
測地線による方法を使用して、一連の観測フィーチャから見通せるラスター サーフェスの位置を決定します。
図
使用法
このツールでは、[頻度] および [観測点] という 2 種類の可視領域解析を実行することができます。これらの可視領域解析は、[解析タイプ] パラメーターを使用して設定できます。
出力の精度を確保するには、鉛直座標系を入力ラスターに割り当てます (まだ割り当てられていない場合)。
[可視領域 (詳細設定) (Viewshed 2)] では、Z 係数パラメーターは不要です。入力ラスターの空間参照の鉛直単位 (Z) とマップ単位 (XY) を使用して Z 係数の計算が内部で実行されます。
-
ノイズを含む入力ラスターは、高解像度のデータで最もよく見られ、予想外の結果を生むことがあります。このツールを実行する前に、前処理手順でデータを修正しておくことができます。ArcGIS Spatial Analyst エクステンションが使用可能な場合は、可視領域の操作を実行する前に、[フォーカル統計 (Focal Statistics)] ツールまたは [フィルター (Filter)] ツールを使用して、エラーの影響が及ばないようにしておくことができます。
入力ラスターをリサンプリングする必要がある場合は、共一次内挿法を使用します。入力ラスをリサンプリングする例としては、出力座標系、範囲、またはセル サイズが入力と異なる場合があります。
パフォーマンスを向上させるために、[観測距離] パラメーターに、実行する解析の最大表示距離を表す値を明示的に設定することができます。
[解析方法] パラメーターでは、デフォルトで [ALL_SIGHTLINES] オプションが使用されるため、最も正確な出力が生成されます。処理時間に関してこのツールのパフォーマンスを向上させるには、[PERIMETER_SIGHTLINES] オプションを使用します。
[サーフェス オフセット]、[観測点の標高]、[観測点オフセット] など、高さに関する観測点パラメーターを距離単位またはフィールドとして指定できます。計算中に、距離単位の値が入力ラスターの Z 単位に内部で変換されます。ただし、距離単位が不明な場合または数値フィールドが指定されている場合、この値は入力ラスターの Z 単位であると見なされます。
[非観測距離] や [観測距離] など、表示距離に関する観測点パラメーターを距離単位またはフィールドとして指定できます。計算中に、距離単位の値が入力ラスターの XY 単位に内部で変換されます。ただし、距離単位が不明な場合または数値フィールドが指定されている場合、この値は入力ラスターの XY 単位であると見なされます。
[サーフェス オフセット] や [観測点オフセット] などの観測点パラメーターに指定されたフィールドには、数値と単位で構成された文字列を入力することができます。たとえば、[観測点オフセット] に [obs_height] フィールドが指定されている場合は、「6 Feet」などの値を入力できます。
スクリプトでは、[observer_offset] などの観測点パラメーターをさまざまな形式の文字列で指定することができます。形式ごとに、値と距離単位が文字列から解析されます。いくつかの入力文字列の例とそれぞれの文字列から距離単位を決定する方法を次の表に示します。これ以外のパラメーターでも、同じパターンに従うことができます。
入力文字列と距離単位の例観測点オフセットの入力文字列の例 使用される距離単位 ' ' または '#'
デフォルトの値と単位 (1 メートル) が使用されます。
'6'
観測点オフセットが 6 になり、単位が指定されていないため、このツールのデフォルト単位 (メートル) が使用されます。
'6 Feet'
観測点オフセットが 6 フィートになります。
'6 Unknown'
観測点オフセットが 6 になり、単位が指定されていないため、このツールのデフォルト単位 (メートル) が使用されます。
このツールでは、このツールがシステムで使用可能であり、正しく構成されている場合、パフォーマンスを向上させるためにグラフィックス処理装置 (GPU) が自動的に使用されます。
GPU デバイスを構成する方法の詳細については、Spatial Analyst エクステンションのヘルプに含まれる「Spatial Analyst を使用した GPU 処理」ヘルプ トピックをご参照ください。
システムにインストールされている GPU デバイスがこのツールで使用されないようにするには、システム環境変数 CUDA_VISIBLE_DEVICES を作成し、その値を「-1」に設定して、アプリケーションを再起動します。これにより、このツールで CPU だけが使用されます。もう一度 GPU デバイスがこのツールで使用されるようにするには、システム環境変数 CUDA_VISIBLE_DEVICES を削除するか、この環境変数の値を使用する GPU デバイスのインデックス値 (最初のデバイスの場合は 0、2 番目のデバイスの場合は 1、以下同様) に設定して、アプリケーションを再起動します。
構文
Viewshed2_3d (in_raster, in_observer_features, out_raster, {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_raster | 出力ラスター。 [FREQUENCY] 解析タイプでは、垂直誤差パラメーターが 0 であるか、指定されていない場合、出力ラスターには、入力観測点から、入力サーフェス ラスターの各セル位置を見通せる回数が記録されます。垂直誤差パラメーターが 0 よりも大きい場合、出力ラスターの各セルには、観測点からセルを見通せる確率の合計が記録されます。[OBSERVERS] 解析タイプの場合、出力ラスターには、可視領域に一意の領域 ID が記録されます。これらの領域 ID は、出力観測点-領域リレーションシップ テーブルを介して観測点フィーチャに関連付けることができます。 | Raster Dataset |
out_agl_raster (オプション) | 出力 AGL (地上レベル) ラスター。 AGL の出力は、見えないセルが 1 つ以上の観測点から見えるようにするためにセルに追加する必要がある最小の高さで各セルの値が構成されるラスターとなります。この出力ラスターでは、すでに見通せるセルには値 0 が割り当てられます。 垂直誤差パラメーターが 0 の場合、出力 AGL ラスターは 1 バンド ラスターになります。垂直誤差パラメーターが 0 より大きい場合、入力ラスターからのランダムな効果を考慮に入れるために、出力 AGL ラスターは 3 バンド ラスターとして作成されます。1 番目のバンドは平均 AGL 値、2 番目のバンドは最小 AGL 値、3 番目のバンドは最大 AGL 値を表します。 | Raster Dataset |
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 値に加算する垂直距離を示します。値は整数または浮動小数点で指定する必要があります。 入力観測点データセットのフィールドを選択するか、数値を指定できます。 このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 デフォルト値は 0 です。 | Linear Unit; Field |
observer_elevation (オプション) | この値は、観測点または頂点のサーフェス標高を定義するために使用されます。 入力観測点データセットのフィールドを選択するか、数値を指定できます。 このパラメーターを指定しなかった場合、観測点の標高は共一次内挿法を使用してサーフェス ラスターから取得されます。このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Linear Unit; Field |
observer_offset (オプション) | この値は、観測点の標高に追加する垂直距離を示します。値は整数または浮動小数点で指定する必要があります。 入力観測点データセットのフィールドを選択するか、数値を指定できます。 このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 デフォルト値は 1 メートルです。 | 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 です。 入力観測点データセットのフィールドを選択するか、数値を指定できます。 このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Double; Field |
horizontal_end_angle (オプション) | この値は、水平方向のスキャン範囲の終了角度を定義します。値は、0 を北の方向として、整数または浮動小数点数で、度単位の 0 ~ 360 を指定する必要があります。デフォルト値は 360 です。 入力観測点データセットのフィールドを選択するか、数値を指定できます。 このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 | Double; Field |
vertical_upper_angle (オプション) | この値は、水平面より上でスキャンするときの仰角の上限を定義します。値は、0 ~ 90 の角度で指定する必要があり、整数または浮動小数点を使用できます。 このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 デフォルト値は 90 です。 | Double; Field |
vertical_lower_angle (オプション) | この値は、水平面より下でスキャンするときの仰角の下限を定義します。値は、-90 ~ 0 の角度で指定する必要があり、整数または浮動小数点を使用できます。 入力観測点データセットのフィールドを選択するか、数値を指定できます。 このパラメーターに値を設定すると、その値はすべての観測点に適用されます。観測点ごとに別の値を指定するには、このパラメーターを、入力観測点フィーチャ データセット内のフィールドに設定してください。 デフォルト値は -90 です。 | Double; Field |
analysis_method (オプション) | 可視性を計算する方法を選択します。このオプションを使用すると、精度の低下を許容する代わりにパフォーマンスを向上させることができます。
| String |
コードのサンプル
Viewshed2 (可視領域 (詳細設定)) の例 1 (Python ウィンドウ)
この例では、観測点パラメーターを使用せず、一連の観測位置から見通せるサーフェス位置を決定します。
import arcpy
from arcpy import env
env.workspace = "C:/data"
result = arcpy.Viewshed2_3d("elevation", "obser1.shp", "C:/output/outvwshd01",
"", "OBSERVERS", "", "C:/output/obstable01.dbf")
Viewshed2 (可視領域 (詳細設定)) の例 2 (スタンドアロン スクリプト)
この例では、入力フィーチャクラスの属性を観測点パラメーターとして使用して、一連の観測位置から見通せるサーフェス位置を決定します。
# Name: Viewshed_3d_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
inRaster = "elevation"
inObservers = "obser2.shp"
outRaster = "c:/output/outvshd02"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/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
result = arcpy.Viewshed2_3d(inRaster, inObservers, outRaster, outAGL,
analysisType, verticalError,
outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 3D Analyst または Spatial Analyst
- ArcGIS Desktop Standard: 次のものが必要 3D Analyst または Spatial Analyst
- ArcGIS Desktop Advanced: 次のものが必要 3D Analyst または Spatial Analyst