I have been using various arcGIS tools to try and do this. Unfortunately, the reclassify tool in arcmap can only output integers. A cool workaround that I found is using the raster calculator in arcmap, as suggested by Jeff Evans in this post: http://forums.arcgis.com/threads/15396-Reclass-from-Integer-to-Floating-point
*"Here is an example using a 4 value integer (21, 41, 42, 43) raster that results in a float with the values of 1.0, 2.0, 3.0, 4.0: Float(Con("nlcd" == 21, 1.0, Con("nlcd" == 41, 2.0, Con("nlcd" == 42, 3.0, Con("nlcd" == 43, 4.0, 0.0)))))"*
This works like a charm and gives me the desired output...
HOWEVER, I cannot use this process in arcpy... Because I need to do many loops of this process, I need it to be its own python script and “The Raster Calculator tool is intended for use in the ArcGIS for Desktop application only as a GP tool dialog box or in ModelBuilder. It is not intended for use in scripting and is not available in the ArcPy Spatial Analyst module”.
To be honest, I am starting to give up on using arcpy for this, does anyone out there know how to do this efficiently using arcpy? I also tried some R code but it took way too long (my grids are around 1500x2400 cells). I also tried a python reclass script my colleague he built scratch, and it also takes too much time.
Any ideas/suggestions?
Thanks for your time!
R
has no problem processing grids this size and the conversion to float is instantaneous.raster
package I just wrote a 1500 by 2400 floating-point grid to disk in 2.4 seconds (which is still slow by most standards, but it's not 4 minutes!). This package provides in-RAM and multi-core functionality that could further speed the process.