特長維持によるスムージング (Feature Preserving Smoothing) (Spatial Analyst)

Spatial Analyst のライセンスで利用可能。

サマリー

特長を維持しながら、ノイズを除去してサーフェス ラスターをスムージングします。

特長維持によるスムージングの詳細

特長維持によるスムージング ツールの図

使用法

  • このツールを使用して、デジタル標高モデル (DEM) ラスターからノイズを除去できます。 より滑らかな最終出力が望ましい場合に、任意の解析ワークフローで使用できます。

  • このツールには、スムージング プロセスに影響するパラメーターがいくつかあります。 これらのパラメーターを個別に使用するか、組み合わせて使用することで、特定のアプリケーションに結果をカスタマイズできます。 解析は次の方法で制御できます。

    • スムージングされるセル周辺の近傍のサイズ。
    • 影響を受けるローカルの変動の相対傾斜。
    • スムージング プロセスが適用される回数。
    • 影響を受けるオブジェクトの相対高度。
  • [近傍距離] パラメーターは、近傍のサイズを定義します。 入力ラスターの特長を維持しながらノイズだけがスムージング処理されるように、小さな値を指定します。 たとえば、5 個のセルを設定すると処理ウィンドウは 11 x 11 セルになり、通常は適切な開始点です。

  • [法線差閾値] パラメーターは、1 回の反復処理におけるフィーチャ エッジの傾斜 (度単位) の可能な最大変化を定義します。 小さな値 (15 度以下など) を指定することにより、平坦な特長のエッジのみがスムージング処理されるようになります。

  • [最大標高変化] パラメーターは、1 回の反復処理において特長の高さが変化する可能性のある最大値を定義します。 小さな値 (0.5 メートル以下など) を指定することにより、短い特長のみがスムージング処理されるようになります。

  • [処理の反復回数] パラメーターは、スムージング プロセスを繰り返す回数を指定します。 大きな値を指定すると出力ラスターの滑らかさが向上します。ただし、処理の反復回数が増えると処理時間は長くなります。 多くの場合、小さな値 (3 など) はこのパラメーターに適しています。

  • [入力サーフェス ラスター] パラメーター値に鉛直座標系 (VCS) が定義されている場合、その鉛直座標系の Z 単位が解析で適用されます。 入力サーフェス ラスターに垂直座標系が定義されていない場合、解析中に法線ベクトルが適切に計算されるように [Z 単位] パラメーター値を指定します。

  • このツールは GPU により処理を加速化できます。つまり、システムで互換性のあるグラフィックス処理装置 (GPU) を使用可能な場合は、それを使用してツールのパフォーマンスを強化できます。 このツールの実行に GPU と CPU のどちらを使用するかを制御するには、[解析のターゲット デバイス] (Python では analysis_target_device) パラメーターを使用します。

    互換性のある GPU、GPU デバイスの構成と動作に関する詳細や、問題が発生した場合のトラブルシューティングのヒントについては、「Spatial Analyst での GPU 処理」をご参照ください。

  • このツールは、並列処理をサポートしています。 お使いのコンピューターに、複数のプロセッサや、複数のコアを持つプロセッサが搭載されている場合は、特に対象となるデータセットが大きいときにパフォーマンスが向上します。 「Spatial Analyst による並列処理」ヘルプ トピックには、この機能と設定方法の詳細が記載されています。

  • 出力ラスターの形式が .crf の場合、このツールはピラミッド ラスター格納環境をサポートします。 デフォルトでは、ピラミッドは出力で作成されます。 その他の出力形式ではこの環境はサポートされず、ピラミッドは作成されません。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

パラメーター

ラベル説明データ タイプ
入力サーフェス ラスター

入力サーフェス ラスター。

Raster Layer
距離単位
(オプション)

[近傍距離] パラメーターに使用される距離単位を指定します。 デフォルトは [セル] です。

  • セル距離の単位はセルです。
  • メートル距離の単位はメートルです。
  • センチメートル距離の単位はセンチメートルです。
  • キロメートル距離の単位はキロメートルです。
  • インチ距離の単位はインチです。
  • フィート距離の単位はフィートです。
  • ヤード距離の単位はヤードです。
  • マイル距離の単位はマイルです。
String
近傍距離
(オプション)

処理中の近傍のサイズを定義するターゲット セルからの距離。

値は正の数値である必要があります。 デフォルト値は 5 セルです。

Double
法線差閾値
(オプション)

現在の処理セルの新しいセル値の計算に含める近傍セルの最大法線差。 法線差は、近傍セルの法線ベクトルと現在の処理セルの法線ベクトルによって形成される角度です。

値は -180 ~ 180 度の数値を指定できます。 デフォルト値は 15 度です。

Double
処理の反復回数
(オプション)

スムージング プロセスを繰り返す回数。

値は正の整数でなくてはいけません。 デフォルト値は 3 です。

Long
最大標高変化
(オプション)

1 回の反復処理で許可されているセルの高さの最大変化。

セル位置の新しい値を計算するとき、そのセル位置の元の値と比較されます。 差異がこのパラメーター設定以下の場合、新しいセル値が使用されます。 それ以外の場合、元の値は変更されません。

値は正の数値である必要があります。 デフォルト値は 0.5 メートルです。

Linear Unit
Z 単位
(オプション)

鉛直方向の Z 値に使用する距離単位を指定します。

