[GRASSLIST:3330] Re: [GRASS5] CA model of invasive insect spread
hamish_nospam at yahoo.com
Mon May 3 03:28:03 EDT 2004
> I'm starting a PhD modelling the spread of invasive organisms based
> on GIS data.
I'm curious to know what you mean by "based on GIS data". Topographic or
other boundary constraints? Accelerated critter dispersal along/near
roads or land type?
> I'm currently trying to decide how exactly to go about it. So far I've
> decided cellular automata will be my simulation model, but I've yet to
> decide on the GIS interface.
> I have several options, since I also have some funding backing me:
> 1. ArcGIS accessed through their ArcObjects API. I already have
> access to ArcGIS within the university campus. Windows only.
For the record, it works via VirtualPC on Mac OSX, albeit a bit slow.
That way you get to be virus free :)
> 2. Matlab spatial data analysis toolkit and imaging toolkit. These are
> both expensive, but have good support and I already have a Matlab
> license. Also this is both Linux and Windows.
Do you mean the Mapping Toolbox? (+ image processing toolbox) Looks
nice, but besides the access to the Matlab engine (see below) it looks
like pretty standard stuff re GIS functionality and it's a bit vauge on
what it means by 'analysis'. If you are already pretty good at Matlab it
might be useful for its integration.
I see it uses the PROJ.4 library too. Nice to see. I wonder if they've
given anything back..... [why I like LGPL better than BSD]
Given the choice, regardless of price, I'd consider GMT as a mapping
solution as well (for output). That is an area where the Toolbox might
be more advanced than GRASS.
Note there are two new GRASS modules r.in.mat and r.out.mat for
and exporting Matlab files to GRASS. It's simple & fast. You can set up
& manage your region in the GIS, do the number crunching in Matlab, and
reimport the results into the GIS for plotting or further analysis.
Each to their own strengths & all that.
The same idea goes for using R-statistics or Gstat as a back-end for
intermediary processing steps.
> 3. PCRaster looked like it could be used.
Don't know. Looks interesting.
> 4. And last but certauinly not least, GRASS! I have only just come
> across it, and looks to be pretty good.
For support for the NZ mapping projections you'll need to use GRASS 5.3
or newer. For NZ Map Grid we have a LINZ supplied distortion grid
so the conversion to & from other projections is very very good.
> I was just wondering if any body could give me suggestions, or their
> opinions on the other packages in comparison to GRASS.
If you already know some (or are willing to learn) UNIX shell or perl-
type scripting, maybe some C, GRASS is *really* flexible & powerful.
If not, you might be in for a steep learning curve, but as they say,
there sure are nice views from the top.
The proprietary stuff is good (maybe even better) if you want to do the
common tasks they were designed for. If you want to do something outside
the norm or original though, you're likely to get no where fast.
> I've searched the mail archives to discover that r.ros (wildfire
> spread) is meant to be CA based, but have yet to look at it.
I think the wildfire stuff might be very useful as a starting point.
It's also possible to use r.grow(2), r.cost, &/or r.mapcalc in a shell
script loop to do CA. It's a bit of a clunky brute force way of doing
things, but I can attest that it works.
> Also has anyone thought of implementing GeoAlgebra for GRASS? It is an
> extension of MapAlgebra and is extremely useful for CA operations. I
> might be able to contribute to GRASS by implementing it if I end up
> using GRASS as a platform.
I think r.mapcalc will do any & all of that. It has fine-grained support
for neighborhood modifiers. For simpler box calculations there is
r.neighbors. And there are limitless combinations of the 100+ other
raster modules to use.. Of course you are always free to implement
GeoAlgebra if it fills a need.. I'm just not sure it is worth the
trouble (not knowing anything about GeoAlgebra of course).
Do consider creative use of r.cost & r.mapcalc anyway. They're a pretty
powerful combination once you figure out what it is you want them to
More information about the grass-user