[GRASS-stats] Error when starting grass from R (grass installed thru osgeo4w)

Helmut Kudrnovsky hellik at web.de
Sun Sep 16 14:15:46 PDT 2018


>OK, thanks for confirming that OSGeo4W remains feasible for rgrass7; I don't
have access. Does usability >include initGRASS()? This would be most fragile
because environment variables are being set, and >condition on Windows and
OSGeo4W.

R within a GRASS session works quite well so far.

did a fresh svn up of 

svn://r-forge.r-project.org/svnroot/spgrass

and quickly screened pkg\rgrass7\R\initGRASS.R:

e.g.

        Sys.setenv(GRASS_PROJSHARE=paste(Sys.getenv("GISBASE"),
            "\\proj", sep=""))

AFAIK at least the GRASS7.4.x line doesn't use anymore an own copy of the
PROJSHARE files; instead it uses the PROJ files itself; that's for all
platforms (linux, MacOS, MS Windows, ...).

e.g. in OSGeo4W 64bit it's defined as:

SET OSGEO4W_ROOT=C:\OSGeo4W64
set GRASS_PROJSHARE=%OSGEO4W_ROOT%\share\proj

only in the standalone installer, it's still defined as:

set GRASS_PROJSHARE=%GISBASE%\share\proj

because it's bundled in the installer.

e.g.

            Sys.setenv(PATH=paste(Sys.getenv("GISBASE"), "\\extrabin;",
                Sys.getenv("PATH"), sep=""))

there is no C:\OSGeo4W64\apps\grass\grass-7.4.1, because all of the
dependencies etc are living e.g. in 
C:\OSGeo4W64\bin, C:\OSGeo4W64\lib, ...

I'm not sure about this one:

[...]
        Sys.setenv(GISBASE=gisBase)
        if (missing(home)) home <- Sys.getenv("USERPROFILE")
[...]
        Sys.setenv(GISRC=paste(Sys.getenv("HOME"), "\\.grassrc7", sep=""))

in winGRASS (standalone, OSGeo4W), the rc file lives in
C:\Users\YourUserName\AppData\Roaming\GRASS7 and not in %USERPROFILE%

and it seems around these lines:

[...]
        Sys.setenv(GISRC="junk")
        cat("GISDBASE:", getwd(), "\n", file=Sys.getenv("GISRC"))
        cat("LOCATION_NAME: <UNKNOWN>", "\n", file=Sys.getenv("GISRC"),
            append=TRUE)
        cat("MAPSET: <UNKNOWN>", "\n", file=Sys.getenv("GISRC"),
            append=TRUE)
        gisrc <- ifelse (use_g.dirseps.exe, system(paste("g.dirseps.exe -g",
            shQuote(Sys.getenv("GISRC"))), intern=TRUE),
            Sys.getenv("GISRC"))
[...]

initGRASS gets in trouble in OSGeo4W.



-----
best regards
Helmut
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Stats-f4049448.html


More information about the grass-stats mailing list