On Sunday 30 March 2008, Jason Jorgenson wrote: > Hi Dylan. Ok, so maybe some background... I use r.walk to create a > cost surface using an archaeological site as the origin. I determine > through diet analysis how much food the ancient settlement would have > required, and from that how much land they needed. I then identify > that area of suitable land surrounding the site by starting at the > origin of the r.walk cost surface and moving outwards until enough > land is contained. lets say the cost surface's range is 0-72000 and > the amount of land is contained at an extent of 36000 on the cost > surface. I want to know what the actual distance range that people > had to travel to reach the outermomst extent of their catchment. The > extent is equal all around obviously, at 36000 seconds or 5 hours, but > it would be nice to know the min/max distance as well. Not necessary > to know path routes or anything. Simple distance is what I am after. > Hope this makes more sense now. > > Kindest regards > > Jason
Here is how I would approach this, using the spearfish dataset: # set region, and then zoom in a bit g.region rast=elevation.dem -p # compute a "cost" surface -- slope r.slope.aspect elev=elevation.dem slope=slope format=percent --o # compute the accumulated cost surface from some point r.cost -k in=slope out=cost coordinate=595365.16129032,4922219.67741936 # set the critical, accumulated cost value: r.mapcalc "cost_bin = if(cost <= 580.169678, 1, null())" # grow this max accumulated cost surface by 1 cell: r.grow in=cost_bin out=cost_bin_plus_1 radius=1 # identify the perimeter of the critical cost perimeter: r.mapcalc "cost_perim = if(isnull(cost_bin_plus_1) == isnull(cost_bin), null(), 1)" # now we need an accumulated distance map from the point of origin: # make a map of 1's to count by r.mapcalc "one = 1" # accumulate distance from starting point: # note that this is now 2D distance r.cost -k in=one out=accum_dist coordinate=595365.16129032,4922219.67741936 # compute some stats on the range in distance, from starting point, to perimeter of the critical accumulated cost surface (in this case slope percent): # use the perimeter rast as a MASK g.rename rast=cost_perim,MASK # compute stats: r.univar map=accum_dist total null and non-null cells: 37515 total null cells: 37013 Of the non-null cells: ---------------------- n: 502 minimum: 31 maximum: 100 range: 69 mean: 58.8526 mean of absolute values: 58.8526 standard deviation: 18.1618 variance: 329.851 variation coefficient: 30.8598 % sum: 29544 This is slightly incorrect -- as we are growing the cost surface to compute the perimeter, when we should be shrinking it. However it appears that r.grow cannot use a negative radius. Does this address the problem at hand? Cheers, Dylan > On Sun, Mar 30, 2008 at 1:11 AM, Dylan Beaudette > > <[EMAIL PROTECTED]> wrote: > > On Saturday 29 March 2008, Jason Jorgenson wrote: > > > Hi everyone. I am trying to determine the minimum and maximum > > > distance from the outermost extents of a cost surface (which I > > > genereated with r.walk) back to the origin. Is there a way to do > > > this? > > > > > > Jason > > > > can you elaborate? > > > > usually r.drain is used in conjunction with r.walk / r.cost to find > > the "least-cost" path. Not sure how you would find the "most-cost" (?) > > path. > > > > Cheers, > > > > Dylan > > > > -- > > Dylan Beaudette > > Soil Resource Laboratory > > http://casoilresource.lawr.ucdavis.edu/ > > University of California at Davis > > 530.754.7341 -- Dylan Beaudette Soil Resource Laboratory http://casoilresource.lawr.ucdavis.edu/ University of California at Davis 530.754.7341 _______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
