Hey John,
This statement doesn't have much effect:
Float("tmp" > 8.64)
because you are floating a boolean result, so you get 1.0 if true 0.0 if false. It is more efficient just leave it as boolean.
You only get integer out of a divide ("/") operation if both the inputs are integer (or boolean).
If you want to force a float raster out raster calculator, put a single Float() around the whole expression.
One more thing, you can avoid some code because of the "else" behavior of Con. If tmp has a value and is <= 8.64, this can be assumed to make it to the else expression.
These expressions are equivalent:
Con(("tmp" > 8.64), 0, Con(("tmp" <= 8.64) & ("tmp" >= 4.31), (8.64 - "tmp") / (4.33), 1))
Con(("tmp" > 8.64), 0, Con(("tmp" >= 4.31), (8.64 - "tmp") / 4.33, 1))
Con(("tmp" > 8.64), 0.0, Con(("tmp" >= 4.31), (8.64 - "tmp") / 4.33, 1.0))
Float(Con(("tmp" > 8.64), 0, Con(("tmp" >= 4.31), (8.64 - "tmp") / 4.33, 1)))
* small update. To avoid the error message: "the truth value of a raster is ambiguous" you need parentheses around the comparison expressions.
https://community.esri.com/message/14091?sr=search&searchId=966e684e-305f-4ee4-9ca7-99a811458cfa&sea...