Re: [GRASS-user] Help; Running Grass from R without installing GRASS
Thank you Micha, I was under the impression that rgrass7 library has all the functions in GRASS. Apparently, all it does is calling modules from GRASS and GRASS should be completely installed on the same machine that the R code is running. I wish at least we could connect to a GRASS copy on a web-based VM. I enjoyed the part of your letter that explained how to created a dataset outside of GRASS using R code and thanks for that! I wish it was possible to read the functions directly from a web host/cloud instead of installing it everywhere (Even if it was a paid service it could be an attractive option). ESRI has some API, I wish we could have it for GRASS or I could help to write the API for GRASS. Best regards, Mehrdad ᐧ On Sun, Apr 28, 2019 at 2:54 PM Micha Silver wrote: > > 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 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 >> listgrass-user@lists.osgeo.orghttps://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 > > -- Mehrdad Varedi
Re: [GRASS-user] Help; Running Grass from R without installing GRASS
Hi Stefan, Thanks for your reply. I will try it in case of a permission issue. Kind regards, Mehrdad ᐧ On Sun, Apr 28, 2019 at 5:18 PM Stefan Blumentrath < stefan.blumentr...@nina.no> wrote: > Hi Mehrdad, > > > > If this is a permission issue, and the dependencies (and a build > environment) are installed, you could try compile GRASS (and install it in > your home directory if necessary with the --prefix configure option). > > svn checkout https://svn.osgeo.org/grass/grass/ grass_trunk > > cd grass_trunk > > ./configure > > make > > make install > > The make install step is not required for starting GRASS though. The make > commando creates a bin…/ directory within the grass_trunk dir, where the > grass startupscript is located… > > > > Hope that helps. > > > > Cheers, > > Stefan > > > > > > > > *From:* grass-user *On Behalf Of *Mehrdad > Varedi > *Sent:* søndag 28. april 2019 18:31 > *To:* Micha Silver > *Cc:* grass-user > *Subject:* Re: [GRASS-user] Help; Running Grass from R without installing > GRASS > > > > 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? > > > > 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 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 > > grass-user@lists.osgeo.org > > https://lists.osgeo.org/mailman/listinfo/grass-user > > -- > > Micha Silver > > Ben Gurion Univ. > > Sde Boker, Remote Sensing Lab > > cell: +972-523-665918 > > > > > -- > > Mehrdad Varedi > -- Mehrdad Varedi ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Help; Running Grass from R without installing GRASS
Hi Mehrdad, If this is a permission issue, and the dependencies (and a build environment) are installed, you could try compile GRASS (and install it in your home directory if necessary with the --prefix configure option). svn checkout https://svn.osgeo.org/grass/grass/ grass_trunk cd grass_trunk ./configure make make install The make install step is not required for starting GRASS though. The make commando creates a bin…/ directory within the grass_trunk dir, where the grass startupscript is located… Hope that helps. Cheers, Stefan From: grass-user On Behalf Of Mehrdad Varedi Sent: søndag 28. april 2019 18:31 To: Micha Silver Cc: grass-user Subject: Re: [GRASS-user] Help; Running Grass from R without installing GRASS 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? Please advise, Thank you once again for all the time you share to answer my questions, Mehrdad [https://mailfoogae.appspot.com/t?sender=admFyZWRpQGdtYWlsLmNvbQ%3D%3D=zerocontent=6036490f-455f-4578-9a0d-ec0122c7134a]ᐧ On Sun, Apr 28, 2019 at 10:55 AM Micha Silver mailto:tsvi...@gmail.com>> 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 [https://mailfoogae.appspot.com/t?sender=admFyZWRpQGdtYWlsLmNvbQ%3D%3D=zerocontent=dbe7ab29-5a21-45c9-97bb-082f4f48224a]ᐧ ___ grass-user mailing list grass-user@lists.osgeo.org<mailto:grass-user@lists.osgeo.org> https://lists.osgeo.org/mailman/listinfo/grass-user -- Micha Silver Ben Gurion Univ. Sde Boker, Remote Sensing Lab cell: +972-523-665918 -- Mehrdad Varedi ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Help; Running Grass from R without installing GRASS
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 Silverwrote: 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...
Re: [GRASS-user] Help; Running Grass from R without installing GRASS
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? 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 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 > listgrass-user@lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/grass-user > > -- > Micha Silver > Ben Gurion Univ. > Sde Boker, Remote Sensing Lab > cell: +972-523-665918 > > -- Mehrdad Varedi ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Help; Running Grass from R without installing GRASS
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 grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user -- Micha Silver Ben Gurion Univ. Sde Boker, Remote Sensing Lab cell: +972-523-665918 ___ grass-user mailing list grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user
[GRASS-user] Help; Running Grass from R without installing GRASS
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? 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 grass-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/grass-user