存在する場合は、鉛直座標系によって定義されます。 鉛直座標系が存在しない場合、正しい測地線の計算を実現するために、単位リストを使用して Z 単位を定義します。 デフォルトはメートルです。

  • インチ距離単位はインチになります。
  • フィート距離単位はフィートになります。
  • ヤード距離単位はヤードになります。
  • US マイル距離単位はマイルになります。
  • 海里距離単位は海里になります。
  • ミリメートル距離単位はミリメートルになります。
  • センチメートル距離単位はセンチメートルになります。
  • メートル距離単位はメートルになります。
  • キロメートル距離単位はキロメートルになります。
  • デシメートル距離単位はデシメートルになります。
String
解析のターゲット デバイス
(オプション)

計算の実行に使用するデバイスを指定します。

  • GPU の後で CPU互換性のある GPU が検出された場合、その GPU を使用して計算が実行されます。 検出されなかった場合は、CPU が使用されます。 これがデフォルトです。
  • CPU のみ計算は CPU でのみ実行されます。
  • GPU のみ計算は GPU でのみ実行されます。
String

戻り値

ラベル説明データ タイプ
出力ラスター

スムージング後の出力ラスター。

Raster

FeaturePreservingSmoothing(in_raster, {distance_units}, {neighborhood_distance}, {normal_difference_threshold}, {number_iterations}, {maximum_elevation_change}, {z_unit}, {analysis_target_device})
名前説明データ タイプ
in_raster

入力サーフェス ラスター。

Raster Layer
distance_units
(オプション)

Neighborhood Distance パラメーターに使用される距離単位を指定します。 デフォルトは、CELLS です。

  • CELLS距離の単位はセルです。
  • METERS距離の単位はメートルです。
  • CENTIMETERS距離の単位はセンチメートルです。
  • KILOMETERS距離の単位はキロメートルです。
  • INCHES距離の単位はインチです。
  • FEET距離の単位はフィートです。
  • YARDS距離の単位はヤードです。
  • MILES距離の単位はマイルです。
String
neighborhood_distance
(オプション)

処理中の近傍のサイズを定義するターゲット セルからの距離。

値は正の数値である必要があります。 デフォルト値は 5 セルです。

Double
normal_difference_threshold
(オプション)

現在の処理セルの新しいセル値の計算に含める近傍セルの最大法線差。 法線差は、近傍セルの法線ベクトルと現在の処理セルの法線ベクトルによって形成される角度です。

値は -180 ~ 180 度の数値を指定できます。 デフォルト値は 15 度です。

Double
number_iterations
(オプション)

スムージング プロセスを繰り返す回数。

値は正の整数でなくてはいけません。 デフォルト値は 3 です。

Long
maximum_elevation_change
(オプション)

1 回の反復処理で許可されているセルの高さの最大変化。

セル位置の新しい値を計算するとき、そのセル位置の元の値と比較されます。 差異がこのパラメーター設定以下の場合、新しいセル値が使用されます。 それ以外の場合、元の値は変更されません。

値は正の数値である必要があります。 デフォルト値は 0.5 メートルです。

Linear Unit
z_unit
(オプション)

鉛直方向の Z 値に使用する距離単位を指定します。

存在する場合は、鉛直座標系によって定義されます。 鉛直座標系が存在しない場合、正しい測地線の計算を実現するために、単位リストを使用して Z 単位を定義します。 デフォルトはメートルです。

  • INCH距離単位はインチになります。
  • FOOT距離単位はフィートになります。
  • YARD距離単位はヤードになります。
  • MILE_US距離単位はマイルになります。
  • NAUTICAL_MILE距離単位は海里になります。
  • MILLIMETER距離単位はミリメートルになります。
  • CENTIMETER距離単位はセンチメートルになります。
  • METER距離単位はメートルになります。
  • KILOMETER距離単位はキロメートルになります。
  • DECIMETER距離単位はデシメートルになります。
String
analysis_target_device
(オプション)

計算の実行に使用するデバイスを指定します。

  • GPU_THEN_CPU互換性のある GPU が検出された場合、その GPU を使用して計算が実行されます。 検出されなかった場合は、CPU が使用されます。 これがデフォルトです。
  • CPU_ONLY計算は CPU でのみ実行されます。
  • GPU_ONLY計算は GPU でのみ実行されます。
String

戻り値

名前説明データ タイプ
out_raster

スムージング後の出力ラスター。

Raster

コードのサンプル

FeaturePreservingSmoothing の例 1 (Python ウィンドウ)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

この例では、5 セルの近傍距離および 15 度の法線差閾値を使用して、解像度が 1 メートルの DEM をスムージングします。

from arcpy.sa import *
outFPS01 = FeaturePreservingSmoothing("elevation_1m.tif", "CELLS", 5, 15, 3, 
                                      "0.5 Meters", "METER", "GPU_THEN_CPU")
outFPS01.save("C:/sapyexamples/output/outsmoothraster01.tif")
FeaturePreservingSmoothing の例 2 (スタンドアロン スクリプト)

次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。

この例では、5 メートルの近傍距離および 10 度の法線差閾値を使用して、解像度が 1 メートルの DEM をスムージングします。

# Name: FeaturePreservingSmoothing_Ex_02.py
# Description: Smooths a 1m resolution elevation raster  
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy.sa import *

# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set local variables
inRaster = "elevation_1m.tif"
distUnits = "METERS"
nbrDistance = 5
normDiffThreshold = 10
iterations = 1
maxElevChange = "1.5 Meters"
zUnit = ""
analysisDevice = ""

# Execute the tool
outFPS02 = FeaturePreservingSmoothing(inRaster, distUnits, nbrDistance,
                                    normDiffThreshold, iterations, maxElevChange,
                                    zUnit, analysisDevice)

# Save the output 
outFPS02.save("C:/sapyexamples/output/outsmoothraster02.tif")

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst
  • Standard: 次のものが必要 Spatial Analyst
  • Advanced: 次のものが必要 Spatial Analyst

関連トピック