Together with Asia Air Survey we’ve developed MOLUSCE (Modules for Land Use Change Simulations) – a new tool based on QGIS that allows to perform quick and convenient analysis of land cover changes.

A researcher who analyses changes in landscape through time often deals with questions like:

- What are the changes and where did they happen?
- Which factors can explain the changes and strong is their explanatory power?
- What changes are expected in future and where?

The answer for the first question can be obtained by visual estimation, but to answer other questions one will need to set hypothises, verify them, derive conclusions and see how they meet the reality.

MOLUSCE is a toolbox to partially automate the process of answering such questions.

Briefly, the workflow consists of the following steps:

- Obtain landcover map for few time slices and a set of potential explanatory variables;
- Calculate probabilities of transitions from class to class;
- Build a model using ANN, logistic regression, Weights of evidence or Multi-criteria evaluation to describe transitions based on factor variables;
- Use this model for forecasting;
- Validate the result with real data.

Find more information in GIS-Lab article (Russian, autotranslated).

Hello. My name is Ana.

I’m working with maps of land use and land occupation. I’m trying to use the molusce but always appear errors saying that the geometry of the selected components do not match.

Would you help me?

Thank you very much in advance.

https://github.com/nextgis/molusce/issues/10

There is a graph at above figure on x and y. I knew that x-ordinate showed iteration. How about y-ordinate?

This graph shows changes of errors during the training process (one line presents training set errors, the second line presents validation set errors). The errors are measured as mean squared errors for all transition classes.

There is also a plot on Validation page where “Error Budget” technique is used for validation (see the article http://www.econgeography.org/~rpontius/pontius_suedmeyer_2004_rsgisaa.pdf). More technical details about validation are presented here: http://wiki.gis-lab.info/w/Landscape_change_analysis_with_MOLUSCE_-_methods_and_algorithms#Validation

Hi,

I am a PhD Student and I am working on land use and land cover changes. I am trying to use MOLUSCE plugin for the land-use simulation but I couldn’t find where to enter the exact year for which I am interested in predicting. It ask for initial and final year at the first step, but I am not sure for which year the simulated map is for.

Thank you for your help.

Hi Claudia, target year is year_after + year_diff, where year_diff = year_after-year_before

So if your data is for 2005 and 2010, than the prediction will be for 2015.

Hi Maxim, thanks for the answer.

Just another question, at the windows ‘Cellular Automata Simulation’ we have the option ‘Number of Simulaton iterations’. It means if I put 1, it will be project into the future only once. For example, If the data is for 2005 and 2010, it will be project into 2015. In case I change the ‘Number of Simulation iterations’ to 2, it will be project into 2020???

Thanks for your help and congrats for the plugin.

correct

Maxim, was any paper published about the MOLUSCE plugin? I need a reference to include in my paper.

Thanks

I believe so, but we’re not tracking citations. Just Google it and let us know here what you found.

Hi,

I would like to use the MOLUSCE plugin to forecast land use. I am not sure if the plugin uses Monte Carlo Cellular Automata, CA Markov Chain, or only Cellular Automata aproach to to forecast land use.

Could you please just clarify which approach is used to predict? If it uses Monte Carlo simulation, how many iteration is used?

Regards,

Andre Santos

Hi Andre,

thank you for the important question.

MOLUSCE realization is cellular-like approach, but it isn’t classic cellular automata. Classic realizations of cellular automata are rule-based (e.g. “if current pixel is forest and at least six neighbours are pasture, then new state is pasture”). MOLUSCE realization does not use explicit user-defined rules; instead it uses models (such as ANN) that make prediction of the probabilities. (For example, an ANN takes states of the current pixel and it’s neighbourhood, then updates state of the pixel using information encoded in the neighbourhood pixels. All rules are implicit and received during the ANN fitting procedure.)

So MOLUSCE uses the following simulation logic:

For every transition class (for example forest -> pasture) perform steps 1-3.

1. Find number of pixels that have to be changed (forest -> pasture). The count depends on transition probabilities.

2. For every pixel calculate transition potential using trained model. The potential depends on the model, current state of the pixel and its neighbours.

3. Find pixels with the highest transition potentials and change their state.

Hi Dmitry,

Thank you very much for the detailed explanation.

Can I conclude that the method use a combination of three approach (Markov transition probability, artificial neural network and Cellular automate) to predict future land use change?

Regards

Hi Andre,

Really I don’t know because terminology is quite ambiguous. I’m not sure that we using the same terms. So I can’t say simple ‘Yes’ or ‘No’, but I have to explain in more words. Sorry for the wordiness.

Yes, you are right in general: MOLUSCE uses a combination of three approaches. But below are presented some details.

The predictions/simulations are done using the next procedure:

1.

Get Transition Probabilities.Get two rasters (Init-State -> Final-State). For every pixel in Init-State-raster find corresponding pixel in Final-State-raster and update lookup table:```````| Class1 | Class2 | ... | Class N

-------+--------+--------+-----+--------

Class1 | n_11 | n_12 | ... | n_1N

.......| ... | ... | ... | ...

Class N| n_N1 | n_N2 | ... | n_NN

where n_ij is the number of pixels that changed their class (Class i -> Class j). Finally we can calculate frequencies using the counts and use the frequencies as the transition probabilities.

2.

Model Training.Second step trains a model for predicting the transitions between classes. This step doesn’t uses transition probabilities, it tries to find appropriate model for every transition Class i -> Class j. (The model uses user-defined predictors and window of user defined size). Initially the training procedure creates some random points for sampling. For example if the user gives 2 predictor (say, elevation and annual temperature) and uses 3×3 window, then the training procedure uses 27 dimensional vector of input variables for every sample: 9 neighbors in Init-State-raster + 9 neighbors in elevation raster + 9 neighbors in temperature raster and K output variables (we use dummy encoding for the transitions). Then we train a model to predict transition Class i -> Class j (molusce has 4 modes, not ANN only).3. The simulation procedure I described in the previous note.

So finally:

* The transition probabilities are Markovian because they are depend on current state only (state number L) and don’t depend on on previous states (L-1, L-2, …).

* But the transitions Class i -> Class j depend on probabilities AND the predictors AND the current class of pixel AND the neighbors AND the trained model.

In other words, if we define state of the system as the tuple

`STATE == (the current class of pixel, the neighbors, the predictors, the trained model),`

then we can say that the process in Markovian.