JanCaha / r_package_qgis

https://jancaha.github.io/r_package_qgis/
Other
27 stars 4 forks source link

Doesn't seem to work for Grass 8 #39

Open bholtdwyer opened 1 year ago

bholtdwyer commented 1 year ago

Hi! I'm trying to run grass7_r_grow() in R, and my current version of QGIS (3.28.6 Firenze) doesn't have an option to use the Grass 7 plugin, only Grass 8. I've enabled the Grass 8 plugin, but when I try to run the program, I get the following:

new_area = qgis::grass7_r_grow(input = covered_area, radius = 50)
Error in check_algorithm_necessities("grass7:r.grow") : 
  Error: Can not find specified provider `grass7` in local QGIS installation.

If you have the time, could you add grass 8 functions? It would be very helpful!! Thanks so much for this great package; it speeds up my workflow so much.

JanCaha commented 1 year ago

For this case, you have to use directly qgisprocess package. The issue is that qgis package is precompiled and functions are build here on github actions. The situation with Grass algorithms is a bit complicated, some QGIS version have access to version 7 while some use 8 etc. I am not going to change that, until it is only version 8 everywhere. Then support for version 8 will be implemented and used. Until then please use qgisprocess.

florisvdh commented 1 year ago

@bholtdwyer you just need to enable the 'GRASS GIS Provider' plugin in QGIS (you don't need GRASS 8 plugin for that, that is for different things), and you need to have GRASS installed of course.

You need to see the GRASS algorithms in the QGIS processing pane to be able to use them from R.

The 'grass7' string is just the label that QGIS gives to refer to the GRASS provider, and it is included in the name of the algorithms, regardless of whether you're using GRASS 7 or 8. This is expected to change at the QGIS side; should become just 'grass'.

So the grass7_*() functions here will work with GRASS 8 too. I think the problem you should solve is the availability of GRASS algorithms within QGIS.