MCDA in GRASS

From GRASS-Wiki
Jump to: navigation, search

This page mostly contains ideas to be implemented.

About

This page contains various information about Multicriteria Decision Analysis (MCDA) support in GRASS. It has been creating during the 2010 Google Summer of Code application period.

Existing MCDA support

There is a MCDA add-on . This add-on contain 4 rasters modules :

  • r.mcda.electre
  • r.mcda.fuzzy
  • r.mcda.regime
  • r.roughset

Improvement proposal

Jean-Denis Giguere Summer of code proposal

Contact Information

   * Name: Jean-Denis Giguère
   * Country: Canada
   * School and degree: Université de Sherbrooke, Master in geographic sciences
   * Email: jdenisgiguere at gmail dot com
   * Phone: (available upon private request :-) )
   * OSGeo project(s):GRASS


Title

Improvement of multicriteria analysis tools in GRASS.

Introduction

Last decade show us a rapidly growing geospatial awareness in our society. Everyday, more people use more intensively geospatial information to make decision. Using Geospatial information to solve relatively simple day to day tasks is always more common. Open source software, improved access to geospatial data, mobile technology allowed this explosion of geospatial awareness. The increase of geospatial information usage make general population and manager offer today great opportunity to improve Geographic information systems (GIS) role in decision making. It is not a new idea that GIS could play important role in decision making. But open source geospatial software community could benefit of this trend by making tools even more attractive for decision analysis.

A good way to improve GIS software contribution to decision making activities is to incorporate in them tools specifically developed for decision analysis. A large family of them are known as Multicriteria Decision Analysis (MCDA) tools. MCDA and GIS are coupled in scientific litterature since early nineties. Inclusion of some of those tools in an open source gis software like GRASS could be a interesting way to make them more available.

GRASS add-ons repository already offer some MCDA support. The aim of this project is to improve this support by adding new combination rules (algorithms) and support more data models (add vector support to existing raster support).

MCDA litterature presents situations where a limited and known alternatives are evaluated to find the best (or a good). Those situations are known as Multiattribute decision analysis (MADA). Alternatively, evaluation could be evaluated over a specified domain, but not a specified set of alternatives. This is Multiobjective decision analysis (MODA). This SoC project porpose to implement both MADA and MODA combination rules.

MCDA is used in many application domains. Selection of combination rules will be based on relevance and frequence of use in a selected subset of application domains provided in litterature review. Priority will be given to environmental and planning application.

Background

I will finish in early May my master thesis in Geographic Sciences. While finishing my thesis, I'm teaching an introductory course in GIS at Université de Sherbrooke. I give my course using several open source software. Open source geospatial softwares play a major role in that course. We use GRASS, Quantum GIS, Geoserver, Geonetwork, R for covering differents important questions in GIS. GRASS is the main Geographical information system software used for spatial analysis and decision making.

Google Summer of Code offer me a very interesting opportunity to contribute back to the GRASS community, and more broadly to the Osgeo community. I have basic skills in programming. Although I'm more a GIS analyst than a programmer, I already succeed to produce substantial codes for production use for another open source project. My master thesis is about evaluation of an atmospheric simulation model related to light pollution. I'm really interested by software development processes from initial specification phase to deployment, including continuous QA activities, documentation, etc.

Maybe because I study and teach in a "Applied Geomatic" department, decision making is a critical concern for me. GRASS offers a wonderful toolbox for many geospatial analysis. I think improvement of decision making tools will make GRASS even more powerful for many users.

There is already a GRASS add-on for multicriteria decision analysis [1]. This add-on is a very interesting start, but I think we should offer more options. Firstly, I think MCDA tools are as important for vector analysis than for raster. The mcda plugin works only with raster data. Also, there are many interesting combination rules. I think we could add at least one other combination rule that would be useful for scenario evaluation.


The idea

Describe your detail in as much detail as you can. Explain what algorithms you intend to use/study (if any). Also describe the business benefit, that is how your idea improves the program it is intended for. Who is your intended target audience (end users?, administrators?, developers?)


My project is about improving decision support tools in GRASS using Multicriteria Decision Analysis (MCDA). These tools will be useful for GIS analysts who already use GIS in decision support applications. They could also be use in GIS courses. MCDA is present in the joint UCGIS and AAG GIS&T Body of Knowledge.

The reflexion about this project is insired by the survey of litterature made by Malczewski in 2006 [1]. In this paper, the author presents a classification of GIS MCDA papers written between 1990 and 2004. This classification is use to determinate significative functionnality. GRASS community feedback is use to validate selection and improve adequacy between development and actual need of GRASS users.

