細線化 (Thin) (Spatial Analyst)

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

概要

フィーチャの幅を表すセルの数を減らすことでラスターの線形フィーチャを細線化します。

使用法

  • [細線化 (Thin)] ツールの典型的な応用例は、スキャンした等高線マップの処理です。スキャナーの解像度と元のマップのライン幅により、コンターは 5 ~ 10 セルの幅を持つライン エレメントとしてラスターで表されます。[細線化 (Thin)] の実行後、各コンターは 1 セル幅の線形フィーチャとして表されます。

  • 有効な場合、フィルター オプションは、[境界のスムージング (Boundary Clean)] ツールと同じフィルター アルゴリズムを使用して、主要ブランチから伸びる短いライン フィーチャを削除します。また、3 セルより狭いフィーチャも削除します。

  • 入力ライン フィーチャの最大幅を指定することは、ライン フィーチャの幅がデフォルトの最大幅を超えていたり、小さかったりするラスターの細線化に非常に重要です。最大幅が細線化される最も太いライン フィーチャと合うとき、最良の結果が期待できます。

  • [細線化 (Thin)] ツールで使用される一般的なアルゴリズムの詳細は、以下をご参照ください。

    『A Hybrid Line Thinning Approach』 (Zhan, Cixiang 著、1993 年刊行) の Proceedings Auto-Carto 11, Minneapolis (396 ~ 405 ページ)

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

構文

Thin(in_raster, {background_value}, {filter}, {corners}, {maximum_thickness})
パラメーター説明データ タイプ
in_raster

細線化対象の入力ラスター。

整数タイプでなければなりません。

Raster Layer
background_value
(オプション)

背景セルを特定するセル値を指定します。ライン フィーチャは、前景セルから形成されます。

  • ZERO背景を、0 以下の値あるいは NoData が格納されたセルから構成します。値が 0 より大きいセルはすべて前景です。
  • NODATA 背景を NoData セルから構成します。有効な値が格納されているセルはすべて、前景に属します。
String
filter
(オプション)

細線化の最初のフェーズとしてフィルターを適用するかどうかを指定します。

  • NO_FILTERフィルターは適用されません。これがデフォルトです。
  • FILTER ラスターにフィルターが適用され、前景セルと背景セルの境界が滑らかになります。このオプションを使用すると、出力ラスターから小さな不規則性がなくなります。
Boolean
corners
(オプション)

ターンやジャンクションの角をシャープにするか丸みを付けるかを指定します。

これはベクター変換プロセスでの曲線のスプライン化やコーナーのシャープ化にも使用されます。

  • ROUND コーナーとジャンクションを滑らかにしようとします。河川など、自然物のベクター変換に最適です。
  • SHARP コーナーやジャンクションの角をシャープのままにしようとします。道路など、人工物のベクター変換に最適です。
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

# Execute Thin
thinOut = Thin(inRaster, "NODATA", "FILTER", "SHARP", tolerance)

# Save the output 
thinOut.save("c:/sapyexamples/output/thinoutput")

ライセンス情報

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

関連トピック