Package 'itcSegment'

Title: Individual Tree Crowns Segmentation
Description: Three methods for Individual Tree Crowns (ITCs) delineation on remote sensing data: one is based on LiDAR data in x,y,z format and one on imagery data in raster format.
Authors: Michele Dalponte
Maintainer: Michele Dalponte <[email protected]>
License: GPL
Version: 1.0
Built: 2024-11-16 03:33:21 UTC
Source: https://github.com/cran/itcSegment

Help Index


Aboveground biomass prediction using height and crown diameter

Description

Prediction of aboveground biomass (AGB) using height and crown diameter and the equations of Jucker et al. (2017).

Usage

agb(H = NULL, CA = NULL, species = 1)

Arguments

H

Tree height in meters.

CA

Crown diameter in meters.

species

Integer number indicating the species group:

1 = gymnosperm

2 = angiosperm

Value

The AGB value in kilograms.

Author(s)

Michele Dalponte

References

T. Jucker, J. Caspersen, J. Chave, C. Antin, N. Barbier, F. Bongers, M. Dalponte, K. Y. van Ewijk, D. I. Forrester, M. Haeni, S. I. Higgins, R. J. Holdaway, Y. Iida, C. Lorimer, P. L. Marshall, S. Momo, G. R. Moncrieff, P. Ploton, L. Poorter, K. A. Rahman, M. Schlund, B. Sonke, F. J. Sterck, A. T. Trugman, V. A. Usoltsev, M. C. Vanderwel, P. Waldner, B. M. M. Wedeux, C. Wirth, H. Woell, M. Woods, W. Xiang, N. E. Zimmermann, and D. A. Coomes, "Allometric equations for integrating remote sensing imagery into forest monitoring programs," Global Change Biology, 23 (1), pp. 177-190, January 2017.

Examples

## Not run: 
data(lasData)

## function takes a while to run

#Extraction of the ITCs
se<-itcLiDAR(lasData$X,lasData$Y,lasData$Z,epsg=32632)

summary(se)

#Computation of the crown diameter from the crown area
se$CD_m<-2*sqrt(se$CA_m2/pi)

#AGB prediction
se$agb<-NA
se$agb<-agb(se$Height_m,se$CD_m,species=1)

summary(se)


## End(Not run)

Diameter at breast height prediction using height and crown diameter

Description

Prediction of diameter at breast height (DBH) using height and crown diameter and the equations of Jucker et al. (2017).

Usage

dbh(H = NULL, CA = NULL, biome = 0)

Arguments

H

Tree height in meters.

CA

Crown diameter in meters.

biome

Integer number indicating the type of biome:

0 = 'Global'

1 = 'Afrotropic-Tropical forests-Angiosperm'

2 = 'Afrotropic-Woodlands and savannas-Angiosperm'

3 = 'Australasia-Temperate mixed forests-Angiosperm'

4 = 'Australasia-Temperate mixed forests-Gymnosperm'

5 = 'Australasia-Woodlands and savannas-Angiosperm'

6 = 'Indo-Malaya-Tropical forests-Angiosperm'

7 = 'Nearctic-Boreal forests-Angiosperm'

8 = 'Nearctic-Boreal forests-Gymnosperm'

9 = 'Nearctic-Temperate coniferous forests-Angiosperm'

10 = 'Nearctic-Temperate coniferous forests-Gymnosperm'

11 = 'Nearctic-Temperate mixed forests-Angiosperm'

12 = 'Nearctic-Temperate mixed forests-Gymnosperm'

13 = 'Nearctic-Woodlands and savannas-Angiosperm'

14 = 'Nearctic-Woodlands and savannas-Gymnosperm'

15 = 'Neotropic-Tropical forests-Angiosperm'

16 = 'Palearctic-Boreal forests-Angiosperm'

17 = 'Palearctic-Boreal forests-Gymnosperm'

18 = 'Palearctic-Temperate coniferous forests-Angiosperm'

19 = 'Palearctic-Temperate coniferous forests-Gymnosperm'

20 = 'Palearctic-Temperate mixed forests-Angiosperm'

21 = 'Palearctic-Temperate mixed forests-Gymnosperm'

22 = 'Palearctic-Tropical forests-Angiosperm'

23 = 'Palearctic-Woodlands and savannas-Angiosperm'

24 = 'Palearctic-Woodlands and savannas-Gymnosperm'

Value

The DBH value in centimeters.

Author(s)

Michele Dalponte

References

T. Jucker, J. Caspersen, J. Chave, C. Antin, N. Barbier, F. Bongers, M. Dalponte, K. Y. van Ewijk, D. I. Forrester, M. Haeni, S. I. Higgins, R. J. Holdaway, Y. Iida, C. Lorimer, P. L. Marshall, S. Momo, G. R. Moncrieff, P. Ploton, L. Poorter, K. A. Rahman, M. Schlund, B. Sonke, F. J. Sterck, A. T. Trugman, V. A. Usoltsev, M. C. Vanderwel, P. Waldner, B. M. M. Wedeux, C. Wirth, H. Woell, M. Woods, W. Xiang, N. E. Zimmermann, and D. A. Coomes, "Allometric equations for integrating remote sensing imagery into forest monitoring programs," Global Change Biology, 23 (1), pp. 177-190, January 2017.

Examples

## Not run: 
data(lasData)

## function takes a while to run

#Extraction of the ITCs
se<-itcLiDAR(lasData$X,lasData$Y,lasData$Z,epsg=32632)

summary(se)

#Computation of the crown diameter from the crown area
se$CD_m<-2*sqrt(se$CA_m2/pi)

#DBH prediction
se$dbh<-NA
se$dbh<-dbh(se$Height_m,se$CD_m,biome=0)

summary(se)


## End(Not run)

Individual Tree Crowns segmentation with imagery data

Description

The ITC delineation approach finds local maxima within an imagery, designates these as tree tops, then uses a decision tree method to grow individual crowns around the local maxima.

Usage

itcIMG(
  imagery = NULL,
  epsg = NULL,
  searchWinSize = 3,
  TRESHSeed = 0.45,
  TRESHCrown = 0.55,
  DIST = 10,
  th = 0,
  ischm = FALSE
)

Arguments

imagery

An object of class raster on which to perform the segmentation. The image should be projected.

epsg

The EPSG code of the reference system of the image.

searchWinSize

Size (in pixels) of the moving window used to the detect the local maxima. It should be an odd number larger than 3.

TRESHSeed

Growing threshold 1. It should be between 0 and 1.

TRESHCrown

Growing threshold 2. It should be between 0 and 1.

DIST

Maximum value of the crown diameter of a detected tree (in meters).

th

Digital number value below which a pixel cannot be a local maxima.

ischm

TRUE if the imagery is a Canopy Height Model (CHM). Default: FALSE.

Value

An object of the class SpatVector containing the delineated ITCs. The informaion for each ITC contained in the data frame are the X and Y coordinates position of the tree, the tree height in meters (Height_m; only if ischm=TRUE) and its crown area in square meters (CA_m2).

Author(s)

Michele Dalponte

References

M. Dalponte, F. Reyes, K. Kandare, and D. Gianelle, "Delineation of Individual Tree Crowns from ALS and Hyperspectral data: a comparison among four methods," European Journal of Remote Sensing, Vol. 48, pp. 365-382, 2015.

Examples

## Not run: 
library(terra)
library(itcSegment)

imgData<-rast("./inst/extdata/imgData.tif")

se<-itcIMG(imgData,epsg=32632)
summary(se)
plot(se,axes=T)

## to save the data use rgdal function called writeOGR. For more help see rgdal package.


## End(Not run)

Individual Tree Crowns segmentation with LiDAR data

Description

