I have to do a multi-criteria analysis to answer the question : "which is the best lot to develop".
A few of the criterias are :
- distance of the nearest bus stop (point layer with bus stops)
- distance of the nearest shop (point layer with shops)
- what is the flood danger (polygon layer, with danger grade attribute from 1 to 4)
- is the lot in a nature-protection area (polygon layer)
- is the owner already planning something on his lot (manual entered information in the lot's attributes) and so on...
I thought I'd give it a try with QGIS, and here's how I've done :
add the following columns in my lots layer attributes table :
- "analysis_BUS"
- "analysis_SHOPS"
- "analysis_FLOOD"
- "analysis_PROJECT"
- "..."
- "analysis_MEAN"
Convert my lots layer to points using "polygons to centroids"
Run the "distance matrix" tool
Open the CSV to run an operation in excel (bus stop grade is 1.0 if nearer than 200m, and 0.0 if more than 750m, but I coulnt find the MIN() function in QGIS)
Join the resulting CSV back in QGIS
Repeat the same for shops
Run the "point in polygon" tool to select all the points in nature-protection area
Set 0.0 to all selected points
Repeat for other "in ... area" criterias
Run the "spatial join" tool to merge flood danger area information
Run a calculation using the column calculator to have the mean grade (using determined factors for each criteria)
Once all that done, re add the BUILDING LOTS shapefile once for each criteria
For each criteria, join the converted layer (that one with the centroids) on the LOT id
Set the display to a gradient from red to green according to the corresponding criteria attribute and the mean grade attribute
Now, after a good 2 days of work, i now have all my criterias displaying in green if good choice for building, and red if bad choice, and I have my synthesis which aggregates all my criterias in one beautiful red-green map. (and I also have a huge mess in my "shapefiles" folder)
Now the problem.
What if :
- i'd like to try the same analysis with another bus network scenario ?
- i receive an updated lots shapefile (with, let's say, 13 modification in all the 13000 lots)
- i'd like to test different weights for my criterias ?
Do I have to start all over again ?
Am I correctly using the wrong tool, or am I using the correct tool wrong ?
Would it be easier with a commercial GIS software ?
I see what answerers/commenters mean, and i didn't really think of using rasters.
However, the main question was more about the ability to try different scenarios or update the base data without having to restart all the process from scratch.
It seems that your suggestions are not much more flexible than what I suggested (even maybe more complex) since you have news steps : - (for each criteria) rasterization. - (in the end) sampling (quite complex if you want to include partial overlaps)
That Sextante Model builder seems awesome; in fact I was exactly thinking at something like that when posting my last comment.
I've used Grasshopper3D quite alot (it has nothing to do with GIS software) which is a great plugin for the Rhino3D modeler and which uses the same concept of node graph workflow construction. (example : http://designreform.net/2009/07/rhino-grasshopper-parametric-truss )
This seems so well adapted to a lot of GIS data analysis that I'd love to see a GIS software really built around such a node graph tool.
I'm looking forward to try Sextante Modeler and let you know how it worked out. I wish i had found about it by myself by googling it, but i didn't know the keyword "model builder".