CRAN Package Check Results for Package geostatsp

Last updated on 2026-02-11 10:36:53 CET.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 2.0.8 OK
r-devel-linux-x86_64-debian-gcc 2.0.8 27.44 370.38 397.82 OK
r-devel-linux-x86_64-fedora-clang 2.0.8 70.00 462.11 532.11 ERROR
r-devel-linux-x86_64-fedora-gcc 2.0.8 67.00 790.52 857.52 ERROR
r-devel-macos-arm64 2.0.8 9.00 114.00 123.00 ERROR
r-devel-windows-x86_64 2.0.8 40.00 469.00 509.00 OK
r-patched-linux-x86_64 2.0.8 37.30 552.38 589.68 OK
r-release-linux-x86_64 2.0.8 37.31 550.09 587.40 OK
r-release-macos-arm64 2.0.8 OK
r-release-macos-x86_64 2.0.8 25.00 531.00 556.00 OK
r-release-windows-x86_64 2.0.8 39.00 459.00 498.00 OK
r-oldrel-macos-arm64 2.0.8 NOTE
r-oldrel-macos-x86_64 2.0.8 27.00 689.00 716.00 NOTE
r-oldrel-windows-x86_64 2.0.8 58.00 637.00 695.00 NOTE

Check Details

Version: 2.0.8
Check: examples
Result: ERROR Running examples in ‘geostatsp-Ex.R’ failed The error most likely occurred in: > ### Name: RFsimulate > ### Title: Simulation of Random Fields > ### Aliases: RFsimulate modelRandomFields RFsimulate RFsimulate-methods > ### RFsimulate,ANY,SpatRaster-method RFsimulate,numeric,SpatRaster-method > ### RFsimulate,numeric,SpatVector-method > ### RFsimulate,RMmodel,SpatVector-method > ### RFsimulate,RMmodel,SpatRaster-method > ### RFsimulate,matrix,SpatRaster-method > ### RFsimulate,matrix,SpatVector-method RFsimulate,data.frame,ANY-method > ### Keywords: spatial > > ### ** Examples > > library('geostatsp') > > # exclude this line to use the RandomFields package > options(useRandomFields = FALSE) > > model1 <- c(var=5, range=1,shape=0.5) > > > myraster = rast(nrows=20,ncols=30,extent = ext(0,6,0,4), + crs="+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs") > > set.seed(0) > > simu <- RFsimulate(model1, x=myraster, n=3) install the RandomFields package for faster simulations OMP: Warning #96: Cannot form a team with 24 threads, using 2 instead. OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set). Flavor: r-devel-linux-x86_64-fedora-clang

Version: 2.0.8
Check: tests
Result: ERROR Running ‘RFsimulate.R’ [0m/90m] Running the tests in ‘tests/RFsimulate.R’ failed. Complete output: > library("geostatsp") Loading required package: Matrix Loading required package: terra terra 1.8.93 > > model <- c(var=5, range=20,shape=0.5) > > # any old crs > theCrs = "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs" > > # don't test using the randomFields package, it's currently broken on some R builds > options(useRandomFields = FALSE) > > myraster = rast(nrows=20,ncols=20,extent = ext(100,110,100,110), + crs=theCrs) > > set.seed(0) > simu = RFsimulate(model = rbind(a=model, b=model+0.1), + x=myraster, n=4 + ) OMP: Warning #96: Cannot form a team with 24 threads, using 2 instead. OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set). Flavor: r-devel-linux-x86_64-fedora-clang

Version: 2.0.8
Check: examples
Result: ERROR Running examples in ‘geostatsp-Ex.R’ failed The error most likely occurred in: > ### Name: RFsimulate > ### Title: Simulation of Random Fields > ### Aliases: RFsimulate modelRandomFields RFsimulate RFsimulate-methods > ### RFsimulate,ANY,SpatRaster-method RFsimulate,numeric,SpatRaster-method > ### RFsimulate,numeric,SpatVector-method > ### RFsimulate,RMmodel,SpatVector-method > ### RFsimulate,RMmodel,SpatRaster-method > ### RFsimulate,matrix,SpatRaster-method > ### RFsimulate,matrix,SpatVector-method RFsimulate,data.frame,ANY-method > ### Keywords: spatial > > ### ** Examples > > library('geostatsp') > > # exclude this line to use the RandomFields package > options(useRandomFields = FALSE) > > model1 <- c(var=5, range=1,shape=0.5) > > > myraster = rast(nrows=20,ncols=30,extent = ext(0,6,0,4), + crs="+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs") > > set.seed(0) > > simu <- RFsimulate(model1, x=myraster, n=3) install the RandomFields package for faster simulations Flavor: r-devel-linux-x86_64-fedora-gcc

