ENMeval: bias files, clamping/extrapolation, and some more...

486 views
Skip to first unread message

Luciano La Sala

unread,
Jun 8, 2017, 12:47:08 PM6/8/17
to Maxent
Hello everyone, 

A few days ago I reached some of the authors of ENMeval about some problems that I was having fitting my models with their package. Many thanks to R. Muscarella, M. Soley and J. Kass, who promptly responded to questions and helped a great deal in overcoming these problems. Look forward to seeing their answers posted so all who may have (or probably will) encountered similar problems can find potential solutions.  

Cheers, 

LFLS
  
Question: 

I am using ENMeval to study the environmental and geographical distribution of an invasive species in South America. I find the package quite friendly. However, in this transition between Maxent GUI and ENMeval I get to a point where I am not sure how (if at all possible) can I do the following withing package: 

1) Define the kind of projection that I need, namely "Extrapolation" or "Do clamping" as presented in Maxent GUI.      

2) Add a raster bias file

2) Eliminate duplicate records, which may come in two colors (so to speak): (i) observations with identical coordinates, and (ii) observation which have different coordinates but fall inside the same pixel.       

Jamie M. Kass

unread,
Jun 9, 2017, 11:16:33 AM6/9/17
to Maxent
You can turn on clamping by specifying "clamp = TRUE" as a parameter in the call to ENMevaluate(). The default is TRUE, so turning it FALSE will activate extrapolation. However, please be advised that I've noticed that maxent.jar does not extrapolate properly when run through dismo. If run from the GUI, this is not a problem. Here's a thread on the Google Group about this issue. Thus, if you want to use extrapolation without clamping, I'd advise using the GUI, not dismo in R.

As for applying thresholding rules, ENMevaluate() does this internally in order to calculate omission rates. However, you can threshold the output predictions yourself pretty easily. If you set the output of ENMevaluate() to a variable x, x@models[[i]] will give you the model object for the ith model (corresponds to the row numbers in x@results). If the model object is called m, m@results will give you the Maxent results, and inside will be all the threshold values. Once you get the one you want, simply do:

x <- ENMevaluate(...)
x@results
m <- x@models[[i]]  # i is the model you've chosen as optimal
m@results
thresh <- 0.4  # if this is your chosen threshold
p <- x@predictions[[i]]  # model i prediction (raster)
p.thresh <- p > thresh

ENMeval does not have functionality for bias grids as of yet, but we would like to add it in the future.

Bob, if there's anything else to add, please do.

Jamie Kass
PhD Candidate
City College of NY

Julian Burgos

unread,
Jun 15, 2017, 1:36:01 AM6/15/17
to Maxent
Hi Jamie,

Sorry if this is a basic question, but what effect turning on clamping would have on the model selection process carried out by the ENMevaluate function?  It seems that varying the feature classes and the value of the regularization multiplier defines how we train the model.  Decisions about clamping and extrapolating influence the projection (prediction) of the model.  So would turning clamping on or off would change the optimal combination of feature classes and RM value?

Thanks for the answer. :) 

Jamie M. Kass

unread,
Jun 15, 2017, 1:47:27 AM6/15/17
to Maxent
No, it's not basic at all! Clamping does come into play only when the model is extrapolating, and this happens if you select a spatial partitioning method, as models will be evaluated on points that are outside the training area. It could also happen with a random partitioning method, but it's much less likely.


Jamie Kass
PhD Candidate
City College of NY

Reply all
Reply to author
Forward
0 new messages