On 28/04/2019 19:30, Mehrdad Varedi wrote:
Thank you for your time and sharing your knowledge Micha for the second time.

I followed your code and found that initGRASS searches for libraries and binaries of GRASS in gisBase folder. If we address a folder that doesn't have the code it comes back with this error message: "The code execution cannot proceed because libgrass_gis.7.4.1.dll was not found. Reinstalling the program may fix this problem." it gives the same error even if I copy that file into GISBase folder.

I want to run my code on a shiny server which I can't install GRASS although I can copy files and libraries. Can I solve this issue by copying a certain folder of GRASS binaries with my app or I am going the wrong path?


I have no idea.


So you're trying to run an application that's not installed? I can't imagine how that would work :-(. After all the libraries (*.dll's if this is windows) are searched for in a certain OS defined path. And many libraries depend on others, so the whole chain has to be found.

What are the limitations on this server? Can you compile a binary into your home directory? If so, you might be able to install grass with the GISBASE in your home directory, and run from there. But again, GRASS has lot's of dependencies: proj4, gdal, and many others.  Any you need access to the compile toolchain...


Maybe others will have some more insight.


Regards, Micha



Please advise,

Thank you once again for all the time you share to answer my questions,

Mehrdad



On Sun, Apr 28, 2019 at 10:55 AM Micha Silver <[email protected]> wrote:

On 27/04/2019 22:05, Mehrdad Varedi wrote:

Hi Everyone,
I have detail explanations of connecting to an existing dataset in GRASS from R in this address: https://grasswiki.osgeo.org/wiki/R_statistics/rgrass7

What I hope I could do is to create a GRASS dataset in R on the fly and without the need to install GRASS or create a dataset on it. Is there any way to do this?

Maybe this will help:

(You must have GRASS installed, of course)


# Parameters for the GRASS installation and temporary GRASS mapset

GISBase = "/usr/lib/grass76"
# Set these as you like

GISDbase = "/tmp"
Location = "tmp_location"
Mapset = "tmp_mapset"
georef = "EPSG:2039"

mapset_path = file.path(GISDbase, Location, Mapset)

# Now run the 'grass' command within R and

# use the -c and -e flags to create the temp mapset, then exit

setup_grass_cmd = paste("grass", "-c", georef, "-e", mapset_path)

system(setup_grass_cmd)


# Load the R grass interface and initialize GRASS within R,

# using the temporary mapset from above

library(rgrass7)
initGRASS(home=tempdir(),
          gisBase = GISBase,
          gisDbase = GISDbase,
          location = Location,
          mapset = Mapset,
          remove_GISRC = TRUE)


# Try some GRASS commands

input_tif = "isrlat12.tif"

grass_rast = "isrlat12"
execGRASS("r.in.gdal",  flags = c("o","overwrite"),
          input = input_tif,
          output = grass_rast)
execGRASS("g.region", flags="p", raster = grass_rast)

I did not add a command to remove the temporary mapset.  Something like:

unlink(file.path(GISDbase, Location), recusive = TRUE) might be necessary


One other note: you probably will get better suggestions on the R-sig-geo list...


i.e. I have a vector /raster file and use that to identify the region and details required to set up a dataset and use GRASS functions just by including rgrass library.

Thanks for your help and attention,

Mehrdad
--
Mehrdad Varedi

_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user
-- 
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918


--
Mehrdad Varedi
-- 
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918

_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to