Error in file.exists(params[[i]]) : invalid 'file' argument when using v.clean function in RQGIS

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Error in file.exists(params[[i]]) : invalid 'file' argument when using v.clean function in RQGIS

Glenn Stauffer
I am working with SpatialLines in R, and want to split lines at every point
where lines cross (like the Planarize function in ArcGIS). The R package
RQGIS makes QGIS functionality accessible in R (see example from Jannes
Muenchow at
http://r-sig-geo.2731867.n2.nabble.com/v-split-length-GRASS-in-R-td7590611.h
tml ), and the GRASS function v.clean should do exactly what I want.
However, I have not been able to get it to work, and have run into two
problems.

 

First, when I run the get_args_man() function I apparently a window that
pops up and says "

Runtime Error!

Program: C\Program Files\R\R-3.4.0\bin\x64\RGui.exe

R6034

An application has made an attempt to load the C runtime library in
correctly.

Please contact the application's support team for more information."

 

I only get this the first time I run try running the get_args_man()
function, and despite the popup, the arguments are retrieved (the function
seems to work). Subsequent calls to the function do not generate the
message.

 

Secondly, when I call the run_qgi()s function, with 'alg="grass7:v.clean"',
I always get the error message "Error in file.exists(params[[i]]) : invalid
'file' argument". This does not happen when I run the example from the link
I referenced above (with alg="v.split"). I've tried running the function
line-by-line, and it trips at the following line within the run_qgis()
function:

"params <- pass_args(alg, params = params, NA_flag = NA_flag,qgis_env =
qgis_env)"

 

Can anyone suggest a cause or solution for either of these problems (but
especially the latter)? On the first problem, could this be related to a
permissions issue?

 

Below is a contrived example that should illustrate what I am talking about
(unless the problems are specific to my computer).

 

Thanks,

Glenn

 

#################

# Example Code

#################

 

library(sp)

library(RQGIS)

 

pts <- cbind(c(120:123,121,125),c(100,100,104,102,99,98))

pt2 <- cbind(c(124,124,123,118,124,125),c(100,97,100,104,106,110))

projstr <- "+init=epsg:3071"         # make everything in meters

L <- SpatialLines(list(Lines(list(Line(pts),Line(pt2)),"X")),proj4string =
CRS(projstr))

plot(L)

# indicate where QGIS is installed on your computer

qgis_env <- set_env("C:/Program Files/QGIS 2.14")

# get args for GRASS function (generates runtime error when first called)

args <- get_args_man("grass7:v.clean", qgis_env = qgis_env, options = TRUE)

# have a look at the GRASS online help

open_help("grass7:v.clean", qgis_env = qgis_env)

 

# specify the necessary arguments

args$input <- L

args$tool <- "break"

args$output <- file.path(tempdir(), "out.shp")

# load the output directly into R again

out <- run_qgis(alg = "grass7:v.clean", params = args,

                load_output = TRUE,

                qgis_env = qgis_env)

 

 

 

 


        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: Error in file.exists(params[[i]]) : invalid 'file' argument when using v.clean function in RQGIS

Glenn Stauffer
I still don't know why I get the Runtime Error the first time I call the
function get_args_man().

 

But, more importantly, it looks my issue with the second problem was as
simple as the fact that I was trying to apply v.clean to a SpatialLines
feature instead of the required SpatialLinesDataFrame feature. It seems to
work now, and I'm pretty happy about that!

 

Glenn

 

From: Glenn Stauffer [mailto:[hidden email]]
Sent: Friday, January 26, 2018 1:23 PM
To: [hidden email]
Subject: Error in file.exists(params[[i]]) : invalid 'file' argument when
using v.clean function in RQGIS

 

I am working with SpatialLines in R, and want to split lines at every point
where lines cross (like the Planarize function in ArcGIS). The R package
RQGIS makes QGIS functionality accessible in R (see example from Jannes
Muenchow at
http://r-sig-geo.2731867.n2.nabble.com/v-split-length-GRASS-in-R-td7590611.h
tml ), and the GRASS function v.clean should do exactly what I want.
However, I have not been able to get it to work, and have run into two
problems.

 

First, when I run the get_args_man() function I apparently a window that
pops up and says "

Runtime Error!

Program: C\Program Files\R\R-3.4.0\bin\x64\RGui.exe

R6034

An application has made an attempt to load the C runtime library in
correctly.

Please contact the application's support team for more information."

 

I only get this the first time I run try running the get_args_man()
function, and despite the popup, the arguments are retrieved (the function
seems to work). Subsequent calls to the function do not generate the
message.

 

Secondly, when I call the run_qgi()s function, with 'alg="grass7:v.clean"',
I always get the error message "Error in file.exists(params[[i]]) : invalid
'file' argument". This does not happen when I run the example from the link
I referenced above (with alg="v.split"). I've tried running the function
line-by-line, and it trips at the following line within the run_qgis()
function:

"params <- pass_args(alg, params = params, NA_flag = NA_flag,qgis_env =
qgis_env)"

 

Can anyone suggest a cause or solution for either of these problems (but
especially the latter)? On the first problem, could this be related to a
permissions issue?

 

Below is a contrived example that should illustrate what I am talking about
(unless the problems are specific to my computer).

 

Thanks,

Glenn

 

#################

# Example Code

#################

 

library(sp)

library(RQGIS)

 

pts <- cbind(c(120:123,121,125),c(100,100,104,102,99,98))

pt2 <- cbind(c(124,124,123,118,124,125),c(100,97,100,104,106,110))

projstr <- "+init=epsg:3071"         # make everything in meters

L <- SpatialLines(list(Lines(list(Line(pts),Line(pt2)),"X")),proj4string =
CRS(projstr))

plot(L)

# indicate where QGIS is installed on your computer

qgis_env <- set_env("C:/Program Files/QGIS 2.14")

# get args for GRASS function (generates runtime error when first called)

args <- get_args_man("grass7:v.clean", qgis_env = qgis_env, options = TRUE)

# have a look at the GRASS online help

open_help("grass7:v.clean", qgis_env = qgis_env)

 

# specify the necessary arguments

args$input <- L

args$tool <- "break"

args$output <- file.path(tempdir(), "out.shp")

# load the output directly into R again

out <- run_qgis(alg = "grass7:v.clean", params = args,

                load_output = TRUE,

                qgis_env = qgis_env)

 

 

 

 


        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo