ArcGIS for Desktop

  • Documentation
  • Pricing
  • Support

  • My Profile
  • Help
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS for Desktop

A complete professional GIS

ArcGIS for Server

GIS in your enterprise

ArcGIS for Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Pricing
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

Help

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • More...

Fuzzy Membership

Available with Spatial Analyst license.

  • Summary
  • Usage
  • Syntax
  • Code Sample
  • Environments
  • Licensing Information

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

  • This tool does not scale categorical data. To include categorical data into fuzzy overlay analysis, a preprocessing step is necessary. You can create a model or run the following geoprocessing tools. First, use the Reclassify tool to provide a new range of values (for example, 1 to 100). Then Divide the result by a factor (for example, by 100) to normalize the output values to be between 0.0 and 1.0.

  • Spread determines how rapidly the fuzzy membership values decrease from 1 to 0. The larger the value, the steeper the fuzzification around the midpoint. Said another way, as the spread gets smaller, the fuzzy memberships approach 0 more slowly. The selection of the appropriate spread value is a subjective process that is dependent on the range of the crisp values. For Gaussian and Near, the default value of 0.1 is a good starting point. Typically, the values vary within the ranges of [0.01–1] or [0.001-1], respectively. For Small and Large, the default value of 5 is a good starting point where, typically, the values vary between 1 and 10.

    Affect of spread on a Gaussian fuzzy membership illustration
    Affect of spread on a Gaussian fuzzy membership.

  • You may have a case where none of the input values have a 100 percent possibility of being a member of the specified set. In other words, no input value has a fuzzy membership of 1. In this situation, you may want to rescale the fuzzy membership values to reflect the new scale. For example, if the highest membership for the input values is .75, you can establish the new scale by multiplying each of the fuzzy membership values by 0.75.

  • The hedges implemented are VERY and SOMEWHAT. VERY is also known as concentration and is defined as the fuzzy membership function squared. SOMEWHAT is known as dilation, or More or Less, and is the square root of the fuzzification membership function. The VERY and SOMEWHAT hedges decrease and increase, respectively, the fuzzy membership functions.

  • Negative values are not accepted in the Small and Large membership functions.

  • For the Linear membership function, the input raster must be ordered data. The minimum can be less than the maximum to create a positive slope or greater than the maximum to create a negative slope for the transformation.

    If the minimum is less than the maximum, a positive-sloped function is used for the transformation; if the minimum is less than the maximum, a negative-sloped function is used.

  • See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.

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:

  • FuzzyGaussian, FuzzyLarge, FuzzyLinear, FuzzyMSLarge, FuzzyMSSmall, FuzzyNear, and FuzzySmall.

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.

  • NONE —No hedge is applied. This is the default.
  • SOMEWHAT —Known as dilation, defined as the square root of the fuzzy membership function. This hedge increases the fuzzy membership functions.
  • VERY —Also 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

  • Auto Commit
  • Cell Size
  • Current Workspace
  • Extent
  • Geographic Transformations
  • Mask
  • Output CONFIG Keyword
  • Output Coordinate System
  • Scratch Workspace
  • Snap Raster
  • Tile Size

Licensing Information

  • ArcGIS for Desktop Basic: Requires Spatial Analyst
  • ArcGIS for Desktop Standard: Requires Spatial Analyst
  • ArcGIS for Desktop Advanced: Requires Spatial Analyst

Related Topics

  • An overview of the Overlay tools
  • Understanding overlay analysis
  • Overlay analysis approaches
  • Applying fuzzy logic to overlay rasters
  • Fuzzy Overlay
Feedback on this topic?

ArcGIS for Desktop

  • Home
  • Documentation
  • Pricing
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Insiders Blog
  • User Conference
  • Developer Summit
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Privacy | Legal