[GRASS-stats] Re: [R-sig-Geo] readRAST6() in {spgrass6}

Roger Bivand Roger.Bivand at nhh.no
Thu May 19 10:04:06 EDT 2011


On Thu, 19 May 2011, Rainer M Krug wrote:

> Hi Roger,
>
> On Wed, May 18, 2011 at 7:56 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>> I do not have your location, so cannot check. It appears that your workflow
>> is highly non-standard - which you have not made clear previously. If you
>> are using spgrass6 to interface R with an existing GRASS location - which
>> seems to be the case, you should not use initGRASS(), and should not use the
>> PERMANENT mapset. The initGRASS() function is for creating one-time,
>> throwaway GRASS locations to use GRASS modules from R when no GISDBASE or
>> LOCATION is required.
>
> Could you please give some explanation, why the initGRASS() function
> should *not* be used when accessing an existing location? I use it
> extensively in my simulations to create a new mapset in a already
> existing location and I haven't experienced any problems which I would
> link to that.
> What kind of problems could occur, or why is this the non-standard
> usage of initGRASS()? I always assumed, that the idea is that
> initGRASS() actually replaces the "running R inside GRASS" approach?

The function was introduced to make it possible to use GRASS modules 
without a GRASS GISDBASE/LOCATION file tree, in throwaway mode for 
non-expert users. The advice offered was also for non-expert users: unless 
you understand fully what you are doing, choose between using R within 
GRASS for existing LOCATION file trees, and initGRASS() when you are not 
using data from "inside" GRASS. This advice holds for all users who do not 
understand the possible inconvenience of trashing their .gisrc file.

If, on the other hand, the user takes responsibility for over-riding the 
regular GRASS startup mechanisms, initGRASS() can be used, as you decribe, 
for scripting GRASS. Not every user, however, should consider this 
possibility if all of the consequences are not understood.

The main file at risk is .gisrc, but it is fully possible that the GRASS 
mapset-specific temporary files will not be cleaned up properly, and 
environment variables set by initGRASS() may interfere with GRASS in 
unexpected ways across different OS while the R session has not been 
terminated - I've not established any harmful interactions, but that 
doesn't mean that they are not present on at least some platforms. In 
principle the compute processes should not "leak", but on some OS, odd 
things happen, so being cautious rather than principled seems justified.

In the case that started this thread, the user does not seem to have had a 
clear idea of what was happening, and was copying a script found online 
intended for a different setting and an example data set. He needed to be 
pointed to a more helpful setting, that is: start GRASS (and the GRASS 
GUI) in Windows, start R in GRASS from the MSYS console, and be able to 
manipulate the current GRASS region from the GUI to tile or resample the 
data down to a size that admitted analysis.

>
> Cheers,
>
> Rainer
>
>
>>
>> --
>> Roger Bivand
>> Economic Geography Section, Department of Economics, Norwegian School of
>> Economics and Business Administration, Helleveien 30, N-5045 Bergen,
>> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
>> e-mail: Roger.Bivand at nhh.no
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>
>
>
>
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no



More information about the grass-stats mailing list