Establishes an interface between R and 'QGIS', i.e. it allows the user to access 'QGIS' functionalities from the R console. It achieves this by using the 'QGIS' Python API via the command line. Hence, RQGIS extends R's statistical power by the incredible vast geo-functionality of 'QGIS' (including also 'GDAL', 'SAGA'- and 'GRASS'-GIS among other third-party providers). This in turn creates a powerful environment for advanced and innovative (geo-)statistical geocomputing. 'QGIS' is licensed under GPL version 2 or greater and is available from < http://www.qgis.org/en/site/>.
qgis_session_info()now tries several times to find out about the installed GRASS version (
findfrequently fails at the first attempt when used witin a function), and additionally suppresses a confusing warning message regarding access rights (permission denied when trying to access points.shp, however these points are accessed regardless of this message since they are used to test if GRASS can be accessed which is the case).
run_qgis()will now look for this file in the working directory (
getwd()) or save it to this locations (suggested by @rkrug).
qgis_session_info()no longer prints the supported saga versions if there is nothing to report (method
supportedVersionswas deleted from
SagaAlgorithmProvidersince QGIS 2.18.10)
run_qgis()accepts network addresses as filenames under Windows again (#735e856, @susanatfybr)
save_spatial_objects()now have an additional parameter named
NA_flag, which allows to specify a value for NAs when exporting rasters (issue #93 raised by @raff-k and solved through #9e74a4a ).
pass_args()now print which default options were chosen (suggested by @rkrug).
get_grp()was replaced by the more generic
get_extent(). If a geoalgorithm requires an extent object it will be computed automatically from the provided input spatial objects (if not specified explicitly by the user) (#95).
setup_win()works properly when the working directory is a server (commit ccc1baa & 263a1cf)
set_env()now uses forward instead of backward slashes (commit 8befac3 and issue #83)
RQGIS.check_args(commit 29fb26a and issue #79)
conda_list()(solved by: https://github.com/rstudio/reticulate/issues/100; @jjallaire).
run_qgis. Setting it to
FALSEsuppresses the printing of the output file paths.
random_pointsis now an sf-object (required also some adjustments in run_qgis and our tests)
run_qgisdoesn't print a space any longer if the Python message is empty
load_outputnow supports all GDAL-supported drivers. Of course, this depends on the system setup (#72).
open_appin turn makes advantage of various new helper functions (
setup_mac()). Additionally, we put much of the Python code into inst/python.
import_setupcontains much of the necessary import statements to run QGIS from within R.
python_funscontains the RQGIS class (#32) containing several methods to call from within R (
The user can now specify QGIS geoalgorithm parameters as R named arguments using the ellipsis-argument
We rewrote the
run_qgis. It is now a logical argument. If
run_qgis() will automatically load all the output layers explicitly specified by the user back into R (#60).
Extensive error-/misspecification checking. To do so, we now submit a Python-dictionary - containing all parameters and arguments - to
processing.runalg. This also allows to check parameter names. Before the **args-argument simply converted our input in a list containing the arguments (but not the parameter names). Using the Python dictionary has the additional benefit that we no longer have to take care of the order in which the function parameters are specified. Besides, we now also make sure that the user can only specify available options. And if the user provides the verbal notation,
pass_args internally converts this input in the corresponding number notation as required by the QGIS API (#64, @tim-salabim; #65).
RQGIS now supports simple features (
sf; #43, @einvindhammers).
support for MultiParameterInput through two new helper functions
RQGIS now supports QGIS
osgeo4mac homebrew installations. This is also the recommended installation way from now on as it does not cause irritating error messages like the Kyngchaos QGIS binary.
find_algorithms now accepts regular expressions as argument for its
set_env() now caches its output, so calling it a second time, will load the cached output.
set_env() now first searches the most likely places to find a QGIS installation.
set_env's parameter name from
dev. When having multiple homebrew installations on mac (LTR and dev), the user can select which one to use with the
dev argument in
set_env(). Default uses the LTR version.
qgis_session_info() now warns Linux users that they might have to use a softlink when using grass7 in conjunction with QGIS (#52, @thengl)
changing the default for parameter
reset_paths tries to restore the PATH environment variable, i.e. at least to make sure that all paths within PATH will still be available after having run
build_cmds now retrieves the working directory on the command line from where the script has been called (temporary folder), and makes it the working directory at the end of the batch script. This ensures that py_cmd.py can be found and executed (necessary since QGIS 2.18.2 since they somehow change the wd in one of their .bat-files) (#26, @eivindhammers).
RQGIS now also does testing using the
run_qgis stops if the user specifies one of the interactive QGIS Select-by operations.
run_qgis now stops if the output shapefile created by QGIS is empty.
run_qgis-message: Use qgis:creategrid instead of qgis:vectorgrid.
Fine-tuning of the documentation files.
Deleting redundancies in functions
Removing empty string from
NEWS.md file to track changes to the package.
vignette update (MacOSX and homebrew installation) (#14, @pat-s)
bug fix: we replaced
set_env by the more general
bug fix: when constructing the cmd-command (in
run_qgis), we need to avoid "double" shell quotes. This happened e.g., with
grass7:r.viewshed. Additionally, we made sure that None, True and False are not shellquoted.
bug fix: when determining the GRASS REGION PARAMETER in
run_qgis. To extract the extent of a spatial object
ogrInfo needs the layer name without the file extension. To do that we now use the
file_path_sans_ext of the
tools package instead of a simple
gsub-command. Previously, we simply returned everything in front of a colon. This caused problems with file names such as gis.osm_roads_free_1.shp.
run_qgis function argument
load_output now checks if the QGIS output was really created before trying to load it.
bug fix: There was a problem when using QGIS/Grass on a MacOS. Deleting one bash statement (
paste0("export PATH='", qgis_env$root, "/Contents/MacOS/bin:$PATH'"))) solved the problem.
qgis_session_info now also runs on MacOS (#34)