MCDA in GRASS
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?