[GRASS-dev] R script runs in loop when using execGRASS("r.random" ...)

Paulo van Breugel p.vanbreugel at gmail.com
Mon Apr 1 12:33:30 PDT 2013


Hi,

I have a shell script which writes a R script to file and then runs it. 
The R script includes some calls to GRASS functions using the execGRASS 
function from the spgrass6 package. This all works fine except when I 
make a call to the GRASS function r.random. It will run, but at the end 
of the script, the script will start from the beginning... and this will 
continue till using ctrl+c.  This is in GRASS 7.0 on Ubuntu 12.10. In 
GRASS6.4 the same problem does not happen.

A simplified example of my script is below:

#!/bin/sh
#
LOGDIR="$HOME"
LOGFILE="$LOGDIR/r_model_eval.log"
echo "r.model.edm :" >> "$LOGFILE"
writeScript1(){
cat > $1 << "EOF"
options(echo = TRUE)
require(spgrass6)
execGRASS("r.random", flags="overwrite", input="pnv_900m", n="100", 
raster_output="test")
EOF
}
RGRASSSCRIPT1="`g.tempfile pid=$$`"
writeScript1 "$RGRASSSCRIPT1"
R --no-save --no-restore --no-site-file --no-init-file < $RGRASSSCRIPT1 
 > $LOGFILE 2>&1

A small part of the logfile looks like:

 > options(echo = TRUE)
 > require(spgrass6)
Loading required package: spgrass6
Loading required package: sp
Loading required package: XML
GRASS GIS interface loaded with GRASS version: GRASS 7.0.svn (2013)
and location: AEA
 > execGRASS("r.random", flags="overwrite", input="pnv_900m", n="100", 
raster_output="test")
Collecting Stats...
    0%   3%   6%   9%  12%  15% 19%  22%  
25%  28%  31%  34% 38%  41%  44%  47%  
50%  53% 57%  60%  63%  66%  69%  73% 
76%  79%  82%  85%  88%  92% 95%  98% 
100%
Writing raster map <test> ...
    0%   3%   6%   9%  12%  15% 18%  21%  
24%  27%  30%  33% 36%  39%  42%  45%  
48%  51% 54%  57%  60%  63%  66%  69% 
72%  75%  78%  81%  84%  87% 90%  93%  
96%  99% 100%
 > save.image(file="testing.RData")
 > options(echo = TRUE)
 > require(spgrass6)
 > execGRASS("r.random", flags="overwrite", input="pnv_900m", n="100", 
raster_output="test")
Collecting Stats...
    0%   3%   6%   9%  12%  15% 19%  22%  
25%  28%  31%  34% 38%  41%  44%  47%  
50%  53% 57%  60%  63%  66%  69%  73% 
76%  79%  82%  85%  88%  92% 95%  98% 
100%
Writing raster map <AAAtestrandom1> ...
    0%   3%   6%   9%  12%  15% 18%  21%  
24%  27%  30%  33% 36%  39%  42%  45%  
48%  51% 54%  57%  60%  63%  66%  69% 
72%  75%  78%  81%  84%  87% 90%  93%  
96%  99% 100%
 > save.image(file="testing.RData")
 > options(echo = TRUE)
.
.
etc..

As you can see, after creating the random layer, it starts the script 
again (line 14). It only happens, it seems, when using execGRASS to run 
the r.random function (or use a direct system call). Using execGRASS 
with any other function work fine it seems.

I am not sure this is a problem with GRASS GIS, R, or what, but let me 
first try the GRASS GIS email list. Any idea what could go wrong here?

Cheers,

Paulo



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20130401/e60d9e67/attachment.html>


More information about the grass-dev mailing list