Hi Miltinho,
hmm I think the theory of Urban and Keitt (2001) practically applied to
raster maps is what I want. But Fall et al (2007) is also very
interesting and surely seems closer to what I'm looking for. Problem is,
I don't have time right now to write a new module implementing these
ideas, and want to avoid that I reinvent the wheel.
BTW, I think I found a very simple way to get my clusters in grass, just
an idea, still have to test it.
Thanks,
Markus
Milton Cezar Ribeiro wrote:
Hi Markus,
So, if I understood well the practical theory you need is not that one
described by Urban & Keitt (2001), because they use nodes and edges,
and you want a patch-based graph theory, isn't it? May be Fall et all
(2007) is a better technical approach?
Andrew Fall, Marie-Josee Fortin, Micheline Manseau, and DanO’Brien
Spatial Graphs: Principles and Applications for Habitat Connectivity
Ecosystems (2007) 10: 448–461 - DOI: 10.1007/s10021-007-9038-7
bests
miltinho
brazil=toronto
2009/12/2 Markus Metz <[email protected]
<mailto:[email protected]>>
Hi all,
for a raster map with habitat patches separated by gaps in
between, I want to know for each habitat patch 1) how far away is
the nearest other habitat patch, 2) what's the id of the nearest
habitat patch (each contiguous patch must have a unique ID), 3)
how do I get to the nearest habitat patch, i.e. what is the
shortest path connecting one patch and its nearest other patch.
Then I need to get clusters of patches, each cluster consisting of
patches connected by paths not longer than max_distance, i.e. I
can visit all patches within a cluster by traversing gaps not
broader than max_distance (hop from one patch to the next, but I
can hop only so far...)
That would be interesting for meta-populations, dispersal etc,
habitats could be islands, forest fragments, trees of a particular
species, any habitat type with a patchy spatial distribution and
one or more species dependent on that habitat.
Any idea how to do that in grass or some other (fragment
analysis-specific) application?
Using the habitat map twice as input to r.distance would be a
start with r.distance maps=habitat_map,habitat_map, but r.distance
is too slow for my taste (running for 2 hours by now), and I still
have to get the nearest patches, shortest paths and clusters
connected with max_distance. Running r.cost or r.walk for each
patch as starting points and all other patches as stop points is
not an option because I have ~200,000 patches in a 300 million
cell raster. Converting the raster habitat map to a vector with
areas and using v.net.* modules doesn't work because AFAIK these
modules work with points as graph nodes, and some of the areas are
quite large, using centroids would give wrong distances.
The theory of what I want to do is described in Urban and Keitt
(2001) [1]
Thanks,
Markus M
[1] link to pdf:
http://www.keittlab.org/~tkeitt/papers/urban-keitt-2001.pdf
<http://www.keittlab.org/%7Etkeitt/papers/urban-keitt-2001.pdf>
PS: The grass module I would like to have for this kind of
analysis would use a habitat map as input, have as optional output
raster paths with distances as cell values, vector paths with
costs and ids of the two patches connected by each path, one
cluster map for each maxdistance=max1,max2,max3,..., and an ascii
file in the same format like r.distance for all paths connecting
habitat patches. X-mas is getting close ;-)
_______________________________________________
grass-user mailing list
[email protected] <mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/grass-user
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user