# Adding sigmoidal curve function in ArcGIS raster calculator?

I would like to add a sigmoidal function to create a factor map In ArcMap. The function has to decrease with an increase in values.

For example: The suitability should be 1 for a distance of 250m and then it should decrease as a cosine function until 1250m.

250m has highest suitability value 1 and it decreases to 0 for distances more than 1250m

Could someone explain how to do this using raster calculator?

From sigmoidal curve family I prefer to use the Logistic Function, which is able to describe quite well the natural probability decreasing.

y = L / 1 + e^k(x-f)

You need to decrease the probability from 1 to 0 between 250 and 1250 meters of distance, so the interval is 1000 m and the midpoint at 500 m.

First you have to compute the Euclidean Distance, which creates a raster file with the distance values from your area of interest. Then you need to use the Raster Calculator with conditional statement: from 0 to 250 set 1, from 250 to 1250 compute the Logistic Function, beyond 1250 set 0.

The Logistic Function has these parameters:

• L = 1 (the maximum probability value)
• f = 500 (midpoint distance)
• k = 0.01 (curve steepness)

If your distance raster is "EucDist", the Raster Calculator expression is:

``````Con("EucDist"<=250, 1, Con(("EucDist">250) & ("EucDist"<1250), (1/(1+Exp(0.01*(500-(1250-"EucDist"))))), 0))
``````
• Tons of thanks for detailed explanation :)It worked for me.I need another help now. Is it possible to create this shape with 4 points? Like 250 m = 0.999, 1375 m= 0.5, 3000 m=0.1 and 5000 =0.01. – Maya Mar 14 '18 at 11:30
• You need to create an equation from given points. Using this quick&dirty website to find the fitting curve with 4 points, the resulting symmetrical sigmoidal equation is `-0.02351947 + (1.004916 - -0.02351947)/(1 + (x/1395.793)^2.625316)`. The equation has to be used in the Raster Calculator expression substituting x with EucDist in the proper distance interval. – Nonpenso Mar 15 '18 at 8:46
• Thanks:) I also got an equation like that from akapps.wordpress.com/2011/08/27/simple-s-curve ANd i applied it in ratser calculator as this:Con("%Kommuneu%" < 250,0,Con("%Kommuneu%" > 5000,0.01,(0.999 / (1 + Power(81,1700 + 2000 / 2 - "%Kommuneu%") / 2000)))). I am new with ArcMap and your replies helped me a lot to figure out so much of things. Thanks again – Maya Mar 16 '18 at 9:04
• I don't get your expression, in particular why 0.999 as numerator and these other values 81,1700,2000. Don't forget to close the question if it has been answered. Thanks. – Nonpenso Mar 16 '18 at 13:57
• Hej, Thanks for the link to the curve fitting website. – Maya Jun 1 '18 at 12:38