On Sep 19, 2008, at 7:07 PM, John C. Tull wrote:

Hamish:

On Sep 19, 2008, at 6:45 PM, Hamish wrote:

John  Tull wrote:
I was wondering if anyone could suggest a simple shell script to
automate the process of running v.to.rast on all layers in
a single vector in GRASS?

sure, just a bash for loop + g.mlist will do it:

for MAP in `g.mlist vect` ; do
echo v.to.rast in="$MAP" out="`echo $MAP | tr '[:lower:]' '[:upper:]'`"
done

in that example the other v.to.rast options would have to be constant of
course.

To avoid mistakes I like to capitalize a map name if it is going to be both a vector and raster map. Probably there is some simple sed command
to just do the first character. otherwise just use "out=$MAP".


Thank you for your quick response. This, with the addition of 'type=vect' will give me a list of vectors, but I was wanting a list of layers within a single vector. I am guessing there might be a way to cajole v.info into doing this, but am not sure how at this point.

Thanks,
John



Ok, applying my little grey cells (as Poirot would say) to the problem at hand, I believe I have resolved this as follows:

for LAYER in `v.category -g option=report in=vect | awk '{print $1}' | uniq` ; do
   v.to.rast in=vect layer="$LAYER" out=vect_$LAYER use=val
done

Hamish: thanks for the basis from which to suss the rest.

John
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to