​Latest News


Our science team is currently working on several projects in Indonesia (Sumatra and East Kalimantan in Borneo) and India.
I am developing new methods for deriving biodiversity diversity from spectral data using complex nonlinear statistical relationships between measured biodiversity and soundscapes and spectra across multiple satellite sensors.
To address the importance of forest patches for tiger movement in Sumatra, I am developing new Graph Theoretical metrics that allow for the importance ranking of any given forest patch and facilitates "scenario analysis" that illustrates, via simulation, what happens to the landscape matrix quality if a given patch is eliminated or added. This not only allows us to make habitat recommendations on the current landscape but we can also look to the future and make habitat restoration recommendations that would enhance habitat quality and not just conserve what is currently there.        
Tool Development

All R and Python libraries have been posted on GitHub. If you would like to view or suggest modifications to source code or report a bug at: 

rfUtilities R library

New release of of "rfUtilities" 2.1-2 includes new functions for calculating Log Loss performance evaluation a function implementing an Isotonic regression for calibration of the estimated posterior probabilities of a model. There is also a new function for deriving parameter effect size based on partial dependency (Cafri & Bailey, 2016). The statistics Mean Absolute Error (mae) and Mean Bias Error (mbe) were added to the rf.crossValidation function.  


Available functions in rfUtilities are:

          accuracy - A function, called by the rf.crossValidation function or independently, that provides validation statistics for binomial or regression models
          logLoss - Calculates Logarithmic loss (logLoss)
          multi.collinear - Multi-collinearity test with matrix permutation.
          occurrence.threshold - A statistical sensitivity test for occurrence probability thresholds
          probability.calibration - Isotonic probability calibration
          rf.class.sensitivity - Random Forests class-level sensitivity analysis
          rf.classBalance - Random Forests Class Balance (Zero Inflation Correction) Model
          rf.crossValidation - Random Forests classification or regression cross-validation
          rf.effectSize - Random Forests parameter effect size
          rf.imp.freq - Random Forests variable selection frequency
          rf.modelSel - Random Forests Model Selection
 - Random Forests regression partial dependency plot with confidence intervals
          rf.partial.prob - Random Forest probability scaled partial dependency plots
 - Evaluates fit and overfit of random forests regression models
          rf.significance - Significance test for classification or regression random forests models


SpatialEco R library

spatialEco 0.1-5 is now available on CRAN.:


