Commit 5a79202d authored by Monnet Jean-Matthieu's avatar Monnet Jean-Matthieu
Browse files

updated function names, removed buffer points

No related merge requests found
Showing with 11 additions and 6 deletions
+11 -6
...@@ -81,20 +81,25 @@ metrics_terrain <- metrics_terrain[plots$plot_id, ] ...@@ -81,20 +81,25 @@ metrics_terrain <- metrics_terrain[plots$plot_id, ]
# ALS metrics computation # ALS metrics computation
Two types of metrics can be computed. Two types of vegetation metrics can be computed.
* Point cloud metrics are directly computed from the point cloud or from the derived surface model on the whole plot extent. These are the metrics generally used in the area-based approach. * Point cloud metrics are directly computed from the point cloud or from the derived surface model on the whole plot extent. These are the metrics generally used in the area-based approach.
+ Tree metrics are computed from the characteristics of trees detected in the point cloud (or in the derived surface model). They are more CPU-intensive to compute and require ALS data with higher density, but in some cases they allow a slight improvement in models prediction accuracy. + Tree metrics are computed from the characteristics of trees detected in the point cloud (or in the derived surface model). They are more CPU-intensive to compute and require ALS data with higher density, but in some cases they allow a slight improvement in models prediction accuracy.
## Point cloud metrics ## Point cloud metrics
Point cloud metrics are computed with the function `lidaRtRee::clouds_metrics`, which applies the `lidR::cloud_metrics` to all point clouds in the list. Default computed metrics are those proposed by the function [`lidR::stdmetrics`](https://github.com/Jean-Romain/lidR/wiki/stdmetrics). Additional metrics are available with the function `lidaRtRee::ABAmodelMetrics`. Point cloud metrics are computed with the function `lidaRtRee::clouds_metrics`, which applies the `lidR::cloud_metrics` to all point clouds in a list. Default computed metrics are those proposed by the function [`lidR::stdmetrics`](https://github.com/Jean-Romain/lidR/wiki/stdmetrics). Additional metrics are available with the function `lidaRtRee::aba_metrics`. The buffer points, which are located outside of the plot extent inventoried on the field, should be removed before computing those metrics
```{r computeMetrics, include=TRUE} ```{r computeMetrics, include=TRUE}
# define function for later use # define function for later use
aba_point_metrics_fun <- ~ lidaRtRee::aba_metrics(Z, Intensity, ReturnNumber, Classification, 2) aba_point_metrics_fun <- ~ lidaRtRee::aba_metrics(Z, Intensity, ReturnNumber, Classification, 2)
# create list of point clouds without buffer
llas_height_plot_extent <-
lapply(llas_height, function(x) {
lidR::filter_poi(x, buffer == FALSE)
})
# apply function on each point cloud in list # apply function on each point cloud in list
metrics_points <- lidaRtRee::clouds_metrics(llas_height, aba_point_metrics_fun) metrics_points <- lidaRtRee::clouds_metrics(llas_height_plot_extent, aba_point_metrics_fun)
round(head(metrics_points[, 1:8], n = 3), 2) round(head(metrics_points[, 1:8], n = 3), 2)
``` ```
...@@ -136,7 +141,7 @@ metrics <- cbind( ...@@ -136,7 +141,7 @@ metrics <- cbind(
## Calibration for a single variable ## Calibration for a single variable
Once a dependent variable (forest parameter of interest) has been chosen, the function `lidaRtRee::ABAmodel` is used to select the linear regression model that yields the highest adjusted-R^2^ with a defined number of independent variables, while checking linear model assumptions. A Box-Cox transformation of the dependent variable can be applied to normalize its distribution, or a log transformation of all variables (parameter `transform`). Model details and cross-validation statistics are available from the returned object. Once a dependent variable (forest parameter of interest) has been chosen, the function `lidaRtRee::aba_build_model` is used to select the linear regression model that yields the highest adjusted-R^2^ with a defined number of independent variables (metrics), while checking linear model assumptions. A Box-Cox transformation of the dependent variable can be applied to normalize its distribution, or a log transformation of all variables (parameter `transform`). Model details and cross-validation statistics are available from the returned object.
```{r modelCalibration, include=TRUE, message = FALSE, warning = FALSE} ```{r modelCalibration, include=TRUE, message = FALSE, warning = FALSE}
variable <- "G_m2_ha" variable <- "G_m2_ha"
...@@ -243,7 +248,7 @@ When calibrating a statistical relationship between forest stand parameters, whi ...@@ -243,7 +248,7 @@ When calibrating a statistical relationship between forest stand parameters, whi
Stratum-specific models are computed and stored in a list during a `for` loop. The function `lidaRtRee::aba_combine_strata` then combines the list of models corresponding to each stratum to compute aggregated statistics for all plots, making it easier to compare stratified with non-stratified models. Stratum-specific models are computed and stored in a list during a `for` loop. The function `lidaRtRee::aba_combine_strata` then combines the list of models corresponding to each stratum to compute aggregated statistics for all plots, making it easier to compare stratified with non-stratified models.
In this example, the model for "private" yields a large error on the plot "Verc-C5-1", which considerably lowers the accuracy of the stratified approach. In this example, the model for "private" ownership yields a large error on the plot "Verc-C5-1", which considerably lowers the accuracy of the stratified approach.
```{r stratifiedmodelCalibration, include=TRUE, warning = FALSE} ```{r stratifiedmodelCalibration, include=TRUE, warning = FALSE}
# stratification variable # stratification variable
......
...@@ -440,7 +440,7 @@ raster::plot(prediction_map_public, main = "Public model", zlim = limits, xaxt = ...@@ -440,7 +440,7 @@ raster::plot(prediction_map_public, main = "Public model", zlim = limits, xaxt =
### Forest mask and thresholds ### Forest mask and thresholds
To avoid applying models in non-forest areas and to remove the extremes values that may have been predicted due to outliers in the ALS and metrics values, the function `lidaRtRee::clean_raster` can be applied: To avoid applying models in non-forest areas and to remove the extremes values that may have been predicted due to outliers in the ALS point cloud and metrics values, the function `lidaRtRee::clean_raster` can be applied:
* it applies a lower and upper threshold to map values, * it applies a lower and upper threshold to map values,
* it sets to 0 the NA values in the map, * it sets to 0 the NA values in the map,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment