R/fa_crownseg.R
chmseg_GWS.RdTree segmentation based on a CHM, basically returns a vector data set with the tree crown geometries and a bunch of corresponding indices. After the segementation itself, the results are hole filled and optionally, it can be filtered by a majority filter.
chmseg_GWS(
treepos = NULL,
chm = NULL,
minTreeAlt = 2,
minTreeAltParam = "chm_Q20",
minCrownArea = 3,
maxCrownArea = 100,
leafsize = 256,
normalize = 0,
neighbour = 1,
method = 0,
thVarFeature = 1,
thVarSpatial = 1,
thSimilarity = 0.002,
segmentationBands = c("chm"),
majorityRadius = 3,
parallel = 1,
giLinks = NULL
)raster* object
raster*. Canopy height model in raster format. Should be the same that was used to create the input for treepos.
numeric. The minimum height value for a chm pixel is to be considered as part of a crown segment.
All chm pixels beneath this value will be masked out. Note that this value should be lower than the minimum
height of treepos.
character. code for the percentile that is used as tree height treshold. It is build using the key letters chmQ and adding the percentile i.e. "10". Default is chmQ20
numeric. A single value of the minimum projected tree crown area allowed. Default 3 sqm
numeric. A single value of the maximum projected tree crown area allowed. Default 100 sqm.
integer. bin size of grey value sampling range from 1 to 256 see also: SAGA GIS Help
integer. logical switch if data will be normalized (1) see also: SAGA GIS Help
integer. von Neumanns' neighborhood (0) or Moore's (1) see also: SAGA GIS Help
integer. growing algorithm for feature space and position (0) or feature space only (1), see also: SAGA GIS Help
numeric. Variance in Position Space see also: SAGA GIS Help
numeric. Variance in Feature Space see also: SAGA GIS Help
mumeric. Similarity Threshold see also: SAGA GIS Help
character. a list of raster data that is used for the segmentation. The canopy height model c("chm") is mandantory. see also: SAGA GIS Help
numeric. kernel size for the majority filter out spurious pixel
running parallel or not default = 1
list. of GI tools cli paths
sp* object
if (FALSE) {
##- required packages
require(uavRst)
require(link2GI)
##- linkages
##- create and check the links to the GI software
giLinks<-uavRst::linkGI(linkItems = c("saga","gdal"))
if (giLinks$saga$exist ) {
##- project folder
projRootDir<-tempdir()
##- create subfolders please mind that the pathes are exported as global variables
paths<-link2GI::initProj(projRootDir = projRootDir,
projFolders = c("data/","data/ref/","output/","run/","las/"),
global = TRUE,
path_prefix = "path_")
##- overide trailing backslash issue
path_run<-ifelse(Sys.info()["sysname"]=="Windows", sub("/$", "",path_run),path_run)
setwd(path_run)
unlink(paste0(path_run,"*"), force = TRUE)
##- get the data
data(chm_seg)
data(trp_seg)
##- tree segmentation
crowns_GWS <- chmseg_GWS( treepos = trp_seg[[1]],
chm = chm_seg[[1]],
minTreeAlt = 10,
neighbour = 0,
thVarFeature = 1.,
thVarSpatial = 1.,
thSimilarity = 0.003,
giLinks = giLinks )[[2]]
##- visualize it
raster::plot(crowns_GWS)
}
}