Grass users:
I was hoping to get a jump start on an analysis that requires that I perform a set of processes by looping through a set of poly features. My question is -- does anyone have an example of how to do this in GRASS (via bash scripting):
for i = 1, number of features in coverage
extract feature i to a temporary file
do something to feature i
end for loop
Vague enough? My main issue is that I don't know how to query the number of features to begin the loop in a way that's usable to bash.
--j
--
Jonathan A. Greenberg, PhD
Postdoctoral Scholar
Center for Spatial Technologies and Remote Sensing (CSTARS)
University of California, Davis
One Shields Avenue
The Barn, Room 250N
Davis, CA 95616
Cell: 415-794-5043
AIM: jgrn307, MSN: jgrn307@hotmail.com, Gchat: jgrn307
On 20/07/08 20:48, Jonathan Greenberg wrote:
Grass users:
I was hoping to get a jump start on an analysis that requires that I perform a set of processes by looping through a set of poly features. My question is -- does anyone have an example of how to do this in GRASS (via bash scripting):
for i = 1, number of features in coverage
extract feature i to a temporary file
do something to feature i
end for loop
Vague enough? My main issue is that I don't know how to query the number of features to begin the loop in a way that's usable to bash.
Example if the features you are looking for are centroids:
num_centroids=`v.info -t MapName | grep centroids | cut -d"=" -f2` (note the backticks)
But I'm not sure if this is really what you need, as you cannot use the i in your example to identify the features. What you probably need is the list of category values, i.e. something like:
for cat in `v.category MapName option=print type=centroid`
do
v.extract ... list=$cat ...
do what you want with this feature
done
But this only deals with features which actually have category values attached to them. If you need to reach all features in a map, you might be able to do this with v.edit with something like this:
eval `v.info -g MapName`
v.edit MapName tool=select bbox=$west,$north,$east,$south
Hope that this is enough for a "jump start"...
Moritz