Version: 2.0.8
Check: tests
Result: ERROR Running ‘RFsimulate.R’ [90m/61m] Running ‘krige.R’ [22s/48s] Running ‘lgcp.R’ [71s/122s] Running ‘lgm.R’ [67s/78s] Running ‘lgmRaster.R’ [0m/25m] Running ‘likfitLgm.R’ Running the tests in ‘tests/RFsimulate.R’ failed. Complete output: > library("geostatsp") Loading required package: Matrix Loading required package: terra terra 1.8.93 > > model <- c(var=5, range=20,shape=0.5) > > # any old crs > theCrs = "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs" > > # don't test using the randomFields package, it's currently broken on some R builds > options(useRandomFields = FALSE) > > myraster = rast(nrows=20,ncols=20,extent = ext(100,110,100,110), + crs=theCrs) > > set.seed(0) > simu = RFsimulate(model = rbind(a=model, b=model+0.1), + x=myraster, n=4 + ) Running the tests in ‘tests/lgmRaster.R’ failed. Complete output: > #+ setup > library('geostatsp') Loading required package: Matrix Loading required package: terra terra 1.8.93 > #' > > #' # simulated data > > # exclude this line to use the RandomFields package > options(useRandomFields = FALSE) > > Ncell = 40 > > myRaster = squareRaster(ext(0,6000,0,6000), Ncell) > > myParam=c(oneminusar=0.1, conditionalVariance=2.5^2,shape=2) > myQ = maternGmrfPrec(myRaster, param=myParam) > attributes(myQ)$info$optimalShape shape variance range cellSize 4.092496 110.524266 900.000000 150.000000 > set.seed(0) > mySim = RFsimulate(attributes(myQ)$info$optimalShape, myRaster) install the RandomFields package for faster simulations Flavor: r-devel-linux-x86_64-fedora-gcc

