Utilities to support spatial data manipulation, query, sampling and modelling. Functions include models for species population density, download utilities for climate and global deforestation spatial products, spatial smoothing, multivariate separability, point process model for creating pseudo- absences and sub-sampling, polygon and point-distance landscape metrics, auto-logistic model, sampling models, cluster optimization, statistical exploratory tools and raster-based metrics.

- Fixed bug in logistic.regression where autocovariance function did not recognize the specified variable
- Added an automatic all-neighbour minimum distance for autocovariance in logistic.regression function
- Added function "csi" for cosine similarity index and angular similarity index
- Added function "local.min.max" for finding local minimum and maximum values in a numeric vector
- Added function "outliers" for identifying outliers using modified z-score

- Added argument in "o.ring" for inhomogeneous (TRUE/FALSE) to account for different point processes
- Added function "kl.divergence" for the Kullback-Leibler divergence (relative entropy) metric
- Added function "loess.boot" for bootstraping a loess regression, with associated print and plot functions
- Added function "loess.ci" for calculating a confidence interval for a loess regression, with associated print and plot functions
- Added function "raster.vol" for generating percent volume from a raster
- Added function "tpi" for calculating the topographic position index
- Added function "concordance" that performs a concordance/ disconcordance (C-statistic) test on binomial models.

- Bug fix in "land.metrics" that addressed error when more than one class was present
- Bug fix in "land.metrics" that addressed trace error
- Enhancement to "land.metrics" function now accepts multiple classes
- Added function "gaussian.kernel" Creates a Gaussian Kernel of specified size and sigma
- Added function "tri" Implementation of the Riley et al (1999) Terrain Ruggedness Index
- Added function "sample.poly" for creating samples for each polygon in a SpatialPolygons class object
- Added function "similarity" implementing row imputation to identify "k" ecological similar observations
- Added function "dispersion" for calculating the dispersion ("rarity") of targets associated with ecological planning units
- Added function "shannons" for calculating the Shannon's diversity index
- Added function "insert.values" for inserting new values into a vector at specified positions

- Enhancement to sp.an.omit that allows for removal of columns with NA's
- Added function to identify daymet tiles from sp, raster, extent or coordinates
- Added function for point download of DAYMET climate data
- Added function for distance lagged sampling

- Bug fix in "stratified.random" function.
- Added function "rasterCorrelation" for calculating "pearson" or "spearman" correlations or "covariance" between two rasters within a specified moving window.
- Added function "mwCorr" for calculating Dutilleul's modified t-test between two rasters within a specified moving window.
- Added function "polyPerimeter" for calculating polygon perimeters

- Enhancement to "raster.entropy" for recognizing continuous verses nominal data in deriving entropy. Also allows for global or local definition of entropy constant.
- Added function "raster.mds" for calculating a focal multidimensional scaling
- Added function "rasterZscore" for calculating cell-level modified z-scores (not memory safe)
- Added function "sobel" for calculating the Sobel-Feldman isotropic image gradient operator (intensity and direction)

- Bug fix in "download.daymet" function to account for change in HTML structure on the ORNL website
- Modified function "trig.trans" and changed to "sa.trans" for calculating slope, aspect transformations and interactions
- Added function "hli" for calculating the Heat Load Index
- Added function "sar" for calculating Surface Area Ratio
- Added function "curvature" for calculating Surface Curvature
- Added function "srr" for calculating Surface Relief Ratio
- Added function "dissection" for calculating the Dissection coefficient
- Added function "raster.gaussian.smooth" for applying a Gaussian smoothing kernel to a raster
- Added function "raster.transformation" for applying statistical transformations to a raster
- Added function "raster.invert" for inverting the values in a raster
- Added function "raster.moments" for calculating a variety of focal statistical moments on a raster
- Added function "trasp" for calculating the Solar-radiation Aspect Index

- Deprecated function "kde2D" and replaced with "sp.kde" which accepts weights
- Deprecated function "mwCorr" and replaced with "raster.modified.ttest"
- Changed the "point.in.poly" function so that it retains columns containing all NA's
- Added added optional poly.id argument to "point.in.poly" function so a specific column can be define from the SpatialPolygonsDataFrame object
- Added function "class.comparison" Compares two nominal rasters
- Added function "erase.points" Erases points inside or outside a polygon feature class
- Added function "focal.lmetrics" Landscape metrics using a focal window
- Added function "oli.aws" Download Landsat 8 - OLI from AWS.
- Added function "raster.downscale" Downscale raster to a higher resolution raster using robust regression
- Added function "raster.modified.ttest" Bivariate moving window correlation using Dutilleul's modified t-test
- Added function "sp.kde" A weighted or un-weighted kernel density estimate

- Fixed bug in "pseudo.absence" that was throwing an error when a raster class mask was defined
- Fixed bug in "land.metrics" that was producing incorrect class enumeration
- Feature Enhancement and bug fix in "point.in.poly" function so that polygon attributes are added to the points, also added support for sf classes
- Added function "raster.kendall" Calculates Kendall's tau trend with continuity correction for raster time-series
- Added function "optimized.sample.variance" Draws an optimal sample that minimizes or maximizes the sample variance
- Added function "fuzzySum" Calculates the fuzzy sum of a vector
- Added function "remove.holes" Removes all holes (null geometry) in polygon sp class objects
- Added function "winsorize" Removes extreme outliers using a winsorization transformation
- Added function "crossCorrelation" Calculates the partial spatial cross-correlation function

- Fixed bug in raster.modified.ttest due to changes in output from SpatialPack
- Modified "crossCorrelation" function to be consistent with Chen (2015) GSCI metric
- Modified function "raster.kendall" to return Z-value raster
- Added function "classBreaks" for finding class breaks in a distribution
- Added function "terrain.attributes" for calculating slope, aspect, planform and profile curvature(s) with optional methods.
- Added function "smooth.time.series" for imputing NA or smoothing time-series raster data.
- Added function "hybrid.kmeans" for clustering using hierarchical clustering to define cluster-centers in k-means
- Added function "morans.plot" for Autocorrelation plot (Anselin 1996), following Chen (2015), aka, Moran's-I plot (univariate or bivariate)
- Added function "optimized.sample.variance" for drawing an optimal sample that minimizes or maximizes the sample variance
- Added function "swvi" for Senescence weighted MSAVI or MTVI
- Added function "smooth.time.series" for smoothing pixel-level data in raster time-series and imputing missing (NA) values using LOESS regression
- Added function "poly.regression" for smoothing data in time-series and imputing missing (NA) values using polynomial regression
- Added function "sg.smooth" for smoothing time-series data using a Savitzky-Golay filter
- Added function "subsample.distance" - Minimum, and optional maximum, distance constrained sub-sampling