[GRASS-user] Help; Running Grass from R - SQLite database setup

Veronica Andreo veroandreo at gmail.com
Fri Aug 30 02:14:46 PDT 2019


Hi,

pls write to grass-stats list where you can get more answers. What version
of rgrass7 are you using? The last one includes the possibility to use
either sp or sf for vector data. When I run readVECT for example, I first
run either use_sp() or use_sf(). Maybe that has something to do with the
error? Just guessing...

HTH,
Vero


El mié., 28 ago. 2019 a las 20:33, Micha Silver (<tsvibar at gmail.com>)
escribió:

>
> On 28/08/2019 21:12, Mehrdad Varedi wrote:
>
> Hi Micha,
> Your answer makes perfect sense. Thank you. I was expecting to get the
> database when only I had imported raster files!
> Anyway, when I tried to import a vector file with the following command, I
> got an error:
>
>
>
>
>
>
> *execGRASS("v.import", parameters=list(                 input =
>  basename(inputWM),                 output = "WM"                 ),
>     flags=c("overwrite")) *
>
> Here is the error:
>
>
>
>
> *In system(cmd0, intern = TRUE) :   running command 'v.import.bat
> --interface-description' had status 1 Error in parseGRASS(cmd, legacyExec =
> legacyExec) : v.import not parsed *
>
>
> I traced the code and found that the parseGRASS adds the .bat extension
> for the v.import and the lagacyExec has a TRUE value (default for Windows
> OS)
>
> FYI, I couldn't run GRASS from Rstudio unless ran the RStudio from the
> "OSGeo4W" environment. It helps RStudio to find the functions in GRASS. (I
> learned it from a previous post). So it works and importing the raster
> files had no problem (I imported a virtual raster .vrt with "r.in.gdal"
> command). Also, I processed the raster file with no problem. The problem
> only shows up when I try to import the vector files with r.import command.
>
> Any idea what is happening here?
>
>
> No, sorry.
>
> I expect others on the list with more experience with Windows
> installations will be able to help.
>
>
>
> Thanks for your help,
>
> Mehrdad
>
>
>>
> On Wed, Aug 28, 2019 at 6:24 AM Micha Silver <tsvibar at gmail.com> wrote:
>
>>
>> On 28/08/2019 9:56, Mehrdad Varedi wrote:
>>
>> Hi Everyone,
>> I used the code from Micha and managed to run grass in R and create a new
>> dataset from R. I can't see the SQLite database in the created folders like
>> the ones I usually get when creating new datasets from GRASS.
>>
>> How can I have the new SQlite database?
>>
>>
>> If you import some vector you'll have the sqlite.db setup for you:
>>
>> (Following the example from before)
>>
>>
>> > input_vect = "Israel_border.gpkg"
>> > grass_vect = "isr_border"
>> > execGRASS("v.import", input=input_vect, output=grass_vect, flags="o")
>> Over-riding projection check
>> Check if OGR layer <Israel_border> contains polygons...
>>  100%
>> Creating attribute table for layer <Israel_border>...
>> Default driver / database set to:
>> driver: sqlite
>> database: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
>> Importing 1 features (OGR layer <Israel_border>)...
>>  100%
>>
>>
>> Then in a separate terminal:
>>
>> micha at TP480:~$ ll /tmp/tmp_location/tmp_mapset/sqlite/
>> total 20
>> drwxr-xr-x 2 micha micha  4096 Aug 28 13:19 ./
>> drwxr-xr-x 6 micha micha  4096 Aug 28 13:19 ../
>> -rw-r--r-- 1 micha micha 12288 Aug 28 13:19 sqlite.db
>>
>>
>> Thanks for your help.
>>
>>
>> On Sun, Apr 28, 2019 at 10:55 AM Micha Silver <tsvibar at gmail.com> wrote:
>>
>>> 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
>>>
>>> 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
>
> --
> Micha Silver
> Ben Gurion Univ.
> Sde Boker, Remote Sensing Lab
> cell: +972-523-665918
>
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20190830/a487068c/attachment.html>


More information about the grass-user mailing list