Fuzzy Membership (Spatial Analyst)

License Level:BasicStandardAdvanced

Summary

Transforms the input raster into a 0 to 1 scale, indicating the strength of a membership in a set, based on a specified fuzzification algorithm.

A value of 1 indicates full membership in the fuzzy set, with membership decreasing to 0, indicating it is not a member of the fuzzy set.

Learn more about how Fuzzy Membership works

Usage

Syntax

FuzzyMembership (in_raster, {fuzzy_function}, {hedge})
ParameterExplanationData Type
in_raster

The input raster whose values will be scaled from 0 to 1.

Raster Layer
fuzzy_function
(Optional)

Specifies the algorithm used in fuzzification of the input raster.

The fuzzy classes are used to specify the type of membership.

The types of membership classes are:

The following are the forms of the membership classes:

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

Fuzzy function
hedge
(Optional)

Defining a hedge increases or decreases the fuzzy membership values which modify the meaning of a fuzzy set. Hedges are useful to help in controlling the criteria or important attributes.

  • NONENo hedge is applied. This is the default.
  • SOMEWHATKnown as dilation, defined as the square root of the fuzzy membership function. This hedge increases the fuzzy membership functions.
  • VERYAlso known as concentration, defined as the fuzzy membership function squared. This hedge decreases the fuzzy membership functions.
String

Return Value

NameExplanationData Type
out_raster

The output will be a floating-point raster with values ranging from 0 to 1.

Raster

Code Sample

FuzzyMembership example 1 (Python window)

This example creates a fuzzy membership raster using the Gaussian function where elevation values closer to the midpoint (1,200 ft.) have a higher membership value.

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 example 2 (stand-alone script)

This example creates a fuzzy membership raster using the Gaussian function and a spread of 0.4, where elevation values closer to the midpoint (1,000 ft.) have a higher membership value.

# 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)

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

# Execute FuzzyMembership
outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm)

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

Environments

Related Topics

Licensing Information

ArcGIS for Desktop Basic: Requires Spatial Analyst
ArcGIS for Desktop Standard: Requires Spatial Analyst
ArcGIS for Desktop Advanced: Requires Spatial Analyst
4/10/2014