Removed the imager dependency, which appears to be deprecated. Instead, the CImg header file CImg.h is now bundled with ForestTools, which provides the watershed segmentation functionality used by mcws.
Updated compatibility with newest GLCMTextures package.
Since version 0.2.4, the glcm function has used Rcpp code that was inherited from the now-defunct radiomics package. My intention was for ForestTool to adapt GCLM metrics for segmented tree crowns, not provide the foundational code to compute those metrics. Now that the GLCMTextures library is carrying the GLCM computation torch, I have added it as a dependency for ForestTools.
The glcm function still works the same way, although it is now 1) a bit faster and 2) calculates fewer metrics. See table below for changes in metrics output by glcm.
Metric | v1.0.1 | v1.0.2 | Notes -- | -- | -- | -- glcm_mean | ✔ | ✔ glcm_variance | ✔ | ✔ glcm_autoCorrelation | ✔ | glcm_cProminence | ✔ | glcm_cShade | ✔ | glcm_cTendency | ✔ | glcm_contrast | ✔ | ✔ glcm_correlation | ✔ | ✔ glcm_differenceEntropy | ✔ | glcm_dissimilarity | ✔ | ✔ glcm_energy | ✔ | glcm_entropy | ✔ | ✔ glcm_homogeneity1 | ✔ | ✔ | Renamed to 'glcm_honogeneity' glcm_homogeneity2 | ✔ | glcm_IDMN | ✔ | glcm_IDN | ✔ | glcm_inverseVariance | ✔ | glcm_maxProb | ✔ | glcm_sumAverage | ✔ | ✔ | Renamed to 'glcm_SA' glcm_sumEntropy | ✔ | glcm_sumVariance | ✔ | glcm_ASM | | ✔
Add additional tests and fixed a few bugs.
Replaced raster, sf, and rgeos dependencies with terra and sf.
Performance improvements for glcm. Tests indicate it's now running 2.7x faster than before.
Removed glcm_img. If you would like to generate GLCM statistics for a single, unsegmented image, simply use
glcm without a segs argument.
Removed sp_summarise. Other packages offered better, more flexible options for summarizing tree-level information by geographical units. If you thought this tool was useful and would like me to restore it, please let me know.
Behaviour change for gclm: images are now discretized BEFORE segmentation. Note that this will impact the results returned by the function.
Added glcm_img to allow GLCM statistics to be computed for an entire unsegmented image.
The radiomics package is no longer maintained, so with permission from the author, Joel Carlson, I've integrated the code for computing GLCM statistics into this library
Added:
kootenayOrtho, an orthographic image of the area covered by kootenayCHM, kootenayTrees and kootenayCrownsNew function:
glcm, for computing textural metrics of a segmented canopy. Thanks to Jean-Romain Roussel for providing code for this function.BACKWARD INCOMPATIBILITY WARNING
Although this can cause backward compatibility issues, I felt it was necessary to rename the following functions:
TreetopFinder -> vwf (stands for Variable Window Filter)
SegmentCrowns -> mcws (stands for Marker-Controlled Watershed Segmentation)
SpatialStatistics -> sp_summarise
Reasons for the changes are:
In addition, I've made the following changes to vwf (formerly TreetopFinder):
maxWinDiameter argument to 99. Note that this value sets the maximum width in cells of the widest allowable window diameter. As explained in the documentation, this argument is to prevent the function from gobbling up too much memory, and can be disabled by setting to NULL.minWinNeib argument.TileManager package. Although I had put considerable effort into adding this feature initially, I've realized that A) no one was using it, B) it is preferable for the user to manage tiles him or herself instead of having them managed "under the hood" by the vwf function. Let me know if you thought this feature was useful and perhaps I can write a vignette suggesting preferable ways to manage a tiled CHM.Modified 'SegmentCrowns' function so that it can produce tree crowns in polygon format. The function will also calculate crown area, and filter out crowns that are not associated with a treetop point location.
Changed name of 'TreeTopSummary' function to 'SpatialStatistics'. This reflects its new functionality, which allows crown maps to be inputted as well as treetop locations.