The ITC delineation approach finds local maxima within a rasterized canopy height model (CHM), designates these as tree tops, then uses a decision tree method to grow individual crowns around the local maxima. The approach goes through the following steps: (1) a low-pass filter is applied to the rasterized CHM to smooth the surface and reduce the number of local maxima; (2) local maxima are located using a moving window with size that adapts inside a user defined range (minimum and maximum size) according the pixel height; a pixel of the CHM is labelled as local maxima if its z value is greater than all other z values in the window, and with z greater than some minimum height above-ground; (3) each local maximum is labelled as an 'initial region' around which a tree crown can grow; the heights of the four neighboring pixels are extracted from the CHM and these pixels are added to the region if their vertical distance from the local maximum is less than some user-defined percentage of the local-maximum height, and less than some user-defined maximum difference; this procedure is repeated for all the neighbors of cells now included in the region, and so on iteratively until no further pixels are added to the region; (4) from each region that had been identified the first-return ALS points are extracted (having first removed low elevation points), (5) a 2D convex hull is applied to these points, and the resulting polygons becomes the final ITCs.

Usage

itcLiDAR(
  X = NULL,
  Y = NULL,
  Z = NULL,
  epsg = NULL,
  resolution = 0.5,
  MinSearchFilSize = 3,
  MaxSearchFilSize = 7,
  TRESHSeed = 0.55,
  TRESHCrown = 0.6,
  minDIST = 5,
  maxDIST = 40,
  HeightThreshold = 2,
  cw = 1
)

Arguments

X

A column vector of x coordinates.

Y

A column vector of y coordinates (it must have the same length as X).

Z

A column vector of z coordinates (it must have the same length as X). Z must be normalized respect to the ground.

epsg

The EPSG code of the reference system of the X,Y coordinates.

resolution

The resolution of the raster on which the first segmentation is carried out.

MinSearchFilSize

Minimum size (in pixels) of the moving window used to the detect the local maxima. It should be an odd number larger than 3.

MaxSearchFilSize

Maximum size (in pixels) of the moving window used to the detect the local maxima. It should be bigger or equal to MinSearchFilSize, and it should be an odd number larger than 3.

TRESHSeed

Growing threshold 1. It should be between 0 and 1.

TRESHCrown

Growing threshold 2. It should be between 0 and 1.

minDIST

Minimum value of the crown diameter of a detected tree (in meters).

maxDIST

Maximum value of the crown diameter of a detected tree (in meters). It should be bigger or equal to minDIST.

HeightThreshold

Minimum height of the trees.

cw

Weighting exponent used to increase the contrast in the CHM used to detect the local maxima (default cw=1).

Value

An object of the class SpatVector containing the delineated ITCs. The informaion for each ITC contained in the data frame are the X and Y coordinates position of the tree, the tree height in meters (Height_m) and its crown area in square meters (CA_m2).

Author(s)

Michele Dalponte

References

M. Dalponte, and D. A. Coomes, "Tree-centric mapping of forest carbon density from airborne laser scanning and hyperspectral data," Methods in Ecology and Evolution, Vol. 7, No. 10, pp. 1236-1245, 2016.

Examples

## Not run: 
data(lasData)

## function takes a while to run
se<-itcLiDAR(lasData$X,lasData$Y,lasData$Z,epsg=32632)
summary(se)
plot(se,axes=T)

## If we want to seperate the height of the trees by grayscales:

plot(se,col=gray((max(se$Height_m)-se$Height_m)/(max(se$Height_m)-min(se$Height_m))),axes=T)

## to save the data use rgdal function called writeOGR. For more help see rgdal package.


## End(Not run)

Individual Tree Crowns segmentation with LiDAR data and crown diameter-height relationship

Description

