0

I'm trying to apply a negative exponential transformation to a raster with values ranging from 0 to 1.

In the literature, the function to do so is R = 100 - 99 * ((1 - exp(- c * H)) / (1 - exp(-c))) where R are the resulting values, H is the original value, and C is a constant, in my case 8 (due to a c8 negative transformation). So my expression in ArcMap 10.7 is:

100 - 99 * ((1 - Exp(-8 * "LAYERTOBETRANSFORMED")) / (1 - Exp(-8)))

The output raster I receive, however, has '100' for every single value...

Is there something wrong with my expression, or perhaps with my raster?

1
  • It's hard to understand why, but adding an integer value to each number in the equation works indeed, thank you!
    – Beardedant
    Commented Oct 18, 2021 at 17:46

1 Answer 1

1

Often ESRI map algebra expressions are parsed as integer so, your values would be interpreted as [0,1] and not 0-1. As such, you may want to declare your raster as float.

100 - 99 * ((1 - Exp(-8 * Float("X"))) / (1 - Exp(-8)))

You could also try including a zero decimal to each integer value in the equation eg.,

100.0 - 99.0 * ((1 - Exp(-8.0 * "X")) / (1.0 - Exp(-8.0)))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.