- Various
- Adding
landscape_as_list()
method forPackedSpatRaster
- Adding
- Bugfixes
- Fixed bug in
get_centroids()
related to the patch id
- Fixed bug in
- Various
- Improve documentation
- Improve labels of
show_patches()
- Bugfixes
- Bug in
spatialze_lsm()
withdirections
argument
- Bug in
- Improvements
- Simplify roxygen2 docs
- Bugfixes
- Bugfix in calculate of clumpy if NA values are present
- Bugfix in construct_buffer that CRS was lost
- Improvements
- Many performance improvements. Most visible are in
calculate_lsm
(all metrics: more than 5 times faster with 70% less memory allocation foraugusta_nlcd
; larger increases were found for smaller data) andwindow_lsm
(a single metric: more than 6 times faster foraugusta_nlcd
; larger increases were found for smaller data) - Some performance improvements are related to the new "extras" mechanism, in which several objects
are precalculated in
calculate_lsm
- Creates an internal
extras_df
object that lists which extras are needed by each metric - Replaces the use of
tibble::tibble()
withtibble::new_tibble(list())
in most functions. This change is partially responsible for improvements of thewindow_lsm
speed - Replaces
raster_to_points
withget_points
in several places. Theget_points
function is based on the column and row numbers multiplied by the resolution, not actual coordinates. - Replaces
table
with (faster)tabulate
inlsm_p_core
- Many performance improvements. Most visible are in
- New functions
- Adds a few internal helper functions and documents them, including
prepare_extras
,get_area_patches
,get_class_patches
,get_complexity
,get_enn_patch
,get_points
, andget_perimeter_patch
- Adds a few internal helper functions and documents them, including
- Bugfixes
- Fixes
window_lsm
behaviour for situations with NAs values and non-square windows
- Fixes
- Various
- Fixes several typos and improves documentation in many places
- Uses object references in most rcpp functions
- Improvements
terra
andsf
instead ofraster
andsp
as underlying frameworks- Adjust all
show_*
functions to avoidggplot2
warning - Update color palette of
show_correlation
- New functions
points_as_mat()
helper function
- Bugfixes
- There was a bug introduced previously in the calculation of SHEI
extract_lsm
returned an no-needed warning message- The shape index now follows exactly the definition of the FRAGSTATS manual
- Minor bug in clumpy index fixed
- Various
- Updated FRAGSTATS reference (thanks to Oto Kaláb @kalab-oto)
- Update FRAGSTATS tests
- Bugfixes
- SHEI now equals 0 when only one patch is present
- Various
- Removes
rgeos
dependency
- Removes
- Improvements
get_patches
returns a unique patch id for all classes- Adds adds the ability to use a circular window in
window_lsm()
- Bugfixes
- SHEI now equals to 0 when only one patch present
- Various
- Fixes typo in Maintainer name
- Improvements
- Improved memory performance related to perimeter and edge calculations
- Improvements
- Improved terra objects (SpatRaster) support for almost all functions.
- Bugfix in
get_boundaries()
for matrix input andreturn_raster = TRUE
- Better naming of list outputs
- Bugfixes
- Adding
rel_mut_inf
tolist_lsm()
- Fix changes due to new
ggplot2
version
- Adding
- Bugfixes
- Bug in
lsm_l_ai
if class with only one cell exists
- Bug in
- Various
- Renamed master to main branch
- Improvements
- Use GitHub actions
- Bugfixes
- Bug in
lsm_c_lsi
,lsm_c_nlsi
,lsm_l_lsi
not using cell surfaces
- Bug in
- Improvements
- Improved internal understanding of input classes
- Adds terra objects (SpatRaster) support
- New functions
lsm_l_relmutinf
to calculate relative mutual information
- Improvements
- Improved RAM performance if
to_disk = TRUE
forspatialize_lsm
andmatrix_to_raster
- Improved RAM performance if
- Bugfixes
- Fix of patch id in
get_circumscribingcircle()
- Fix of patch id in
- Improvements
lsm_p_gyrate
has an argument to force the cell centroid to be within patchget_nearestneighbour()
can now return ID of neighbouring patchget_boundaries()
allows now to specify edge depthget_boundaries()
can return the patch id for edge cells
- New functions
get_centroid()
returns the coordinates of each patch centroid
- Improvements
- Set labels = FALSE as default for all plotting functions (messy for larger raster)
- Add argument to
sample_lsm()
that adds NA if class is not present in sample plot
- Improvements
- Improved algorithm to calculate circumscribing circle. This refers to both speed and accuracy.
- The circumscribing circle is now also calculated for patches with only one cell
- Bugfixes
- Bugfix for all functions that produce warnings
- Bugfixes
- Bug in total edge calculation
- Improvements
- Adds a support for sf polygons in sample_lsm
- Bugfixes
- Bug in the connected-component labelling algorithm for non-rectangular landscapes
- Improvements
- Improved connected-component labelling algorithm. Note: The algorithm labels the patches in a different order and therefore may use different patch IDs compared to previous versions.
- Bugfixes
- Make sure all CRAN checks run
- Bugfixes
- Return NA if all cells are NA
- Improvements
- Cleaner handling of warnings
- Bugfixes
- Remove NAs on patch level for shape index
- Bugfixes
- Bug in
lsm_p_circle()
when whole landscape contains only one patch - Bug in
extract_lsm()
that directions argument was not passed on
- Bug in
- New functions
unpad_raster
to remove padding around raster
- Improvements
- New argument in
get_boundaries
to consider landscape boundary
- New argument in
- Bugfixes
- Allow sf points for sampling metrics
- Make sure x-y coordinates are used in
sample_lsm()
- Size argument is not needed for polygons in
sample_lsm()
- Make sure
sample_lsm()
can use SpatialPolygonsDataFrame
- Improvements
- Update citation
- New functions
calculate_correlation()
returns a tibble with all correlations between metricsscale_sample()
allows to sample landscape metrics in buffer with increasing sizescale_window()
allows calculate selected metrics in moving windows over the provided landscape.
- Improvements
show_correlation()
can take result fromcalculate_correlation()
sample_lsm()
returns a warning ifpercentage_inside
< 90%sample_lsm()
andextract_lsm()
can now be used with sample_ids (rather than just 1...n)
- Bugfixes
- Bugfix in
lsm_c_ai()
if only one class and NA values were present - Bugfix in
show_correlation()
that first col was lost - Bugfix in
sample_lsm()
andextract_lsm()
to forward arguments tocalculate_lsm()
- size argument in
sample_lsm()
is now comparable between squares and circles - Bugfix in
window_lsm()
that some arguments were not passed on (resolution and points) - Bugfix in
extract_lsm()
andwindow_lsm()
that allowed metric subset was wrong
- Bugfix in
- Improvements
- The values can be added as geom_text in
show_correlation()
list_lsm()
allows to return all BUT the selected metricssample_lsm()
can now use SpatialPolygons to sample metricssample_lsm()
can now handle SpatialLines to sample metricssample_lsm()
automatically detects provided data typeextract_lsm()
can now handle SpatialLines to extract metrics- Updates the way of calculating
lsm_l_ent()
and thuslsm_l_condent()
andlsm_l_mutinf()
. calculate_lsm()
/extract_lsm()
/sample_lsm()
/spatialize_lsm()
/window_lsm()
can print progress- replaced
cat()
withmessage()
calculate_lsm()
returns an error message if selected metrics do not existconstruct_buffer()
can now return a matrix with coords instead of polygonscalculate_lsm()
checks the input data before calculating metrics
- The values can be added as geom_text in
- Renaming
get_lsm()
is now calledspatialize_lsm()
- New functions
- New function
moving_window()
to calculate metrics within a moving window - New function
get_lsm()
to raster in which each cell has patch metric value
- New function
- Bugfixes
- Bugfix in
check_landscape()
if NA values were present - Bugfix in
pad_raster()
that pad_raster_cells > 1 did not work - Bugfix in
calculate_lsm()
calculating class area where resolution was lost
- Bugfix in
- Improvements
- Removing all functions from
dplyr
- Better structure for helping functions of
check_landscape()
- Better handling of RasterStacks for
check_landscape()
pad_raster()
is now typestable and always returns a listpad_raster()
can now return also a RasterLayer (and not just a matrix as)
- Removing all functions from
- Bugfixes
- fixing bug in
sample_lsm()
that occured when metrics where selected usingwhat
argument - Bugfix in
lsm_p_core()
if only one patch is present - Bugfix in
lsm_p_circle()
if only one cell is present in class - Bugfix in
lsm_p_hyrate()
if only one cell is present in class - Bugfix in
get_adjacencies()
that checks ifneighbourhood
was specified correctly did not work properly
- fixing bug in
- Improvements
sample_lsm()
now returns a tibble including an extra column ifreturn_raster = TRUE
(and not a nested tibble as before)- Better explanation on how to specify metrics for
list_lsm()
,calculate_lsm()
and ``sample_lsm()`
- Renaming
- Renamed argument
return_plots
toreturn_raster
insample_lsm()
- Renamed argument
- New functions
- New function
check_landscape
to make sure your landscapes are feasible for landscapemetrics - New function
raster_to_points()
to get also NA cells (not possible withraster::rasterToPoints
) - New function
get_boundaries()
to get only boundary cells - New function
get_unique_values()
that shows all uniques labels in a class - New function
list_lsm()
function to print available metrics - New function
show_lsm()
function to vizualize patch level metrics
- New function
- Bugfixes
- Bugfix in
lsm_l_rpr
: Typo in internal function, used landscapemetrics::landscape instead of user input - Bugfix in all
show_()
* functions that na.value color is identical
- Bugfix in
- Improvements
- Most
get_
-functions can now take matrix as input and also return a matrix calculate_lsm()
now useslist_lsm()
. This allows more options to specify metrics to calculate- Updated structure of
lsm_abbreviations_names
show_()
-functions don't throw warnings- "global" facet for all
show_()
functions extract_lsm()
now useslist_lsm()
. This allows more options to specify metrics to calculatercpp_get_coocurrence_matrix()
can now handle large rasters and is fasterlsm_p_circle()
andget_circumscribingcircle()
now consideres different x- & y-resolutions- Generally, a better use of Rcpp to decrease computational time and memory demand
- Most
- Renaming
- Renamed "new metric" group to "complexity metric" group
what
arguments of allshow_()
-functions now are namedclass
for consistency (so allwhat
arguments deal with metrics)what
arguments ofget_patches()
is now namedclass
for consistency (so allwhat
arguments deal with metrics)
- Unified naming scheme for all auxiliary functions:
calculate_metrics
is nowcalculate_lsm
- Implemented
show_cores
, a function to plot the core area of patches show_patches
now also shows labelled class facets (optionwhat
)- All plot functions have the same theme
- Implemented
sample_lsm
, a function to sample metrics around buffered points - Implemented
extract_lsm
, a function to extract landscape metrics for spatial coordinates - Removed all functions from the
purrr
package and replaced them bylapply
- Removed all pipes
calculate_lsm
has the optionprogress
consider_boundary
is available for all core metrics- The
edge_depth
can be specified for all core metrics
- Replaced isFALSE() with !isTRUE() to be compatibile to R (> 3.1)
- Bugfix: lsm_p_core() and lsm_p_ncore() now takes landscape boundary into account
- Added namespace prefix std::fmod() in get_adjacency.cpp
- First submission to CRAN