Spatial Analyst のライセンスで利用可能。
サマリ
フィーチャの幅を表すセルの数を減らすことでラスターの線形フィーチャを細線化します。
使用法
[細線化 (Thin)] ツールの典型的な利用例は、スキャンした等高線マップの処理です。スキャナーの解像度と元のマップのライン幅により、コンターは 5 〜 10 セルの幅を持つライン エレメントとしてラスターで表されます。[細線化 (Thin)] の実行後、各コンターは 1 セル幅の線形フィーチャとして表されます。
有効化した場合、フィルター オプションは [境界のスムージング (Boundary Clean)] ツールと同じフィルター アルゴリズムを使用して、主要ブランチから伸びる短いライン フィーチャを削除します。また、3 セルより狭いフィーチャも削除します。
入力ライン フィーチャの最大幅を指定することは、ライン フィーチャの幅がデフォルトの最大幅を超えていたり、小さかったりするラスターの細線化に非常に重要です。最大幅が細線化される最も太いライン フィーチャと合うとき、最良の結果が期待できます。
[細線化 (Thin)] ツールで使用される一般的なアルゴリズムの詳細は、以下をご参照ください。
『A Hybrid Line Thinning Approach』 (Zhan, Cixiang 著、1993 年刊行) の 396 〜 405 ページ「Proceedings Auto-Carto 11」
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
Thin (in_raster, {background_value}, {filter}, {corners}, {maximum_thickness})
パラメータ | 説明 | データ タイプ |
in_raster | 細線化対象の入力ラスター。 整数タイプでなければいけません。 | Raster Layer |
background_value (オプション) | 背景セルを特定するセル値を指定します。ライン フィーチャは、前景セルから形成されます。
| String |
filter (オプション) | 細線化の最初のフェーズとしてフィルターを適用するかどうかを指定します。
| Boolean |
corners (オプション) | ターンやジャンクションの角をシャープにするか丸みを付けるかを指定します。 これはベクター変換プロセスでの曲線のスプライン化やコーナーのシャープ化にも使用されます。
| String |
maximum_thickness (オプション) | 入力ラスターのライン フィーチャの最大幅 (マップ単位)。 デフォルトの幅は、セル サイズの 10 倍です。 | Double |
戻り値
名前 | 説明 | データ タイプ |
out_raster | 細線化された出力ラスター。 出力は常に整数型になります。 | Raster |
コードのサンプル
Thin (細線化) の例 1 (Python ウィンドウ)
次の例では、背景値が NoData のラスターを細線化し、コーナーとジャンクションの角をシャープにしたまま境界を滑らかにしています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
thinOut = Thin("land","NODATA", "FILTER", "SHARP", 300)
thinOut.save("c:/sapyexamples/output/thinout")
Thin (細線化) の例 2 (スタンドアロン スクリプト)
次の例では、背景値が NoData のラスターを細線化し、コーナーとジャンクションの角をシャープにしたまま境界を滑らかにしています。
# Name: Thin_Ex_02.py
# Description: Thins rasterized linear features by
# reducing the number of cells
# representing the width of the 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"
# Set local variables
inRaster = "land"
tolerance = 300
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Thin
thinOut = Thin(inRaster, "NODATA", "FILTER", "SHARP", tolerance)
# Save the output
thinOut.save("c:/sapyexamples/output/thinoutput")
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 Spatial Analyst