Available functions in spatialEco are:

          breeding.density - Calculates n-th percent breeding density areas base on a kernel density estimate of population counts.     

          correlogram - Calculates and plots a correlogram (spatially lagged correlations, "pearson", "kendall" or "spearman")

          concordance - Performs a concordance/disconcordance (C-statistic) test on binomial models.

          conf.interval - Calculates confidence interval for the mean or median of a distribution with unknown population variance

          csi - Calculates the cosine similarity and angular similarity on two vectors or a matrix

          daymet.point - Downloads DAYMET climate variables for specified point and timeperiod

          daymet.tiles - Returns a vector of DAYMET tile id's within a specified extent

          dispersion - Calculates the dispersion ("rarity") of targets associated with planning units

          download.daymet - Batch download of daily gridded DAYMET climate data    

          download.hansen - Download of Hansen Global Forest Change 2000-2013  

          download.prism - Batch download of monthly gridded PRISM climate data

           effect.size - Cohen's-d effect size with pooled sd for a control and experimental group   

          gaussian.kernel - Creates a Gaussian Kernel of specified size and sigma

          group.pdf - Creates a probability density plot of y for each group of x           

          hexagons - Create hexagon polygon “fishnet” of defined size and extent.             

          idw.smoothing - Distance weighted smoothing (IDW) of a variable in a spatial point object. The function is a smoothing interpolator at the point

                                     observation(s) level using a distance-weighted mean.   

           insert.values - Inserts new values into a vector at specified positions   

          kl.divergence - Calculates the Kullback-Leibler divergence (relative entropy) between unweighted theoretical component distributions.

                                   Divergence is calculated as: int [f(x) (log f(x) - log g(x)) dx] for distributions with densities f() and g().       

          land.metrics - Calculates a variety of landscape metrics, on binary rasters, for polygons or points with a buffer distance. This is similar to the moving

                                  window in Fragstats but, uses either a buffer for each point or a zonal approach with polygons, to derive local metrics. 

           local.min.max - Calculates the local minimums and maximums in a numeric vector, indicating inflection points in the distribution.   

          loess.boot - Bootstrap of a Local Polynomial Regression (loess)

 - Calculates a local polynomial regression fit with associated confidence intervals   

          logistic.regression - Performs a logistic (binomial) and autologistic (spatially lagged binomial) regression using maximum likelihood estimation or

                                           penalized maximum likelihood estimation.

          moments - Calculate statistical moments of a distribution including percentiles, arithmetic-geometric-harmonic means, coefficient of variation, median

                             absolute deviation, skewness, kurtosis, mode and number of modes.    

          mwCorr - A bivariate raster correlation using Dutilleul's modified t-test           

          nni - Calculates the nearest neighbor index (NNI) as a measure of clustering or dispersal               

          o.ring - Calculates the inhomogeneous O-ring point pattern statistic (Wiegand & Maloney 2004)               

          optimal.k - Find optimal k of k-Medoid partitions using silhouette widths  

          outliers - Identify outliers using modified Z-score  

          parea.sample - Creates a systematic or random point sample of polygons where n is based on percent area of each polygon

          plot.effect.size - Plot generic for effect size

          plot.loess.boot - Plot generic for loess boot     

 - Intersects point and polygon feature classes and adds polygon attributes to the points     

          polyPerimeter - Calculates the perimeter length(s) for a polygon object

          pp.subsample - Generates random subsample based on point process intensity function of the observed data. This is a spatially informed data thinning

                                   model that can be used to reduce pseudo-replication or autocorrelation.  

          pseudo.absence - Generates pseudo-absence samples based on the spatial intensity function of known species locations. This is akin to

                                      distance constrained but is informed by the spatial process of the observed data and is drawn from a probabilistic sample

                                      following the intensity function.       

          raster.entropy - Calculates entropy on integer raster (i.e., 8 bit 0-255)  

          raster.vol - Calculates a percent volume on a raster or based on the entire raster or a systematic sample

          rasterCorrelation - Performs a simple moving window correlation between two rasters

          sample.annulus - Creates sample points based on annulus with defined inner and outer radius

          sample.line - Creates a systematic or random point sample of an sp SpatialLinesDataFrame object based on distance spacing, fixed size or

                                proportional size

          sample.poly - Creates an equal sample of n for each polygon in an sp Polygon class object

          sampleTransect - Creates random transects from points and generates sample points along each transect

          separability - Calculates variety of univariate or multivariate separability metrics for nominal class samples  

          shannons - Calculates Shannon's Diversity Index and Shannon's Evenness Index

          similarity - Uses row imputation to identify "k" ecological similar observations     

  - Removes row or column NA's in sp object. The standard R na.omit function will not propagate through all slots of an sp class object. This

                               function removes the spatial objects, in all slots, corresponding to NA's in the @data data.frame object.        

          stratified.random - Creates a stratified random sample of an sp class object using a factor.

          trend.line - Calculated specified (linear, exponential, logarithmic, polynomial) trend line of x,y and plots results.       

          tpi - Calculates topographic position using mean deviations within specified window  

          tri - Implementation of the Riley et al (1999) Terrain Ruggedness Index

          trig.rtans - The trigonometric Stage (1978) slope * cos(aspect) or slope * sin(aspect)

          vrm - Implementation of the Sappington et al., (2007) vector ruggedness measure

          wt.centroid - Creates centroid of [x,y] coordinates, of a random field, based on a weights field in a point sample.      

          zonal.stats - Polygon "zonal" statistics of a raster. Function can accept custom “vectorized” function.         

GeNetIt R library

Melanie Murphy and I released version 0.1-0 of the “GeNetIt” library implementing graph theoretical models in landscape genetic studies and general movement/connectivity ecology. The underlying method will is a singly constrained gravity model. There are also several utility functions for building spatial graphs and calculating node and edge statistics.       


Available functions in GeNetIt are:

          area.graph.statistics - Statistics for edges (lines) based on a defined scale (area).
 - Build node data

         dmatrix.df - Distance matrix to data.frame

         dps - dps genetic distance matrix for Columbia spotted frog (Rana luteiventris)

         graph.statistics - Point sample and statistics for edges (lines)

         gravity - Gravity model

         knn.graph - Saturated or K Nearest Neighbor Graph

         plot.gravity - Generic plot function for a gravity model object

         predict.gravity - Predict gravity model

         print.gravity - Print gravity model

         ralu.model - Columbia spotted frog (Rana luteiventris) data for specifying gravity model. Note, the data.frame is already log transformed.
 - Subset of site-level spatial point data for Columbia spotted frog (Rana luteiventris)

         rasters - Subset of raster data for Columbia spotted frog (Rana luteiventris)

         summary.gravity - generic summary function for gravity model objects