The ITC delineation approach finds local maxima within a rasterized canopy height model (CHM), designates these as tree tops, then uses a decision tree method to grow individual crowns around the local maxima. The approach goes through the following steps: (1) a low-pass filter is applied to the rasterized CHM to smooth the surface and reduce the number of local maxima; (2) local maxima are located using a moving window with size that adapts inside a user defined range (minimum and maximum size) according the pixel height; a pixel of the CHM is labelled as local maxima if its z value is greater than all other z values in the window, and with z greater than some minimum height above-ground; (3) each local maximum is labelled as an 'initial region' around which a tree crown can grow; the heights of the four neighboring pixels are extracted from the CHM and these pixels are added to the region if their vertical distance from the local maximum is less than some user-defined percentage of the local-maximum height, and less than some user-defined maximum difference; this procedure is repeated for all the neighbors of cells now included in the region, and so on iteratively until no further pixels are added to the region; (4) from each region that had been identified the first-return ALS points are extracted (having first removed low elevation points), (5) a 2D convex hull is applied to these points, and the resulting polygons becomes the final ITCs.

Usage

itcLiDARallo(
  X = NULL,
  Y = NULL,
  Z = NULL,
  epsg = NULL,
  resolution = 0.5,
  TRESHSeed = 0.55,
  TRESHCrown = 0.6,
  HeightThreshold = 2,
  lut = NULL,
  cw = 1
)

Arguments

X

A column vector of x coordinates.

Y

A column vector of y coordinates (it must have the same length as X).

Z

A column vector of z coordinates (it must have the same length as X). Z must be normalized respect to the ground.

epsg

The EPSG code of the reference system of the X,Y coordinates.

resolution

The resolution of the raster on which the first segmentation is carried out.

TRESHSeed

Growing threshold 1. It should be between 0 and 1.

TRESHCrown

Growing threshold 2. It should be between 0 and 1.

HeightThreshold

Minimum height of the trees.

lut

Look up table. It should be made of two colums. The first column indicate the height in meters and the second the crown diameter in meters.

cw

Weighting exponent used to increase the contrast in the CHM used to detect the local maxima (default cw=1).

Value

An object of the class SpatVector containing the delineated ITCs. The informaion for each ITC contained in the data frame are the X and Y coordinates position of the tree, the tree height in meters (Height_m) and its crown area in square meters (CA_m2).

Author(s)

Michele Dalponte

References

D. A. Coomes, M. Dalponte, T. Jucker, G. P. Asner, L. F. Banin, D. F.R.P. Burslem, S. L. Lewis, R. Nilus, O. L. Phillips, M.-H. Phua, L. Qie, "Area-based vs tree-centric approaches to mapping forest carbon in Southeast Asian forests from airborne laser scanning data," Remote Sensing of Environment, Vol. 194, Issue 1, pp. 77-88, June 2017.

Examples

## Not run: 
data(lasData)

##Creation of the look-up-table

lut<-matrix(6,2,data=NA)
lut<-data.frame(lut)
names(lut)<-c("H","CD")

lut$H<-c(2,10,15,20,25,30)
lut$CD<-c(0.5,1,2,3,4,5)

## function takes a while to run
se<-itcLiDARallo(lasData$X,lasData$Y,lasData$Z,epsg=32632,lut=lut)
summary(se)
plot(se,axes=T)

## If we want to seperate the height of the trees by grayscales:

plot(se,col=gray((max(se$Height_m)-se$Height_m)/(max(se$Height_m)-min(se$Height_m))),axes=T)

## to save the data use rgdal function called writeOGR. For more help see rgdal package.


## End(Not run)

LiDAR data point cloud acquired over a forest area

Description

A dataset containing the X Y Z coordinates of LiDAR points acquired over a forest area. The EPSG code of the coordinates is 32632.

Usage

data(lasData)

Format

A data frame with 16907 rows and 3 variables

Details

  • X. X coordinate in UTM WGS84 32 N (EPSG code 32632).

  • Y. Y coordinate in UTM WGS84 32 N (EPSG code 32632).

  • Z. Z coordinate. The Z coordinate is normalized respect to the ground.