ファジー メンバーシップ (Fuzzy Membership) (Spatial Analyst)

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

サマリー

指定したファジー アルゴリズムに基づいて、入力ラスターの集合におけるメンバーシップの強さを表す 0 ~ 1 のスケールに変換します。

1 の値はファジー セット内での完全なメンバーシップを示し、メンバーシップが 0 に下がると、ファジー セットのメンバーでないことを示します。

[ファジー メンバーシップ (Fuzzy Membership)] ツールの詳細

使用法

  • このツールは、カテゴリ分類されたデータに対して評価値を与えません。 分類データをファジー オーバーレイ解析に含めるには、事前処理が必要です。 モデルを作成するか、次のジオプロセシング ツールを実行できます。 最初に、[再分類 (Reclassify)] ツールを使用して、値の新しい範囲 (1 〜 100 など) を提供します。 次に、[Divide] を使用して、結果をファクター (100 など) で除算し、出力値が 0.0 〜 1.0 になるように正規化します。

  • 拡散は、ファジー メンバーシップ値が 1 から 0 に減少する速さを決定します。 値が大きいほど、中間値点付近のファジー化が急激になります。 あるいは、拡散が小さくなるほど、ファジー メンバーシップはゆっくりと 0 に近づきます。 適切な拡散値を選択するのは、どこまでの範囲の値が明瞭かによって変わる主観的なプロセスです。 [Gaussian] と [Near] の場合、デフォルト値 0.1 が適切な開始点です。 通常、値はそれぞれ 0.01 ~ 1 と 0.001 ~ 1 の範囲内で変化します。 [Small] および [Large] の場合、デフォルト値 5 が適切な開始点です。通常、値は 1 〜 10 で変化します。

    Gaussian ファジー メンバーシップの拡散の影響の図
    Gaussian ファジー メンバーシップの拡散の影響

  • 指定した集合のメンバーに確実に属する入力値がない場合があります。 言い換えると、いずれの入力値もファジー メンバーシップが 1 ではない場合です。 この場合、新しいスケールを反映するように、ファジー メンバーシップの値を再スケールすることができます。 たとえば、入力値の最も高いメンバーシップが .75 の場合、ファジー メンバーシップの各値に 0.75 を乗算して、新しいスケールを設定できます。

  • 実装されているヘッジは、[Very][Somewhat] です。 [Very] は濃度としても知られており、ファジー メンバーシップ関数の二乗として定義されます。 [Somewhat] はディレーションあるいは「多少」として知られており、ファジー メンバーシップ関数の平方根です。 [Very] および [Somewhat] ヘッジによって、ファジー メンバーシップ関数はそれぞれ減少および増加します。

  • [Small] および [Large] のメンバーシップ関数では、負の値は使用できません。

  • [Linear] のメンバーシップ関数の場合、入力ラスターは順序付きデータである必要があります。 変換のために、最小値を最大値より小さくして傾斜角を正にしたり、最小値を最大値より大きくして傾斜角を負にしたりできます。

    最小値が最大値より小さい場合、正の傾斜角の関数が変換に使用されます。最小値が最大値より大きい場合、負の傾斜角の関数が使用されます。

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

パラメーター

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

値が 0 〜 1 にスケーリングされる入力ラスター。

整数または浮動小数点のいずれのラスターでもかまいません。

Raster Layer
メンバーシップ タイプ
(オプション)

入力ラスターのファジー化に使用するアルゴリズムを指定します。

[メンバーシップ タイプ] の一部の設定は、[拡散] パラメーターを使用して、ファジー メンバーシップ値が 1 から 0 に減少する速さを決定します。 拡散のデフォルト値については、以下のテーブルで説明します。

  • Gaussian中点のメンバーシップ値に 1 を割り当てます。メンバーシップは正規曲線に従い、中間点から乖離した値は 0 に減少します。 [Gaussian] は [Near] の関数と似ていますが、拡散がより狭くなっています。
    • [中点] - デフォルトは、入力ラスターの値の範囲の中間点です。
    • [拡散] - デフォルトは 0.1 です。 通常、値は 0.01 ~ 1 の範囲で変わります。
  • Small入力ラスターの小さな値が、ファジー セット内で高いメンバーシップを持つことを示すために使用します。中点のメンバーシップ値に 0.5 を割り当てます。
    • [中点] - デフォルトは、入力ラスターの値の範囲の中間点です。
    • [拡散] - デフォルトは 5 です。
  • Large入力ラスターの大きな値が、ファジー セット内で高いメンバーシップを持つことを示すために使用します。中点のメンバーシップ値に 0.5 を割り当てます。
    • [中点] - デフォルトは、入力ラスターの値の範囲の中間点です。
    • [拡散] - デフォルトは 5 です。
  • Nearある中間値に近い値のメンバーシップを計算します。中点のメンバーシップ値に 1 を割り当てます。 中点から乖離した値のメンバーシップは 0 に減少します。
    • [中点] - デフォルトは、入力ラスターの値の範囲の中間点です。
    • [拡散] - デフォルトは 0.1 です。 通常、値は 0.001 ~ 1 の範囲で変わります。
  • MSLarge入力データの平均値と標準偏差に基づいて、大きな値が高いメンバーシップを持つように、メンバーシップを計算します。平均と標準偏差の乗数の定義によっては、Large 関数と同様の結果になります。
    • [平均乗数] - デフォルトは 1 です。
    • [標準偏差の乗数] - デフォルトは 2 です。
  • MSSmall入力データの平均値と標準偏差に基づいて、小さい値が高いメンバーシップを持つように、メンバーシップを計算します。 これがデフォルトのメンバーシップ タイプです。平均と標準偏差の乗数の定義によっては、Small 関数と同様の結果になります。
    • [平均乗数] - デフォルトは 1 です。
    • [標準偏差の乗数] - デフォルトは 2 です。
  • Linear入力ラスターのリニア変換に基づいて、メンバーシップを計算します。最小値にメンバーシップ値 0、最大値にメンバーシップ値 1 を割り当てます。
    • [最小] - デフォルトは 1 です。
    • [最大] - デフォルトは 2 です。
