Skip to content

Commit

Permalink
Merge pull request #107 from ropensci/fix-onload
Browse files Browse the repository at this point in the history
Fix onload function
  • Loading branch information
marcosci authored May 6, 2024
2 parents 32ddcdf + f0b8680 commit e14ad90
Show file tree
Hide file tree
Showing 7 changed files with 173 additions and 152 deletions.
5 changes: 4 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
____________________________________________________________________________________
## NLMR 1.1.1 Release Notes

- Adding onload function and help for users that dont have `RandomFields`

## NLMR 1.1.0.9000 Release Notes

- move `RandomFields` and `RandomFieldsUtils` to Suggests and use AdditionalRepositories to provide these packages since they are no longer available from CRAN (with #95)
Expand Down
8 changes: 0 additions & 8 deletions R/NLMR.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,5 @@

globalVariables(c("x", "value", ".", "ctf"))

.cranLikeRepo <- "https://predictiveecology.r-universe.dev/"
.messageRandomFields <- paste(
"Package 'RandomFields' is required, but no longer available on CRAN.",
"Try installing the most recent archived version:",
sprintf(" install.packages('RandomFields', repos = '%s')", .cranLikeRepo),
sep = "\n"
)

# nolint end
# nocov end
96 changes: 48 additions & 48 deletions R/nlm_fbm.R
Original file line number Diff line number Diff line change
Expand Up @@ -59,53 +59,53 @@ nlm_fbm <- function(ncol,
user_seed = NULL,
rescale = TRUE,
...) {
if (requireNamespace("RandomFields", quietly = TRUE)) {
# Check function arguments ----
checkmate::assert_count(ncol, positive = TRUE)
checkmate::assert_count(nrow, positive = TRUE)
checkmate::assert_numeric(resolution)
checkmate::assert_numeric(fract_dim)
checkmate::assert_true(fract_dim > 0)
checkmate::assert_true(fract_dim <= 2)
checkmate::assert_logical(rescale)

# specify RandomFields options ----
RandomFields::RFoptions(cPrintlevel = 0)
RandomFields::RFoptions(spConform = FALSE)
RandomFields::RFoptions(...)

# set RF seed ----
RandomFields::RFoptions(seed = user_seed)

# formulate and simulate fBm model
fbm_model <- RandomFields::RMfbm(
alpha = fract_dim)
fbm_simu <- RandomFields::RFsimulate(fbm_model,
# fBm changes x and y?
y = seq.int(0, length.out = ncol),
x = seq.int(0, length.out = nrow),
grid = TRUE)


# transform simulation into raster ----
fbm_raster <- raster::raster(fbm_simu)


# specify extent and resolution ----
raster::extent(fbm_raster) <- c(
0,
ncol(fbm_raster) * resolution,
0,
nrow(fbm_raster) * resolution
)

# Rescale values to 0-1 ----
if (rescale == TRUE) {
fbm_raster <- util_rescale(fbm_raster)
}

return(fbm_raster)
} else {
stop(.messageRandomFields)

hasData()

# Check function arguments ----
checkmate::assert_count(ncol, positive = TRUE)
checkmate::assert_count(nrow, positive = TRUE)
checkmate::assert_numeric(resolution)
checkmate::assert_numeric(fract_dim)
checkmate::assert_true(fract_dim > 0)
checkmate::assert_true(fract_dim <= 2)
checkmate::assert_logical(rescale)

# specify RandomFields options ----
RandomFields::RFoptions(cPrintlevel = 0)
RandomFields::RFoptions(spConform = FALSE)
RandomFields::RFoptions(...)

# set RF seed ----
RandomFields::RFoptions(seed = user_seed)

# formulate and simulate fBm model
fbm_model <- RandomFields::RMfbm(
alpha = fract_dim)
fbm_simu <- RandomFields::RFsimulate(fbm_model,
# fBm changes x and y?
y = seq.int(0, length.out = ncol),
x = seq.int(0, length.out = nrow),
grid = TRUE)


# transform simulation into raster ----
fbm_raster <- raster::raster(fbm_simu)


# specify extent and resolution ----
raster::extent(fbm_raster) <- c(
0,
ncol(fbm_raster) * resolution,
0,
nrow(fbm_raster) * resolution
)

# Rescale values to 0-1 ----
if (rescale == TRUE) {
fbm_raster <- util_rescale(fbm_raster)
}

return(fbm_raster)

}
98 changes: 48 additions & 50 deletions R/nlm_gaussianfield.R
Original file line number Diff line number Diff line change
Expand Up @@ -59,55 +59,53 @@ nlm_gaussianfield <- function(ncol,
mean = 0.5,
user_seed = NULL,
rescale = TRUE) {

if (requireNamespace("RandomFields", quietly = TRUE)) {
# Check function arguments ----
checkmate::assert_count(ncol, positive = TRUE)
checkmate::assert_count(nrow, positive = TRUE)
checkmate::assert_numeric(resolution, lower = 0)
checkmate::assert_count(autocorr_range, positive = TRUE)
checkmate::assert_numeric(mag_var, lower = 0)
checkmate::assert_numeric(nug, lower = 0)
checkmate::assert_numeric(mean)
checkmate::assert_logical(rescale)


# specify RandomFields options ----
RandomFields::RFoptions(cPrintlevel = 0)
RandomFields::RFoptions(spConform = FALSE)

# set RF seed ----
RandomFields::RFoptions(seed = user_seed)


# formulate gaussian random model
model <- RandomFields::RMexp(var = mag_var, scale = autocorr_range) +
RandomFields::RMnugget(var = nug) + # nugget
RandomFields::RMtrend(mean = mean) # and mean

# simulate
simu <-
RandomFields::RFsimulate(model,
y = seq(ncol),
x = seq(nrow),
grid = TRUE)

# coerce to raster
pred_raster <- raster::raster(simu)

# specify resolution ----
raster::extent(pred_raster) <- c(0,
ncol(pred_raster) * resolution,
0,
nrow(pred_raster) * resolution)

# Rescale values to 0-1 ----
if (rescale == TRUE) {
pred_raster <- util_rescale(pred_raster)
}

return(pred_raster)
} else {
stop(.messageRandomFields)

hasData()

# Check function arguments ----
checkmate::assert_count(ncol, positive = TRUE)
checkmate::assert_count(nrow, positive = TRUE)
checkmate::assert_numeric(resolution, lower = 0)
checkmate::assert_count(autocorr_range, positive = TRUE)
checkmate::assert_numeric(mag_var, lower = 0)
checkmate::assert_numeric(nug, lower = 0)
checkmate::assert_numeric(mean)
checkmate::assert_logical(rescale)


# specify RandomFields options ----
RandomFields::RFoptions(cPrintlevel = 0)
RandomFields::RFoptions(spConform = FALSE)

# set RF seed ----
RandomFields::RFoptions(seed = user_seed)


# formulate gaussian random model
model <- RandomFields::RMexp(var = mag_var, scale = autocorr_range) +
RandomFields::RMnugget(var = nug) + # nugget
RandomFields::RMtrend(mean = mean) # and mean

# simulate
simu <-
RandomFields::RFsimulate(model,
y = seq(ncol),
x = seq(nrow),
grid = TRUE)

# coerce to raster
pred_raster <- raster::raster(simu)

# specify resolution ----
raster::extent(pred_raster) <- c(0,
ncol(pred_raster) * resolution,
0,
nrow(pred_raster) * resolution)

# Rescale values to 0-1 ----
if (rescale == TRUE) {
pred_raster <- util_rescale(pred_raster)
}

return(pred_raster)
}
Loading

0 comments on commit e14ad90

Please sign in to comment.