Version: 2.0.8
Check: tests
Result: ERROR Running ‘RFsimulate.R’ [3s/3s] Running ‘krige.R’ [3s/3s] Running ‘lgcp.R’ [2s/2s] Running ‘lgm.R’ [7s/7s] Running ‘lgmRaster.R’ [31s/21s] Running ‘likfitLgm.R’ [2s/2s] Running ‘matern.R’ [2s/2s] Running ‘maternGmrfPrec.R’ [3s/3s] Running ‘profLlgm.R’ [2s/3s] Running the tests in ‘tests/profLlgm.R’ failed. Complete output: > > library('geostatsp') Loading required package: Matrix Loading required package: terra terra 1.8.93 > data('swissRain') > swissRain = unwrap(swissRain) > swissAltitude = unwrap(swissAltitude) > > Ncores = c(1,2)[1+(.Platform$OS.type=='unix')] > > > > sr2 = swissRain > sr2$elev = extract(swissAltitude, sr2) Warning message: [`[[<-`] only using the first column > swissFit = likfitLgm( + data=sr2, + formula=rain~ elev, + param=c(range=10000,shape=1,nugget=0,boxcox=0.5,anisoRatio=2,anisoAngleDegrees=45), + paramToEstimate = c("range",'anisoAngleDegrees','anisoRatio'), + reml=FALSE, + verbose=FALSE + ) > > > # calculate log-likelihood at the MLE's, but re-estimate variance > sl = loglikLgm( + swissFit$param[c('range','shape','boxcox', 'anisoRatio', 'anisoAngleRadians')], + data=sr2, + formula=rain~ elev, + reml=swissFit$model$reml) > > > # calculate log-likelihood without re-estimating variance > sigSqHat = attributes(sl)$totalVarHat > sl1 = loglikLgm( + c(attributes(sl)$param[ + c('boxcox','anisoRatio','anisoAngleRadians','shape', 'range')], + variance=sigSqHat), + data=sr2, + formula=rain~ elev, + reml=swissFit$model$reml) > > > # re=estimate the anisotropy parameters but not the range > sf2 = likfitLgm( + data=swissFit$data, + formula=swissFit$model$formula, + param= swissFit$param[c('range','nugget','shape','boxcox', 'anisoRatio', 'anisoAngleRadians')], + paramToEstimate = c('variance','anisoAngleRadians','anisoRatio'), + reml=swissFit$model$reml) > > # these should all be the same > as.numeric(sl1) [1] 644.4812 > as.numeric(sl) [1] 644.4812 > swissFit$optim$logL m2logL.ml logL.ml 644.4812 -322.2406 > sf2$optim$logL m2logL.ml logL.ml 644.4812 -322.2406 > > date() [1] "Thu Feb 5 20:44:47 2026" > x=profLlgm(swissFit, mc.cores=Ncores, + range=seq(15000, 55000 , len=12) + ) *** caught segfault *** address 0x110, cause 'invalid permissions' Traceback: 1: (function (formula, data, paramToEstimate = c("range", "nugget"), reml = TRUE, coordinates = data, param = NULL, upper = NULL, lower = NULL, parscale = NULL, verbose = FALSE) { param = param[!is.na(param)] coordinatesOrig = coordinates aniso = as.logical(length(grep("^aniso", c(names(param), paramToEstimate)))) | any(abs(param["anisoRatio"] - 1) > 1e-05, na.rm = TRUE) if (aniso) { if (is.matrix(coordinates)) { if (ncol(coordinates) != 2 | nrow(coordinates) != nrow(data)) stop("anisotropic model requested but coordinates appears to be a distance matrix") coordinates = vect(coordinates) } maxDist = dist(matrix(ext(coordinates), ncol = 2)) } else { if (is.matrix(coordinates)) { if (ncol(coordinates) == 2) { coordinates = dist(coordinates) } else { coordinates = as(coordinates, "dsyMatrix") } } if (any(class(coordinates) == "dist")) coordinates = as(as.matrix(coordinates), "dsyMatrix") if (length(grep("SpatVect", class(coordinates)))) { if (!nchar(crs(coordinates))) terra::crs(coordinates) = "+proj=utm +zone=1" coordinates = new("dsyMatrix", Dim = rep(length(coordinates), 2), x = as.vector(as.matrix(terra::distance(coordinates))), uplo = "L") } maxDist = max(coordinates, na.rm = TRUE) } trend = formula theFactors = NULL if (any(class(trend) == "formula")) { data = data.frame(data) theNA = apply(data[, all.vars(trend), drop = FALSE], 1, function(qq) any(is.na(qq))) noNA = !theNA theFactors = model.frame(trend, data[noNA, ]) whichFactors = unlist(lapply(theFactors, is.factor)) theFactors = theFactors[, whichFactors, drop = FALSE] theFactors = lapply(theFactors, levels) theFactors = unlist(lapply(theFactors, function(qq) qq[1])) covariates = model.matrix(trend, data[noNA, ]) covariates = covariates[, grep(paste("^(", paste(names(theFactors), collapse = "|"), ")NA$", sep = ""), colnames(covariates), invert = TRUE), drop = FALSE] observations = all.vars(trend)[1] if (!any(names(data) == observations)) warning("can't find observations ", observations, "in data") observations = data[noNA, observations, drop = FALSE] } else { trend = as.matrix(trend) theNA = is.na(data) | apply(trend, 1, function(qq) any(is.na(qq))) noNA = !theNA observations = data[noNA] covariates = trend[noNA, , drop = FALSE] } if (any(theNA)) { if (length(grep("^SpatVector", class(coordinates)))) { coordinates = coordinates[noNA] } else { if (ncol(coordinates) == nrow(coordinates)) { coordinates = coordinates[noNA, noNA] } else { coordinates = coordinates[noNA, ] } } } estimateVariance = TRUE if (any(paramToEstimate == "variance")) { paramToEstimate = paramToEstimate[paramToEstimate != "variance"] param = param[names(param) != "variance"] } else { if (any(names(param) == "variance")) { estimateVariance = FALSE } } paramToEstimate = gsub("anisoAngleDegrees", "anisoAngleRadians", paramToEstimate) degToRad = function(par) { if (length(grep("anisoAngleDegrees", names(par)))) { if (!length(grep("anisoAngleRadians", names(par)))) par["anisoAngleRadians"] = 2 * pi * par["anisoAngleDegrees"]/360 par = par[grep("anisoAngleDegrees", names(par), invert = TRUE)] } par } param = degToRad(param) lower = degToRad(lower) upper = degToRad(upper) parscale = degToRad(parscale) lowerDefaults = c(nugget = 0, range = maxDist/1000, anisoRatio = 0.01, anisoAngleRadians = -pi/2, shape = 0.1, boxcox = -1.5, variance = 0) upperDefaults = c(nugget = Inf, range = 10 * maxDist, anisoRatio = 100, anisoAngleRadians = pi/2, shape = 4, boxcox = 2.5, variance = Inf) paramDefaults = c(nugget = 0, anisoRatio = 1, anisoAngleRadians = 0, shape = 1.5, boxcox = 1, range = maxDist/10) if (any(names(paramToEstimate) == "nugget")) { paramDefaults["nugget"] = 1 } parscaleDefaults = c(range = maxDist/5, nugget = 0.05, boxcox = 0.5, anisoAngleRadians = 0.2, anisoRatio = 1, variance = 1, shape = 0.2) ndepsDefault = c(range = 0.01, nugget = 0.05, boxcox = 0.005, anisoAngleRadians = 0.01, anisoRatio = 0.01, variance = 0.01, shape = 0.01) paramDefaults[names(param)] = param parscaleDefaults[names(parscale)] = parscale lowerDefaults[names(lower)] = lower upperDefaults[names(upper)] = upper if (any(paramToEstimate == "nugget") & paramDefaults["nugget"] == lowerDefaults["nugget"]) { paramDefaults["nugget"] = min(c(0.5, upperDefaults["nugget"])) } startingParam = paramDefaults[paramToEstimate] names(startingParam) = paramToEstimate naStarting = is.na(startingParam) startingParam[naStarting] = paramDefaults[names(startingParam)[naStarting]] moreParams = paramDefaults[!names(paramDefaults) %in% paramToEstimate] allParams = c(startingParam, moreParams) allParams = fillParam(allParams) paramsForC = allParams[c("nugget", "variance", "range", "shape", "anisoRatio", "anisoAngleRadians", "boxcox")] Sparam = names(paramsForC) %in% paramToEstimate names(Sparam) = names(paramsForC) paramToEstimate = names(Sparam)[Sparam] parOptions = cbind(lower = lowerDefaults[paramToEstimate], upper = upperDefaults[paramToEstimate], parscale = parscaleDefaults[paramToEstimate], ndeps = ndepsDefault[paramToEstimate]) forO = list(scalarF = c(fnscale = -1, abstol = -1, reltol = -1, alpha = -1, beta = -1, gamma = -1, factr = 1e+06, pgtol = 0), scalarInt = c(trace = 0, maxit = 200, REPORT = 1, type = -1, lmm = 25, tmax = -1, temp = -1), pars = parOptions[, c("lower", "upper", "parscale", "ndeps"), drop = FALSE]) if (verbose) { forO$scalarInt["trace"] = 6 forO$scalarInt["REPORT"] = 200 } forO$parsInt = rep(0, nrow(forO$pars)) names(forO$parsInt) = rownames(forO$pars) forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] != Inf] = 2 forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] == Inf] = 1 forO$parsInt[forO$pars[, "lower"] == -Inf & forO$pars[, "upper"] != Inf] = 3 forOparsOrig = forO$pars forO$pars[!is.finite(forO$pars)] = -1 forO$pars = c(forO$pars, rep(0, ncol(covariates) + ncol(covariates)^2)) if (aniso) { xcoord = crds(coordinates)[, 1] ycoord = crds(coordinates)[, 2] } else { xcoord = as.vector(coordinates) ycoord = -99 } obsCov = cbind(y1 = observations, y2 = 0, y3 = 0, covariates) if (all(paramToEstimate == "variance") & param["nugget"] == 0) { theL = loglikLgm(param, data = observations, formula = covariates, coordinates = coordinates, reml = reml) fromOptim = attributes(theL) result = list(optim = list(mle = fillParam(fromOptim$param), logL = c(m2logL = as.numeric(theL), logL = -as.numeric(theL)/2), totalVarHat = fromOptim$totalVarHat, message = "numerical optimization not needed", options = NULL, detail = NULL), betaHat = fromOptim$betaHat, varBetaHat = fromOptim$varBetaHat) } else { fromOptim = .C(C_maternLogLOpt, start = as.double(paramsForC), Sparam = as.integer(Sparam), obsCov = as.double(as.matrix(obsCov)), as.double(xcoord), as.double(ycoord), as.integer(aniso), N = as.integer(c(nrow(obsCov), 3, ncol(covariates))), Ltype = as.integer(reml + 2 * !estimateVariance), optInt = as.integer(forO$scalarInt), optF = as.double(forO$scalarF), betas = as.double(forO$pars), limType = as.integer(forO$parsInt), message = format(" ", width = 80)) names(fromOptim$start) = names(paramsForC) if (fromOptim$start["anisoRatio"] < 1) { fromOptim$start["anisoRatio"] <- 1/fromOptim$start["anisoRatio"] if (fromOptim$start["anisoAngleRadians"] + pi/2 >= pi/2) { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] - pi/2 } else { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] + pi/2 } } result = list(optim = list(mle = fromOptim$start, logL = c(m2logL = fromOptim$optF[1], logL = -fromOptim$optF[1]/2), totalVarHat = fromOptim$optF[2], boxcox = fromOptim$optF[3:5], determinants = fromOptim$optF[6:7], message = fromOptim$message, options = cbind(start = paramsForC[Sparam], opt = fromOptim$start[Sparam], parOptions[, c("parscale", "lower", "upper", "ndeps")]), detail = fromOptim$optInt[1:3]), betaHat = fromOptim$betas[1:ncol(covariates)], varBetaHat = new("dsyMatrix", Dim = as.integer(rep(ncol(covariates), 2)), uplo = "L", x = fromOptim$betas[seq(1 + ncol(covariates), len = ncol(covariates)^2)])) result$optim$options = cbind(result$optim$options, gradient = fromOptim$betas[seq(ncol(covariates)^2 + ncol(covariates) + 1, len = sum(Sparam))]) names(result$optim$detail) = c("fail", "fncount", "grcount") names(result$betaHat) = colnames(covariates) dimnames(result$varBetaHat) = list(names(result$betaHat), names(result$betaHat)) } result$parameters = fillParam(c(result$optim$mle, result$betaHat)) if (estimateVariance) { result$parameters[c("nugget", "variance")] = result$parameters[c("nugget", "variance")] * result$optim$totalVarHat result$varBetaHat = result$varBetaHat * result$optim$totalVarHat } names(result$optim$logL) = paste(names(result$optim$logL), c(".ml", ".reml")[reml + 1], sep = "") result$data = cbind(data.frame(observations = observations, fitted = covariates %*% result$parameters[colnames(covariates)]), data.frame(data)[noNA, ]) if (abs(result$parameters["boxcox"] - 1) > 1e-04) { if (abs(result$parameters["boxcox"]) < 0.001) { result$data$obsBC = log(observations) } else { result$data$obsBC <- ((observations^result$parameters["boxcox"]) - 1)/result$parameters["boxcox"] } } else { result$data$obsBC <- obsCov[, 1] } result$data$resid = result$data$obsBC - result$data$fitted if (length(grep("^SpatVector", class(coordinatesOrig)))) { forDf = rep(NA, length(noNA)) forDf[noNA] = seq(1, sum(noNA)) theDf = result$data[forDf, ] result$data = vect(x = crds(coordinatesOrig), atts = theDf, crs = crs(coordinatesOrig)) } result$model = list(reml = reml, baseline = theFactors) if (any(class(trend) == "formula")) { result$model$formula = trend result$data[[all.vars(formula)[1]]] = result$data$observations } else { result$model$formula = names(trend) } if (length(result$model$baseline)) { rparams = result$parameters baseParams = data.frame(var = names(result$model$baseline), base = result$model$baseline, pasted = paste(names(result$model$baseline), result$model$baseline, sep = "")) for (D in which(!baseParams$pasted %in% names(rparams))) { sameFac = grep(paste("^", baseParams[D, "var"], sep = ""), names(rparams)) pseq = 1:length(rparams) if (length(sameFac)) { minFac = min(sameFac) toAdd = 0 names(toAdd) = baseParams[D, "pasted"] rparams = c(rparams[pseq < minFac], toAdd, rparams[pseq >= minFac]) } } result$parameters = rparams } parameterTable = data.frame(estimate = result$parameters) rownames(parameterTable) = names(result$parameters) parameterTable$stdErr = NA stdErr = sqrt(Matrix::diag(result$varBetaHat)) parameterTable[rownames(result$varBetaHat), "stdErr"] = stdErr thelims = c(0.005, 0.025, 0.05, 0.1) thelims = c(rbind(thelims, 1 - thelims)) theQ = qnorm(thelims) toadd = outer(parameterTable$stdErr, theQ) toadd = toadd + matrix(parameterTable$estimate, ncol = length(thelims), nrow = dim(parameterTable)[1]) colnames(toadd) = paste("ci", thelims, sep = "") parameterTable = cbind(parameterTable, toadd) parameterTable[, "pval"] = pchisq(parameterTable$estimate^2/parameterTable$stdErr^2, df = 1, lower.tail = FALSE) parameterTable[, "Estimated"] = FALSE parameterTable[paramToEstimate, "Estimated"] = TRUE parameterTable[rownames(result$varBetaHat), "Estimated"] = TRUE if (estimateVariance) parameterTable["variance", "Estimated"] = TRUE rownames(parameterTable) = gsub("^variance$", "sdSpatial", rownames(parameterTable)) rownames(parameterTable) = gsub("^nugget$", "sdNugget", rownames(parameterTable)) parameterTable[c("sdSpatial", "sdNugget"), "estimate"] = sqrt(parameterTable[c("sdSpatial", "sdNugget"), "estimate"]) result$summary = as.data.frame(parameterTable) result$summary$Estimated = as.logical(result$summary$Estimated) result})(param = dots[[1L]][[1L]], data = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>)), formula = rain ~ elev, paramToEstimate = c("variance", "anisoRatio", "anisoAngleRadians"), reml = FALSE, coordinates = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>))) 2: .mapply(FUN, dots, MoreArgs) 3: FUN(X[[i]], ...) 4: lapply(X = S, FUN = FUN, ...) 5: doTryCatch(return(expr), name, parentenv, handler) 6: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 7: tryCatchList(expr, classes, parentenv, handlers) 8: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))}) 9: try(lapply(X = S, FUN = FUN, ...), silent = TRUE) 10: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) 11: FUN(X[[i]], ...) 12: lapply(seq_len(cores), inner.do) 13: mclapply(seq_len(n), do_one, mc.preschedule = mc.preschedule, mc.set.seed = mc.set.seed, mc.silent = mc.silent, mc.cores = mc.cores, mc.cleanup = mc.cleanup, affinity.list = affinity.list) 14: parallel::mcmapply(likfitLgm, param = parList, MoreArgs = list(data = fit$data, formula = fit$model$formula, paramToEstimate = reEstimate, reml = fit$model$reml, coordinates = fit$data), mc.cores = mc.cores, SIMPLIFY = FALSE) 15: profLlgm(swissFit, mc.cores = Ncores, range = seq(15000, 55000, len = 12)) An irrecoverable exception occurred. R is aborting now ... *** caught segfault *** address 0x110, cause 'invalid permissions' Traceback: 1: (function (formula, data, paramToEstimate = c("range", "nugget"), reml = TRUE, coordinates = data, param = NULL, upper = NULL, lower = NULL, parscale = NULL, verbose = FALSE) { param = param[!is.na(param)] coordinatesOrig = coordinates aniso = as.logical(length(grep("^aniso", c(names(param), paramToEstimate)))) | any(abs(param["anisoRatio"] - 1) > 1e-05, na.rm = TRUE) if (aniso) { if (is.matrix(coordinates)) { if (ncol(coordinates) != 2 | nrow(coordinates) != nrow(data)) stop("anisotropic model requested but coordinates appears to be a distance matrix") coordinates = vect(coordinates) } maxDist = dist(matrix(ext(coordinates), ncol = 2)) } else { if (is.matrix(coordinates)) { if (ncol(coordinates) == 2) { coordinates = dist(coordinates) } else { coordinates = as(coordinates, "dsyMatrix") } } if (any(class(coordinates) == "dist")) coordinates = as(as.matrix(coordinates), "dsyMatrix") if (length(grep("SpatVect", class(coordinates)))) { if (!nchar(crs(coordinates))) terra::crs(coordinates) = "+proj=utm +zone=1" coordinates = new("dsyMatrix", Dim = rep(length(coordinates), 2), x = as.vector(as.matrix(terra::distance(coordinates))), uplo = "L") } maxDist = max(coordinates, na.rm = TRUE) } trend = formula theFactors = NULL if (any(class(trend) == "formula")) { data = data.frame(data) theNA = apply(data[, all.vars(trend), drop = FALSE], 1, function(qq) any(is.na(qq))) noNA = !theNA theFactors = model.frame(trend, data[noNA, ]) whichFactors = unlist(lapply(theFactors, is.factor)) theFactors = theFactors[, whichFactors, drop = FALSE] theFactors = lapply(theFactors, levels) theFactors = unlist(lapply(theFactors, function(qq) qq[1])) covariates = model.matrix(trend, data[noNA, ]) covariates = covariates[, grep(paste("^(", paste(names(theFactors), collapse = "|"), ")NA$", sep = ""), colnames(covariates), invert = TRUE), drop = FALSE] observations = all.vars(trend)[1] if (!any(names(data) == observations)) warning("can't find observations ", observations, "in data") observations = data[noNA, observations, drop = FALSE] } else { trend = as.matrix(trend) theNA = is.na(data) | apply(trend, 1, function(qq) any(is.na(qq))) noNA = !theNA observations = data[noNA] covariates = trend[noNA, , drop = FALSE] } if (any(theNA)) { if (length(grep("^SpatVector", class(coordinates)))) { coordinates = coordinates[noNA] } else { if (ncol(coordinates) == nrow(coordinates)) { coordinates = coordinates[noNA, noNA] } else { coordinates = coordinates[noNA, ] } } } estimateVariance = TRUE if (any(paramToEstimate == "variance")) { paramToEstimate = paramToEstimate[paramToEstimate != "variance"] param = param[names(param) != "variance"] } else { if (any(names(param) == "variance")) { estimateVariance = FALSE } } paramToEstimate = gsub("anisoAngleDegrees", "anisoAngleRadians", paramToEstimate) degToRad = function(par) { if (length(grep("anisoAngleDegrees", names(par)))) { if (!length(grep("anisoAngleRadians", names(par)))) par["anisoAngleRadians"] = 2 * pi * par["anisoAngleDegrees"]/360 par = par[grep("anisoAngleDegrees", names(par), invert = TRUE)] } par } param = degToRad(param) lower = degToRad(lower) upper = degToRad(upper) parscale = degToRad(parscale) lowerDefaults = c(nugget = 0, range = maxDist/1000, anisoRatio = 0.01, anisoAngleRadians = -pi/2, shape = 0.1, boxcox = -1.5, variance = 0) upperDefaults = c(nugget = Inf, range = 10 * maxDist, anisoRatio = 100, anisoAngleRadians = pi/2, shape = 4, boxcox = 2.5, variance = Inf) paramDefaults = c(nugget = 0, anisoRatio = 1, anisoAngleRadians = 0, shape = 1.5, boxcox = 1, range = maxDist/10) if (any(names(paramToEstimate) == "nugget")) { paramDefaults["nugget"] = 1 } parscaleDefaults = c(range = maxDist/5, nugget = 0.05, boxcox = 0.5, anisoAngleRadians = 0.2, anisoRatio = 1, variance = 1, shape = 0.2) ndepsDefault = c(range = 0.01, nugget = 0.05, boxcox = 0.005, anisoAngleRadians = 0.01, anisoRatio = 0.01, variance = 0.01, shape = 0.01) paramDefaults[names(param)] = param parscaleDefaults[names(parscale)] = parscale lowerDefaults[names(lower)] = lower upperDefaults[names(upper)] = upper if (any(paramToEstimate == "nugget") & paramDefaults["nugget"] == lowerDefaults["nugget"]) { paramDefaults["nugget"] = min(c(0.5, upperDefaults["nugget"])) } startingParam = paramDefaults[paramToEstimate] names(startingParam) = paramToEstimate naStarting = is.na(startingParam) startingParam[naStarting] = paramDefaults[names(startingParam)[naStarting]] moreParams = paramDefaults[!names(paramDefaults) %in% paramToEstimate] allParams = c(startingParam, moreParams) allParams = fillParam(allParams) paramsForC = allParams[c("nugget", "variance", "range", "shape", "anisoRatio", "anisoAngleRadians", "boxcox")] Sparam = names(paramsForC) %in% paramToEstimate names(Sparam) = names(paramsForC) paramToEstimate = names(Sparam)[Sparam] parOptions = cbind(lower = lowerDefaults[paramToEstimate], upper = upperDefaults[paramToEstimate], parscale = parscaleDefaults[paramToEstimate], ndeps = ndepsDefault[paramToEstimate]) forO = list(scalarF = c(fnscale = -1, abstol = -1, reltol = -1, alpha = -1, beta = -1, gamma = -1, factr = 1e+06, pgtol = 0), scalarInt = c(trace = 0, maxit = 200, REPORT = 1, type = -1, lmm = 25, tmax = -1, temp = -1), pars = parOptions[, c("lower", "upper", "parscale", "ndeps"), drop = FALSE]) if (verbose) { forO$scalarInt["trace"] = 6 forO$scalarInt["REPORT"] = 200 } forO$parsInt = rep(0, nrow(forO$pars)) names(forO$parsInt) = rownames(forO$pars) forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] != Inf] = 2 forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] == Inf] = 1 forO$parsInt[forO$pars[, "lower"] == -Inf & forO$pars[, "upper"] != Inf] = 3 forOparsOrig = forO$pars forO$pars[!is.finite(forO$pars)] = -1 forO$pars = c(forO$pars, rep(0, ncol(covariates) + ncol(covariates)^2)) if (aniso) { xcoord = crds(coordinates)[, 1] ycoord = crds(coordinates)[, 2] } else { xcoord = as.vector(coordinates) ycoord = -99 } obsCov = cbind(y1 = observations, y2 = 0, y3 = 0, covariates) if (all(paramToEstimate == "variance") & param["nugget"] == 0) { theL = loglikLgm(param, data = observations, formula = covariates, coordinates = coordinates, reml = reml) fromOptim = attributes(theL) result = list(optim = list(mle = fillParam(fromOptim$param), logL = c(m2logL = as.numeric(theL), logL = -as.numeric(theL)/2), totalVarHat = fromOptim$totalVarHat, message = "numerical optimization not needed", options = NULL, detail = NULL), betaHat = fromOptim$betaHat, varBetaHat = fromOptim$varBetaHat) } else { fromOptim = .C(C_maternLogLOpt, start = as.double(paramsForC), Sparam = as.integer(Sparam), obsCov = as.double(as.matrix(obsCov)), as.double(xcoord), as.double(ycoord), as.integer(aniso), N = as.integer(c(nrow(obsCov), 3, ncol(covariates))), Ltype = as.integer(reml + 2 * !estimateVariance), optInt = as.integer(forO$scalarInt), optF = as.double(forO$scalarF), betas = as.double(forO$pars), limType = as.integer(forO$parsInt), message = format(" ", width = 80)) names(fromOptim$start) = names(paramsForC) if (fromOptim$start["anisoRatio"] < 1) { fromOptim$start["anisoRatio"] <- 1/fromOptim$start["anisoRatio"] if (fromOptim$start["anisoAngleRadians"] + pi/2 >= pi/2) { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] - pi/2 } else { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] + pi/2 } } result = list(optim = list(mle = fromOptim$start, logL = c(m2logL = fromOptim$optF[1], logL = -fromOptim$optF[1]/2), totalVarHat = fromOptim$optF[2], boxcox = fromOptim$optF[3:5], determinants = fromOptim$optF[6:7], message = fromOptim$message, options = cbind(start = paramsForC[Sparam], opt = fromOptim$start[Sparam], parOptions[, c("parscale", "lower", "upper", "ndeps")]), detail = fromOptim$optInt[1:3]), betaHat = fromOptim$betas[1:ncol(covariates)], varBetaHat = new("dsyMatrix", Dim = as.integer(rep(ncol(covariates), 2)), uplo = "L", x = fromOptim$betas[seq(1 + ncol(covariates), len = ncol(covariates)^2)])) result$optim$options = cbind(result$optim$options, gradient = fromOptim$betas[seq(ncol(covariates)^2 + ncol(covariates) + 1, len = sum(Sparam))]) names(result$optim$detail) = c("fail", "fncount", "grcount") names(result$betaHat) = colnames(covariates) dimnames(result$varBetaHat) = list(names(result$betaHat), names(result$betaHat)) } result$parameters = fillParam(c(result$optim$mle, result$betaHat)) if (estimateVariance) { result$parameters[c("nugget", "variance")] = result$parameters[c("nugget", "variance")] * result$optim$totalVarHat result$varBetaHat = result$varBetaHat * result$optim$totalVarHat } names(result$optim$logL) = paste(names(result$optim$logL), c(".ml", ".reml")[reml + 1], sep = "") result$data = cbind(data.frame(observations = observations, fitted = covariates %*% result$parameters[colnames(covariates)]), data.frame(data)[noNA, ]) if (abs(result$parameters["boxcox"] - 1) > 1e-04) { if (abs(result$parameters["boxcox"]) < 0.001) { result$data$obsBC = log(observations) } else { result$data$obsBC <- ((observations^result$parameters["boxcox"]) - 1)/result$parameters["boxcox"] } } else { result$data$obsBC <- obsCov[, 1] } result$data$resid = result$data$obsBC - result$data$fitted if (length(grep("^SpatVector", class(coordinatesOrig)))) { forDf = rep(NA, length(noNA)) forDf[noNA] = seq(1, sum(noNA)) theDf = result$data[forDf, ] result$data = vect(x = crds(coordinatesOrig), atts = theDf, crs = crs(coordinatesOrig)) } result$model = list(reml = reml, baseline = theFactors) if (any(class(trend) == "formula")) { result$model$formula = trend result$data[[all.vars(formula)[1]]] = result$data$observations } else { result$model$formula = names(trend) } if (length(result$model$baseline)) { rparams = result$parameters baseParams = data.frame(var = names(result$model$baseline), base = result$model$baseline, pasted = paste(names(result$model$baseline), result$model$baseline, sep = "")) for (D in which(!baseParams$pasted %in% names(rparams))) { sameFac = grep(paste("^", baseParams[D, "var"], sep = ""), names(rparams)) pseq = 1:length(rparams) if (length(sameFac)) { minFac = min(sameFac) toAdd = 0 names(toAdd) = baseParams[D, "pasted"] rparams = c(rparams[pseq < minFac], toAdd, rparams[pseq >= minFac]) } } result$parameters = rparams } parameterTable = data.frame(estimate = result$parameters) rownames(parameterTable) = names(result$parameters) parameterTable$stdErr = NA stdErr = sqrt(Matrix::diag(result$varBetaHat)) parameterTable[rownames(result$varBetaHat), "stdErr"] = stdErr thelims = c(0.005, 0.025, 0.05, 0.1) thelims = c(rbind(thelims, 1 - thelims)) theQ = qnorm(thelims) toadd = outer(parameterTable$stdErr, theQ) toadd = toadd + matrix(parameterTable$estimate, ncol = length(thelims), nrow = dim(parameterTable)[1]) colnames(toadd) = paste("ci", thelims, sep = "") parameterTable = cbind(parameterTable, toadd) parameterTable[, "pval"] = pchisq(parameterTable$estimate^2/parameterTable$stdErr^2, df = 1, lower.tail = FALSE) parameterTable[, "Estimated"] = FALSE parameterTable[paramToEstimate, "Estimated"] = TRUE parameterTable[rownames(result$varBetaHat), "Estimated"] = TRUE if (estimateVariance) parameterTable["variance", "Estimated"] = TRUE rownames(parameterTable) = gsub("^variance$", "sdSpatial", rownames(parameterTable)) rownames(parameterTable) = gsub("^nugget$", "sdNugget", rownames(parameterTable)) parameterTable[c("sdSpatial", "sdNugget"), "estimate"] = sqrt(parameterTable[c("sdSpatial", "sdNugget"), "estimate"]) result$summary = as.data.frame(parameterTable) result$summary$Estimated = as.logical(result$summary$Estimated) result})(param = dots[[1L]][[1L]], data = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>)), formula = rain ~ elev, paramToEstimate = c("variance", "anisoRatio", "anisoAngleRadians"), reml = FALSE, coordinates = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>))) 2: .mapply(FUN, dots, MoreArgs) 3: FUN(X[[i]], ...) 4: lapply(X = S, FUN = FUN, ...) 5: doTryCatch(return(expr), name, parentenv, handler) 6: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 7: tryCatchList(expr, classes, parentenv, handlers) 8: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))}) 9: try(lapply(X = S, FUN = FUN, ...), silent = TRUE) 10: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) 11: FUN(X[[i]], ...) 12: lapply(seq_len(cores), inner.do) 13: mclapply(seq_len(n), do_one, mc.preschedule = mc.preschedule, mc.set.seed = mc.set.seed, mc.silent = mc.silent, mc.cores = mc.cores, mc.cleanup = mc.cleanup, affinity.list = affinity.list) 14: parallel::mcmapply(likfitLgm, param = parList, MoreArgs = list(data = fit$data, formula = fit$model$formula, paramToEstimate = reEstimate, reml = fit$model$reml, coordinates = fit$data), mc.cores = mc.cores, SIMPLIFY = FALSE) 15: profLlgm(swissFit, mc.cores = Ncores, range = seq(15000, 55000, len = 12)) An irrecoverable exception occurred. R is aborting now ... Error in resL[grep("^m2logL", rownames(resL)), ] : incorrect number of dimensions Calls: profLlgm In addition: Warning message: In mclapply(seq_len(n), do_one, mc.preschedule = mc.preschedule, : scheduled cores 1, 2 did not deliver results, all values of the jobs will be affected Execution halted Flavor: r-devel-macos-arm64

Version: 2.0.8
Check: package dependencies
Result: NOTE Package suggested but not available for checking: ‘RandomFields’ Package which this enhances but not available for checking: ‘INLA’ Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64

Version: 2.0.8
Check: package dependencies
Result: NOTE Package suggested but not available for checking: 'RandomFields' Flavor: r-oldrel-windows-x86_64