In an E-mail message, motte wrote:
Erin O'Doherty writes:
>
> I need something that works like the "site characteristics report" in
> s.menu but I want to include a radius around the site not a square.
> I can't get away with just r.buffer because the buffers run together
> and I'd have to sort out the sites to avoid overlap. I was hoping to
> modify the code in s.menu to do a "circle" (I know it won't be a real
> circle because it's a raster map) instead of a square, but I couldn't
> figure out where it learns which cells to run stats on. I could
> figure out a way to do it if I just had one site map to do this to,
> but I have hundreds. What I want to do is describe the vegetation in
> an error polygon around aerial telemetry locations. My veg map has a
> resolution of about 3 m and the error polygon has a radius of 280 m.
> If two sites fall in the same place I want to sample that area twice.
> So if somebody could point me to the files in s.menu that I'd need to
> change or figure out a slick way I could do this and repeat it for
> many sets of sites, I'd be eternally grateful. Left to my own
> devices I'll probably try something with r.mapcalc and r.stats.
>
>
The problem you're mentioning has been one of my concerns as well over
the last two years (basically, I wanted to obtain information about the
environment of archaeological sites within a certain radius). There is no
possibility to do this inside s.menu, unfortunately, so you should revert
to using shell-scripting. My solution was to zoom in on each site (using
the site_list as input for x,y-coordinates and then determining the
maximum extent I needed from there), and then create a 'circle' around
the site running r.los on a map called 'empty' (just zero's) with a
maximum distance of the desired radius. This produces a circular raster
map that could be used as a MASK that can be used to provide data from
r.stats. I could send you this script if you're interested, but I assume
the procedure will be clear to you. If you're really thinking of hacking
into s.menu, I'd be very much interested in any solution you might find.Philip Verhagen
--
I thought I might add that you could produce circles of any desired distance
around points with the contributed program v.circle. The resultant vector
layer can be rasterized. This becomes the MASK that you can use as discussed
above. The advantage is that you can use a site file as input and the program
runs fairly quickly. This procedure for producing what you want is still a
multiple step procedure though. I've included the syntax for v.circle in
case you haven't seen it yet.
Usage:
v.circle [-s] [radius=value] [radius_uom=name] [area=value]
[area_uom=name] sitefile=name output=name
Flags:
-s Automatically run "v.support" on newly created vector file.
Parameters:
radius Radius of circle(s) with "site_lists" point(s) as center(s). If ra
dius selected then area values are not used for computations. If both radius and
area selected, then radius has precedence over area.
default: 0.0
radius_uom Radius unit of measure, ie. (m)meters, ft(feet), (mi)miles.
default: m
area Area of circle(s) with "site_lists" point(s) as center(s). If area
selected then radius values are not used for computations.
default: 0.0
area_uom Area unit of measure, ie. sqm(square meters), ac(acres), sqmi(squar
e miles), hec(hectares).
default: sqm
sitefile GRASS site_lists file (input).
default:
output Vector file to be created (output).
default:
--
-------------------------
Paul Loechl p-loechl@cecer.army.mil
USA CERL (217)352-6511x7668