[STATSGRASS] raster cross-stats
Markus Neteler
neteler at itc.it
Mon Dec 31 06:50:04 EST 2001
Roger,
excellent! Thanks for your quick help, the script is running
well now.
Happy new year to all,
Markus
On Mon, Dec 31, 2001 at 11:29:57AM +0100, Roger Bivand wrote:
> Markus!
>
> On Sun, 30 Dec 2001, Markus Neteler wrote:
>
> > In fact I want to run
> > R CMD BATCH
> >
> > I have a small text file (Rbatchfile):
> > library(GRASS)
> > G <- gmeta()
> > mapname <- "$1"
> > map <- rast.get(G, mapname)
> > map.frame <- data.frame(east(G), north(G), map$mapname)
> > summary(map.frame)
> >
> > Then I run the batch job:
> >
> > R BATCH Rbatchfile aspect
> >
> > cat aspect # for some reason stored into this filename
> > [...]
> > Running in /usr/local/share/grassdata/spearfish/user1
> > > G <- gmeta()
> > > mapname <- "$1"
> > > map <- rast.get(G, mapname)
> > Error in rast.get(G, mapname) : raster map: $1 not found
> > Execution halted
> >
> > When hard-coding the map name in the text file, everything runs
> > well. But I don't get it flexible.
> >
>
> The short answer is Sys.getenv().
>
> Here I started R, did:
>
> > data(cars)
> > write.table(cars, "cars.txt")
> > q()
>
> to generate a test file. The batch file then refers to environment
> variables which I assigned the file names to be used:
>
> $ cat Rbatchfile.in
> cars <- read.table(Sys.getenv("R_TABLE_IN"))
> sink(Sys.getenv("THIS_R_OUT"))
> cor(cars$dist, cars$speed)
> summary(lm(dist ~ speed, cars))
> sink()
>
> $ echo $R_TABLE_IN
> cars.txt
> $ echo $THIS_R_OUT
> R.out.1
>
> So the batch file found them, and wrote the results to the output file.
>
> $ R CMD BATCH Rbatchfile.in
> $ cat R.out.1
> [1] 0.8068949
>
> Call:
> lm(formula = dist ~ speed, data = cars)
>
> Residuals:
> Min 1Q Median 3Q Max
> -29.069 -9.525 -2.272 9.215 43.201
>
> Coefficients:
> Estimate Std. Error t value Pr(>|t|)
> (Intercept) -17.5791 6.7584 -2.601 0.0123 *
> speed 3.9324 0.4155 9.464 1.49e-12 ***
> ---
> Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
>
> Residual standard error: 15.38 on 48 degrees of freedom
> Multiple R-Squared: 0.6511, Adjusted R-squared: 0.6438
> F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12
>
> Even works in a loop in a shell script, replacing the strings needed in R.
>
> For your case that would be:
>
> library(GRASS)
> G <- gmeta()
> mapname <- Sys.getenv("THIS_RASTER")
> map <- rast.get(G, mapname)
> map.frame <- data.frame(east(G), north(G), map$mapname)
> sink(Sys.getenv("THIS_OUTFILE"))
> summary(map.frame)
> sink()
>
> for shell variables $THIS_RASTER and $THIS_OUTFILE. I don't think it will
> fly for numbered arguments to the R CMD BATCH script.
>
> Very best wishes for the New Year to you and others on this list!
>
> Roger
>
> --
> Roger Bivand
> Economic Geography Section, Department of Economics, Norwegian School of
> Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
> Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
> e-mail: Roger.Bivand at nhh.no
> and: Department of Geography and Regional Development, University of
> Gdansk, al. Mar. J. Pilsudskiego 46, PL-81 378 Gdynia, Poland.
--
Markus Neteler
ITC-irst, Istituto per la Ricerca Scientifica e Tecnologica
Project on Predictive Models for the Environment
Via Sommarive, 18 - 38050 Povo (Trento), Italia
tel +39 0461 314 -520 (fax -591) http://mpa.itc.it
More information about the grass-stats
mailing list