Fuzzy function
ヘッジ
(オプション)

ヘッジを定義すると、ファジー セットの意味を変更するファジー メンバーシップの値が増加または減少します。 ヘッジは、条件または重要な属性を制御するのに役立ちます。

  • なしヘッジを適用しません。 これがデフォルトです。
  • Somewhatディレーションとして知られており、ファジー メンバーシップ関数の平方根として定義されます。 このヘッジを使用すると、ファジー メンバーシップ関数は増加します。
  • Very濃度としても知られており、ファジー メンバーシップ関数の二乗として定義されます。 このヘッジを使用すると、ファジー メンバーシップ関数は減少します。
String

戻り値

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

出力は、値が 0 ~ 1 の浮動小数点ラスターになります。

Raster

FuzzyMembership(in_raster, {fuzzy_function}, {hedge})
名前説明データ タイプ
in_raster

値が 0 〜 1 にスケーリングされる入力ラスター。

整数または浮動小数点のいずれのラスターでもかまいません。

Raster Layer
fuzzy_function
(オプション)

入力ラスターのファジー化に使用するアルゴリズムを指定します。

ファジー クラスは、メンバーシップのタイプを指定するために使用されます。

メンバーシップ クラスのタイプ:

メンバーシップ クラスの形式は以下のとおりです。

  • FuzzyGaussian({midpoint},{spread})
  • FuzzyLarge({midpoint},{spread})
  • FuzzyLinear({minimum},{maximum})
  • FuzzyMSLarge({meanMultiplier},{STDMultiplier})
  • FuzzyMSSmall({meanMultiplier},{STDMultiplier})
  • FuzzyNear({midpoint},{spread})
  • FuzzySmall({midpoint},{spread})

Fuzzy function
hedge
(オプション)

ヘッジを定義すると、ファジー セットの意味を変更するファジー メンバーシップの値が増加または減少します。 ヘッジは、条件または重要な属性を制御するのに役立ちます。

  • NONEヘッジを適用しません。 これがデフォルトです。
  • SOMEWHATディレーションとして知られており、ファジー メンバーシップ関数の平方根として定義されます。 このヘッジを使用すると、ファジー メンバーシップ関数は増加します。
  • VERY濃度としても知られており、ファジー メンバーシップ関数の二乗として定義されます。 このヘッジを使用すると、ファジー メンバーシップ関数は減少します。
String

戻り値

名前説明データ タイプ
out_raster

出力は、値が 0 ~ 1 の浮動小数点ラスターになります。

Raster

コードのサンプル

FuzzyMembership (ファジー メンバーシップ) の例 1 (Python ウィンドウ)

次の例では、[Gaussian] の関数を使用して、ファジー メンバーシップ ラスターを作成しています。中間点 (1,200 フィート) に近い標高値には、高いメンバーシップ値が与えられています。

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyMember = FuzzyMembership("elevation", FuzzyGaussian(1200, 0.06))
outFzyMember.save("c:/sapyexamples/fzymemb")
FuzzyMembership (ファジー メンバーシップ) の例 2 (スタンドアロン スクリプト)

次の例では、[Gaussian] の関数と拡散 0.4 を使用して、ファジー メンバーシップ ラスターを作成しています。中間点 (1,000 フィート) に近い標高値には、高いメンバーシップ値が与えられています。

# Name: FuzzyMembership_Ex_02.py
# Description: Scales input raster data into values ranging from zero to one
#     indicating the strength of a membership in a set. 
# 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 = "elevation"

# Create the FuzzyGaussian algorithm object
midpoint = 1000
spread = 0.4
myFuzzyAlgorithm = FuzzyGaussian(midpoint, spread)

# Execute FuzzyMembership
outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm)

# Save the output
outFuzzyMember.save("c:/sapyexamples/fzymemb2")