Raster GISes like GRASS, ArcGIS/Spatial Analyst, and Idrisi can perform a rich set of data processing and analytical procedures loosely known as "map algebra." In today's computing environment it is becoming commonplace to maintain rasters of 100,000,000 cells or more in many different formats and to demand relatively complex calculations like viewsheds, watersheds, and terrain identification, as well as image processing capabilities.

It seems that many open source, free, and inexpensive solutions are out there. But which ones really hold up in practice? That is, which ones can handle large grids efficiently, can easily get data in and out, are reasonably bug free, and offer a full complement of analytical procedures? What are the pitfalls or hidden limitations that you don't find out until you have invested lots of time in learning these systems? (This last question is one that is not easily answered with Web searching and where I am hopeful respondents can offer valuable advice.)

I am especially interested in solutions that can both integrate well with and compete with the popular (but expensive) commercial systems (which means Windows compatibility is important).

  • Thank you to all who provided answers; I find everyone of them useful. @scw's answer stands out for its coverage of several different options. – whuber Nov 27 '10 at 3:12

I can't speak to SAGA or some of the other systems, but I have used GRASS extensively, including for an global-scale analysis of ~720M cells which required robust implementations of raster algebra and complex terrain operations. (As an aside, with the discontinuation of ArcInfo, GRASS is arguably the longest continuously developed GIS).

GRASS data and tools can be readily accessed through QGIS, which provides a nice ArcView GUI analog. QGIS itself is gaining nice raster analysis capabilities, such as the GDALTools plugin, but these are quite new and lack the maturity and depth of GRASS itself.

Another prospect is the raster package for R: R has a large userbase, the source of methods are easy to access, and it includes the cutting edge of many statistical techniques. However, it lacks in image processing tools and may not be sufficient for the kinds of tasks you're interested in.

Lastly, GDAL forms a solid basis of many, if not most modern GIS systems, and has very fast implementations of many common map algebra operations. It can be used through its Python interface or through direct C/C++ in times when the 'layer' abstraction proves insufficient.

  • 2
    I find working with GRASS in QGIS quite enjoyable. I did a bushfire project last month using GRASS and QGIS and was very happy with it. – Nathan W Oct 22 '10 at 11:09
  • 4
    The biggest stumbling block I've had with trying to use GRASS in a real way is pushing data into and out of it's custom file format. I really wish it could use geotiff's etc. in situ. – matt wilkie Nov 8 '10 at 20:00
  • +1 for R and GDAL, R can be used for a lot of general array operations and with rgdal support import/export is good - raster can make that and other things a lot simpler, but getting under the hood closer to R, and the out of memory links in rgdal can be helpful, and there is support for out of memory arrays with the ff package. – mdsumner Feb 24 '11 at 10:12
  • 3
    @matt: With r.external you can just register raster maps on the fly. No need to import into GRASS format. And in GRASS 7 there is r.external.out to even write out immediately in any GDAL supported format. – markusN Feb 24 '11 at 20:30
  • @markus, thanks for letting me know there is way to use non-grass rasters directly. I'll definitely give it another go next time I have some raster analysis to do. – matt wilkie Feb 24 '11 at 21:56

We use a mixture - from Spatial Analyst, SAGA, Ermapper, a bit of GRASS, but in the end we tend to go to Geosoft - though that is because we do a lot of geophysical enhancement processing. Spatial Analyst/ArcGIS is good because you can easily extend functionality through the toolboxes/geoprocessing but we've found the actual Spatial Analyst processing routines are often not the best. Of late we've built toolboxes to access SAGA modules from within ArcGIS so we can continue to use the functionality without having to import/export - the toolbox looks after all that as necessary. We'll probably look at doing a similar thing to access GRASS functionality as well

  • Very late answer, but did you have a look at sextante (sextante.forge.osor.eu). It includes both SAGA and GRASS modules. And it has been used as a toolbox for ArcGIS. – Ecodiv Sep 29 '11 at 6:13

You can now work and do map algebra with rasters of almost unlimited size in a spatial database with PostGIS. I personnaly work with SRTM and climate data at the scale of Canada. I can do intersection between raster and vector layers in a very fast and transparent way. I can also use a whole set of map algebra functions.


Manifold with Surface Tools is very good in terms of importing formats and handling large rasters, analysis can be done directly between matching rasters or with implicit reprojection. There's GPU support for a number of raster functions, and there's strong support for automation with a variety of scripting languages and SQL. The price is good at a few hundred US.

General doc for Surface Tools:


Here's the current list of functions available to the Surface Transform dialog, which accepts custom expressions to perform calculations between multiple rasters:


One pitfall is that exports of "surfaces" (rasters) cannot be done to GeoTIFF (images can). I usually export to SDTS and convert that to GeoTIFF with GDAL. The mapping of coordinate systems from Manifold's (own) support and other systems like GDAL's family is not perfect, but problems are pretty rare.


I have heard of quiet a few people using SAGA. But I personally have very little experience with it.


  • 3
    As an avid SAGA user and with some development experience I have to add: saga is great, but not for the usecase that is asked here: big raster files. SAGA loads grids into memory completely, which makes it very fast with smaller grids, but once you start working with big grids you need 64 bit and a lot of ram. – johanvdw Jan 6 '11 at 21:46

For this article "Estimating daily Land Surface Temperatures in mountainous environments by reconstructed MODIS LST data (full text PDF) I have processed 11,000 MODIS LST images easily in GRASS GIS, in a parallelized manner on our cluster. Great fun since it just works.


we use SAGA for monitoring data from dose rate and gamma spectrometry measurements (airborne or ground, natural background, old mine dumps etc.) processing. I has many useful modules for us and we enjoy it much.

PS: as the SAGA map output has its limitations, for more advanced maps we combine it with Quantum GIS.

  • Thank you! Could you possibly amplify your reply to indicate what you do find useful and what the limitations may be? – whuber Jun 11 '11 at 16:52
  • Ok, I found very useful that SAGA has many tools, that we need and which other SW we also have (like MapInfo) do not have or are not much user friendly (Geosoft). Unlike GRASS, SAGA works natively with the same GIS files like shapefiles or asc grids and has a lot of tools for raster analysis and processing (clipping, sorting, filtering ...). The limitations are for example in map output - you cannot modify the layout, title etc. But this can be solved by using Quantum GIS together with SAGA. There is no problem to do the analyses in SAGA and finish the maps in Quantum GIS. – Juhele Jun 17 '11 at 12:36

Speak for myself, I am biased in this case. But I mostly use IDRISI for raster GIS. Largely because IDRISI offers most comprehensive tools for raster analysis if you compare it with other GIS software. From various classification and prediction statistical models to watershed and cost distance analysis, it has pretty much everything we need for daily raster analysis. It also has an extension for ArcGIS. It has improved its ability to handle large data. However, none of the GIS software really can calculate a 1000000 by 1000000 cost distance in a minute yet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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