# Markov chains, cellular automata, and raster algebra

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. – George Silva Feb 23 '16 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. – Jeffrey Evans Feb 23 '16 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 '16 at 0:38