Select Recent Publications


    Ali, A.H., A.T. Ford, J.S. Evans, R. Amin, J.R. Gohen (2017) Resource selection and landscape change reveal mechanisms underlying range collapse for the world's

        most endangered antelope. Journal of Applied Ecology. DOI: 10.1111/1365-2664.12856


    Baruch-Mordo, S., J.S. Evans, J. Severson, J. D. Naugle, J. Kiesecker, J. Maestas, and M.J. Falkowski (2013) Saving sage-grouse from the trees: A proactive solution

        to reducing a key threat to a candidate species Biological Conservation 167:233-241


    Copeland, H.E., A. Pocewicz, D.E. Naugle, T. Griffiths, D. Keinath, J.S. Evans, J. Platt (2013) Measuring the effectiveness of conservation: a novel framework to

        quantify the benefits of sage-grouse conservation policy and easements in Wyoming. PLoS One 8(6):e67261


    Doherty K.E., J.S. Evans, J. Walker, J.H. Devries, D.W. Howerter (2015) Building the Foundation for International Conservation Planning for Breeding Ducks across

        the U.S. and Canadian Border. PLoS ONE 10(2): e0116735. doi:10.1371/journal.pone.0116735


    Doherty K.E., J.S. Evans, P.S. Coates, L.M Juliusson, B.C. Fedy (2016) Importance of regional variation in conservation planning: A range-wide example of the

        Greater Sage-grouse. Ecosphere 7(10): e01462

    Evans, J.S., S.R. Schill, G.T. Raber (2015) A Systematic Framework for Spatial Conservation Planning and Ecological Priority Design in St. Lucia, Eastern Caribbean.

        Chapter 26 in Central American Biodiversity, F. Huettman (eds). Springer, NY.   


    Evans, J.S., J.M. Kiesecker (2014) Shale Gas, Wind and Water: Assessing the Potential Cumulative Impacts of Energy Development on

        Ecosystem Services within the Marcellus Play. PLoS ONE 9(2): e89210. doi:10.1371/journal.pone.0089210


    Falkowski, M.J., J.S. Evans, C. Hagen, S. Carleton, D.E. Naugle (2017) Mapping Woody Invasion in Support of Proactive Prairie Grouse Conservation in Western

        North America. Journal of Range Ecology and Management 70(1):15-24

    Gabrielsen, C.G., M.A. Murphy, J.S. Evans (2016) Using a multiscale, probabilistic approach to identify spatial-temporal wetland gradients. Remote

        Sensing of the Environment 184:522–538

    Griscom, B.W., P.W. Ellis, A. Baccini, D. Matrhinus, J.S. Evans, L. Hovani (2016) Synthesizing global datasets for jurisdictional forest carbon accounting in Berau,

        Indonesia. PLoS One. DOI:10.1371/journal.pone.0146357  

    Kennedy, C.M., P.L. Hawthorne, D.A. Miteva, L. Baumgarten, K Sochi, M. Matsumoto, J.S. Evans, M. Viera, P. Ferreira, et al., (2016) Optimizing Land Use Decision- 

        making to Brazilian Agriculture Profits, Biodiversity and Ecosystem Services. Biological Conservation 204(B):221–230


    Lipsey, M.K., K.E. Doherty, D.E. Naugle, S. Fields, J.S. Evans, S.K. Davis and N. Koper (2015) One step ahead of the plow: Using cropland conversion risk to guide

        grassland songbird conservation. Biological Conservation. 191:739–749


    Poznanovic, A.J., M.J. Falkowski, A.L. Maclean, and J.S. Evans (2014) An Accuracy Assessment of Tree Detection Algorithms in Juniper Woodlands.  

        Photogrammetric Engineering & Remote Sensing 80(5):627–637


    Smith, J.T., J.S. Evans, S. Baruch-Mordo, J.M. Kiesecker, D.E. Naugle (2016) Reducing cultivation risk for at-risk species: Predicting outcomes of
        conservation easements for sage-grouse. Biological Conservation 201:10-19.

    Strager, M.P., J.M. Strager, A.E. Maxwell, J.S. Evans, J. Dunscomb, B. Kreps (2015) Combining a Spatial Model and Demand Forecasts to Map Future Surface Coal

        Mining in Appalachia. PLoS ONE


In review, accepted or in press

    Evans , J.S., J.M. Kiesecker, J. Fargione, K. Doherty, K. Foresman, D. Naugle, N. Nibbelink, N. Niemuth (in review) Relationships Between Species Occurrence and

        Human-induced Disturbance. Nature   

    Fekety, P. A., M. J. Falkowski, A. T. Hudak, T. B. Jain, and J. S. Evans (accepted) Ecoregion-level imputation of forest biomass and composition using disjunct 

        LiDAR collections. Canadian Journal of Forest Research

    MacKenzie D.L., & J.S. Evans (in prep) A Spatial-Temporal Bayesian model of Sage Grouse leking trends. Proceedings of the National Academy of Sciences.


    Murphy, M.A., and J.S. Evans, (in review) GeNetIt: An R package for spatial graph theoretical genetic connectivity modeling. Methods in Ecology and Evolution.


    Murphy, M.A., W.C. Funk, E. Muths, J.S.Evans (Submitted) A landscape genetics approach for science-based conservation planning along the Front Range,

        Colorado. Conservation Genetics.