[GRASS-user] v.rast.stats for just a single statistic, in a python
loop
Moritz Lennert
mlennert at club.worldonline.be
Wed Apr 18 15:25:51 EDT 2012
On 18/04/12 20:54, Ismael Gómez wrote:
> Hello,
>
> I would like to use the v.rast.stats inside a loop in a python script.
> The thing is I just need to get one of the nine columns it generates (sum).
> As it runs many times in the loop, it takes a lot of (unnecessary, for
> this script) time and also creates a huge table with too many
> (unnecessary, for this script) columns.
> I was wondering then if there was a way to specify the calculation for
> just that single statistic.
v.rast.stats is a script, so fairly easy to modify (see below for
accessing it).
>
> Also, I wanted to ask you if there is a way to access the source code of
> a specific module (in this case, v.rast.stats) via web (without
> downloading the whole source code), just to have a quick look at it (and
> try to adapt it to my needs, eventually contribute to it if possible,
http://trac.osgeo.org/grass/browser/grass
For the development version (aka grass7) go to trunk, for other version
to branches.
For v.rast.stats in the 6.4 release branch:
http://trac.osgeo.org/grass/browser/grass/branches/releasebranch_6_4/scripts/v.rast.stats/v.rast.stats.
See "Download in other formats" at the bottom for downloading it.
A quick and dirty guess would be that modifying
line 247: BASECOLS="n min max range mean stddev variance cf_var sum"
and
line 368 sed -e '1d' "$STATSTMP" | awk -F "|" '{printf "\nUPDATE
'${TABLE}' SET '${col1}' = %i , '${col2}' = %.2f , '${col3}' = %.2f ,
'${col4}' = %.2f , '${col5}' = %.2f , '${col6}' = %.2f , '${col7}' =
%.2f , '${col8}' = %.2f , '${col9}' = %.2f WHERE '${KEYCOL}' = %i;",
$2,$3,$4,$5,$6,$7,$8,$9,$10,$1}' > "$SQLTMP"
could actually be enough.
Moritz
More information about the grass-user
mailing list