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?
1 Answer 1
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.Deepa– Deepa2018年03月14日 11:30:29 +00:00Commented Mar 14, 2018 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– Nonpenso2018年03月15日 08:46:40 +00:00Commented Mar 15, 2018 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 againDeepa– Deepa2018年03月16日 09:04:21 +00:00Commented Mar 16, 2018 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– Nonpenso2018年03月16日 13:57:55 +00:00Commented Mar 16, 2018 at 13:57
-
Hej, Thanks for the link to the curve fitting website.Deepa– Deepa2018年06月01日 12:38:45 +00:00Commented Jun 1, 2018 at 12:38
Explore related questions
See similar questions with these tags.