<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Thanks for the support!<div>Please see below my comments.<br><div><br><div>> Date: Fri, 15 Apr 2016 20:58:15 +0200<br>> From: Roger.Bivand@nhh.no<br>> To: baerroger@outlook.com<br>> CC: r-sig-geo@r-project.org<br>> Subject: Re: [R-sig-Geo] GISRC environment variable using initGRASS<br>> <br>> On Fri, 15 Apr 2016, Roger Bär wrote:<br>> <br>> > I am currently using the R package "rgrass7" (Version: 0.1-6) in order <br>> > to command GRASS GIS (Windows7, OSGEO4W installation).<br>> ><br>> > I use R in order to start a GRASS environment and to script my <br>> > geoprocessing. Both is working fine. However, I have problems with <br>> > storing and calling the GRASS gisenv variables. Every time when I call <br>> > "initGRASS" a file called "junk" is created containing GRASS gisenv <br>> > variables.<br>> ><br>> <br>> What the file is called is probably immaterial.<br>> <br>> ><br>> > Looking at the source of the initGRASS function the section below <br>> > puzzeled me somehow:<br>> ><br>> >  59   Sys.setenv(GISRC = paste(Sys.getenv("HOME"), "\\.grassrc7", <br>> >  60     sep = ""))<br>> <br>> This is setting GISRC to a value<br><br></div><div> </div><div>Yes. The absolute path to the file (containing settings for GISDBASE, LOCATION_NAME and MAPSET) </div><div><br></div><div><br>> >  61   if (file.exists(Sys.getenv("GISRC")) && !override) <br>> >  62     stop("A GISRC file already exists; to override, set override=TRUE")<br>> >  63  Sys.setenv(GISRC = "junk")<br>> <br>> This is setting it again in the working directory - I don't recall why - <br>> probably frustration years ago with Windows.</div><div><br></div><div><br></div><div>I really do not understand the "junk" (line 63). Because GISRC is set to "junk" the subsequent lines of code will write the </div><div>GISRC environment variables to a newly created file called "junk" in the home folder. <br>Shouldn't this line not rather be omitted? <br>(The GRASS environment variables would then be written to "<span style="font-size: 12pt;">.grassrc7", which in my opinion would be correct)</span></div><div><br></div><div><br>> <br>> >  64  cat("GISDBASE:", getwd(), "\n", file = Sys.getenv("GISRC"))<br>> >  65  cat("LOCATION_NAME: <UNKNOWN>", "\n", file = Sys.getenv("GISRC"), <br>> >  66     append = TRUE)<br>> >  67  cat("MAPSET: <UNKNOWN>", "\n", file = Sys.getenv("GISRC"), <br>> >  68     append = TRUE)<br>> >  69  gisrc <- ifelse(use_g.dirseps.exe, system(paste("g.dirseps.exe -g", <br>> >  70     shQuote(Sys.getenv("GISRC"))), intern = TRUE), Sys.getenv("GISRC"))<br>> >  71   assign("addEXE", .addexe(), envir = .GRASS_CACHE)<br>> >   72  Sys.setenv(GISRC = gisrc)<br>> ><br>> <br>> And this sets it again. It is set, otherwise GRASS wouldn't work; <br>> programmatically you'd have to use Sys.getenv("GISRC") to get the value. <br>> Please provide a use case where this matters, and consider moving this <br>> thread to the statsgrass list.</div><div><br></div><div><br></div><div>Sorry, I do not understand what you mean with "<span style="font-size: 12pt;">provide a use case where this matters". What do you mean with "this"?</span></div><div><br></div><div>I added the thread to the grass-stat list (and will remove r-sig from the cc the next time).</div><div><br></div><div>Roger</div><div><br></div><div><br></div><div>> <br>> Hope this helps (doesn't clarify, but that's legacy Windows),<br>> <br>> Roger<br>> <br>> > First, why is initGRASS using ".grassrc7" for storing the GISRC file? <br>> > InitGRASS is looking for the GISRC file under ".grassrc7" (line 59). However, in the package documentation [1], the GISRC file is called ".gisrc". Moreover, the GRASS documentation says that the GISRC file is stored under "/.grass7/rc"<br>> ><br>> > Second, what is the purpose of assigning "junk" to the GISRC environment variable? <br>> > GISRC is set to "junk" (line 63) and then the GISRC value ("junk") is assigned again back to system variable GISRC. Unless I misinterpreded the code, it does not make much sense to me. Shouldn't the enviroment varibales not be written (line 64 - 68) to ".grassrc7" rather than to "junk"?<br>> ><br>> ><br>> ><br>> > I would appreciate any support or hints!<br>> ><br>> > Regards,<br>> > Roger<br>> ><br>> > [1] http://https//cran.r-project.org/web/packages/rgrass7/rgrass7.pdf<br>> > [2] http://grass.osgeo.org/grass70/manuals/variables.html<br>> ><br>> > _______________________________________________<br>> > R-sig-Geo mailing list<br>> > R-sig-Geo@r-project.org<br>> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo<br>> ><br>> <br>> -- <br>> Roger Bivand<br>> Department of Economics, Norwegian School of Economics,<br>> Helleveien 30, N-5045 Bergen, Norway.<br>> voice: +47 55 95 93 55; fax +47 55 95 91 00<br>> e-mail: Roger.Bivand@nhh.no<br>> http://orcid.org/0000-0003-2392-6140<br>> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en<br>> http://depsy.org/person/434412<br></div></div></div>                                    </div></body>
</html>