I need to build a probabilistic cellular automaton for simulating land-use changes and am wondering how to implement this in a GIS. I understand that Markov chains are a way of doing this, and IDRISI has some sort of module for Markov chains, but I have no access to IDRISI. Someone said earlier that, with raster data, this can, in theory, be done with any GIS that can do raster algebra. Presumably this means that it can even be done in ArcGIS, and I think I've figured out how to build cellular automata in ModelBuilder (once I know with certainty how to make iteration work there).

Still, I can find next to no practical advice on this. Once I have two datasets, one showing the land use at a certain point in time (time A) and the other at a later time (time B), I imagine doing the following (correct me if I'm wrong):

  1. If there are (for example) 3 types of land use, then there are 9 possible things that can happen to a cell from time A to time B; thus, reclassify each dataset such that each land use is represented by a different number (for example, 9, 11, and 14 at time A and 3, 4, and 5 at time B);

  2. Divide one raster by the other, obtaining a raster with 9 possible cell values.

  3. Determine the percentage of cells in the new raster that has each of the 9 values (I forgot, how does one do this in ArcGIS?); those will be the probabilities of each type of change (or lack thereof) in land use.

What I cannot figure out, though, is how to apply these probabilities during the next iteration. Finally, I wonder if there is a way of making an external factor (say, proximity to roads) influence the spatial distribution (not the overall likelihood) of change in my model.

Can anyone recommend where to find information on how to do this in ArcGIS?

  • That can be done using just raster algebra. Well, it largely depends on your model . You will need to define weights for, let's say, change probability for each cell. Imagine that the chance for change in cells that are witihin 5 miles of a road is 100%. 10 miles 50%, and so on. That will yield a new raster, and you will need to construct your model from that. To estimate the percentage of resulting cells, just sum the cells of each type and divide by the number of cells in the raster. Feb 23, 2016 at 18:25
  • @George, but that will not create a Markov Chain (probability conditional on the previous probability distribution). It would be very limiting to try this in something like modelbuilder and is really a problem that you need to step out into Python to solve with a NumPy array. I am sure that there is capacity to implement MCMC's in Python. There are two packages that come to mind in R that perform landuse change modeling: lulcc and Simlander. It is my understanding that Simlander produces results comparable to IDRISI. Feb 23, 2016 at 21:56
  • I'm afraid you have to bring some stuff together the spatial time serie context and change detection, with Markov chains and transitional probabilities (isprs.org/proceedings/XXXVII/congress/6b_pdf/13.pdf) and a toolkit like R-packages (cran.r-project.org/web/packages/msm/vignettes/msm-manual.pdf for example)
    – huckfinn
    Feb 24, 2016 at 0:38

1 Answer 1


I have found out that an extension to ArcGIS (Land Change Modeler) has some of the same capabilities as IDRISI (like IDRISI, or TerrSet, it is made by Clark Labs). Among these shared capabilities, reportedly, is Markov chain analysis. I will give this extension a try (I am having trouble installing it, but that is a matter for another question).

  • This is exactly the same software, just ported to ArcGIS. Mar 2, 2016 at 15:18

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.