[Rcpp-devel] R Session Aborted when calling C++

Alexander Ilich ailich at mail.usf.edu
Thu Oct 29 00:43:08 CET 2020


Oh, sorry. A comma got tacked onto the end of that link accidentally. Just
remove that trailing comma or use this (
https://github.com/ailich/GLCMTextures)

On Wed, Oct 28, 2020 at 7:28 PM Alexander Ilich <ailich at mail.usf.edu> wrote:

> Hi, I'm a bit new to coding in C++, but I'm wondering if anyone knows what
> could cause the R Session to abort when running functions coded in C++.
> I've tried with R 3.6.3 and R 4.0.3, as well as with the latest CRAN
> release and the release on drat. I'm working on some sliding window
> processing functions for raster data, and for some reason on my data it
> often, but not always, causes my R session to abort if I use a window size
> of 17 or greater. The function works fine for smaller window sizes, and
> even works with a window size of 17 for rasters of the same size filled
> with random numbers. The source code for my functions is available on
> github at (https://github.com/ailich/GLCMTextures,) and I've included an
> example script below that includes how to install the R package.
>
> devtools::install_github("ailich/GLCMTextures") #Install my package from
> github
>
> library(raster)
> library(GLCMTextures) #Load libraries
>
> data("test_mat") #Load test data
>
> r<- raster(test_mat) #Convert to raster
> rq<- quantize_raster(r, n_levels = 4, method = "equal prob") #quantize
> range to 0-3
> plot(rq)
> ?glcm_textures #pull up help file
>
> #Runs fine
> test1<- glcm_textures(r = rq, w = c(15,15), n_levels = 4, quantization =
> "none", shift=c(-1,1)) #R function
> test2<- GLCMTextures:::C_glcm_textures_helper(rq = as.matrix(rq), w =
> c(15,15), n_levels = 4, shift = c(-1,1)) #Internal C++ function called
> within the R function
>
> #Usually causes R to abort (But sometimes runs for some reason)
> #If this section runs, usually will not run if you clear the environment,
> restart R, and try again
> test3<- glcm_textures(r = rq, w = c(17,17), n_levels = 4, quantization =
> "none", shift=c(-1,1)) #R function
> test4<- GLCMTextures:::C_glcm_textures_helper(rq = as.matrix(rq), w =
> c(17,17), n_levels = 4, shift = c(-1,1)) #Internal C++ function called
> within the R function glcm_textures
>
> #From playing around with it and commenting out code blocks,
> C_glcm_textures_helper seems to crash at the call to C_make_glcm
>
> #Create a new dataset of same size (This runs)
> rq2<- rq #Make new data equal to old data
> values(rq2)<- sample(0:3, size = nrow(rq2)*ncol(rq2), replace = TRUE)
> #Replace with random values in same range
> plot(rq2)
> test4<- glcm_textures(r = rq2, w = c(17,17), n_levels = 4, quantization =
> "none", shift=c(-1,1)) #Since it runs on a raster of the same size it
> doesn't seem to be that it's too large for the C++ memory.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20201028/0070973d/attachment.html>


More information about the Rcpp-devel mailing list