In addition to new GRASS modules, this project include production of a comprehensive documentation. Sample dataset will also be created.

TODO:

  • Describe main algorithms
  • Describe implemantation issues
  • Describe test plan (acceptance, unit testing, integration, etc.)


[1] Malczewski, J. 2006. International Journal of Geographical Information Science. Vol. 20, No. 7, August 2006, 703–726.

Project plan

I think that an iterative software development methology like Agile Programming could be adequate for this project. Short release cycle will allow fast feedback for the community. It will ensure that every components will be made on time. Specifications will be documented using story card-like documents on wiki. Each iteration will include new tests, new code, new dev documentation, new end-user documentation (generic grass doc and tutorial).


March 29

Initial application submission.

April 5

Application update.

April 12

Litterature review. Writing first stories:

   * Point (vector) site selection using outranking method.
   * End-user demo for available raster MCDA function
   * Polygon (vector) site slection considering uncertainty


April 19

Warm up. Reading Grass dev guideline, and v.example http://trac.osgeo.org/grass/wiki/HowToProgram

April 26

SoC participants announced Improve acceptance test.

May 3

Bonding period

May 10

Bonding period

May 24

Code

May 31

June 4. Iteration deadline

Code

June7

June 18. Iteration deadline

Code

June 14

Code

June 21

Code

June 28

July 2. Iteration deadline

Code

July 5

Code


July 12

Mid-term evaluation

July 16. Iteration deadline

July 19

More code

July 26

Rethink

August 2'

code

August 9

Pencil down (last iteration deadline)


August 16

Final evaluation


Future ideas / How can your idea be expanded?

Describe how your idea can be improved and extended, and what the benefits of this extension would be. Perhaps your idea can be used in some other project, or for something else?


Answer the following questions briefly (about 300 words max)

Osgeo questions

How does your SoC task would benefit the OSGeo member project, and more generally the OSGeo Foundation as a whole?

GIS are traditionally associated with decision support. Since population in general and decision makers are always more aware of the importance of geospatial information, there is a good timing to improve decision support tools in GIS software. GRASS offer a complete toolbox for spatial analysis. Including state of the art decision making tools may be an interesting way to make GRASS even more powerful in decision making situation.


Please provide details of previous GIS experience

I have a B.Sc. in "Environmental GIS" (Géomatique appliquée à l'environnement). I will finish soon my Master Degree in Geographical Sciences. I'm teaching GIS at Université de Sherbrooke. I have work experiences using, deploying and developping open source geospatial software.

Do you have any previous GIS programming and other software programming experience?

My primary programming language is Python. I use this language to automate many processing during my master degree. I'm also familiary with R and PHP. I did an internship at CamptoCamp where I developed thematic mapping capability for the Cartoweb framework. The project was in an object oriented PHP.

I made some C++ programming during another 8 months internship, but my work was more about analysis than programming.

I made minor improvements to two simulation models in Fortran 77.

I use BASH scripting on a weekly basis, to automate different GIS-related operations.

During my undergraduate studies, I took a data structures and a algorithm courses.


Please provide details of general computing experience

Linux is my primary operating system since 2001. I used Red Hat, Slackware, Mandriva and Debian before switching to Ubuntu. I packaged applications under Red Hat, Mandriva and Debian.

Python and BASH are my strongest programming languages. I did not write much C/C++ code, but I use these languages in computer sciences courses and I'm interested to improve my knowledge of C.

I was involved in my university linux user group during about four years.

My university department is specialized in remote sensing application. I work with several spectroradiometric instruments. I did some work on data acquisition and transfert.


Please tell us why you are interested in GIS and open source software

My interest in GIS and open source software came from the idea that we always need a global perspective of a given problem to find the best solution, which takes generally the form of a local action. GIS and «libre» software allow to consider the big picture, but let you choose the most suited action considering your scale.

Both GIS and open source are collaborative by nature. GIS project are always multidisciplinary. We need each other to solve problems. Open source software allow everyone to contribute to improve a growing library of applications. Collobaration is a key feature of growing community, both GIS and Open Source promote it.

GIS offer important tools for decision making. Our life is about making decisions, so having better tool to make better decision may not be a luxury. GIS allow consideration of the spatial dimension of problems. Spatial dimension could not be omitted in many (or any) situation.


Please tell us why you are interested in your specific coding project


Please tell us why you are interested in working for OSGeo and the software project(s) you have selected



Do you understand this is a serious commitment, equivalent to a full-time paid summer internship or summer job?