skopp-esristaff

Spatial - Map Algebra and Raster Calculator

Discussion created by skopp-esristaff Employee on Nov 9, 2009
Latest reply on Feb 25, 2010 by Riverside
Several threads have touched on the changes to the Spatial Analyst Map Algebra and disappearance of the Raster Calculator. For all you who love Map Algebra and the Raster Calculator, the team agrees with you! The changes we have made to the Map Algebra language to make it integrate well with Python do change the language, but we feel it still looks and behaves enough like Map Algebra that you???ll feel the benefit is worth it.

There are two Map Algebra experiences, the scripting experience and the raster calculator experience. Improvements to the language were made to improve the scripting experience. Having Map Algebra tightly integrated with our native scripting environment, Python, has not been possible except in Workstation when we wrote our own verison of both. Python provides a rich set of capabilities for you to take advantage of and integrate with our out of the box tools. We believe that Python will be the language of GIScience and this integration will play a key role. A feature you will see in beta2 that compliments this is  the ability to move blocks of pixels back and forth between ArcGIS rasters and Python arrays, allowing you to write your own raster analysis tools.

The other side of Map Algebra is the raster calculator experience. We know that the Python window is not a substitute for the point and click experience and direct output of the raster calculator. We plan to build a calculator-like tool that will provide the point and click experience but also be something that you can drop into a model. Envision a combination of the old raster calculator and the SOMA tool. Unfortunately it won???t make it into beta2.

And while I have your attention I???d like to suggest that if you have colleagues who seldom use Spatial Analyst, don???t make them learn Map Algebra. Show them where to find the tools and run it from the dialogs, or better yet build them a little ModelBuilder model with a couple parameters exposed and hide all the details.

Steve

Outcomes