Leaf-area-Index estimation, Gap fraction estimation tool
Hello you all,
I’m currently working on my thesis about measuring the Leaf-Area-Index (LAI) in forest stands through terrestrial laser scanning.
My main purpose is to receive values about how much of the forest floor is covered by vegetation. So the Leaf-Area-Index is more a Plant-Area-Index (wood material + foliage material). In the recent years several studies have been published which use different approaches to simulate hemispherical photographs (see picture 1). Methods are e.g using intensity images, voxel-based approaches, substracting the leaf-off Lidar-Points from the leaf-on Lidar-Points and several others.
Computree (v5.0) offers the function “Gap fraction estimation” (under Voxel > Statistiques). To use that function I need as an Input a LVOX grid and a Point Cloud. But when I use the functions “LVOX file loader” or “Compute LVOX Grid” I just get empty Outputs like good shots or theoretical shots. My question is what does the “Gap fraction estimation” tool generate and how can I create it? I think it could be helpful to estimate the LAI because it is normally computed thorugh the ratio of vegetation areas and sky areas (gaps).
Another approach is to use the function “Euclidian Clustering Denoising” which seperates less dense points like leaves and needles from the stems. Is it similar to the “Curvature Filter” which is described in Jan Hackenbergs PhD (“SimpleTreean eﬃcient Open Source tool to estimateQuantitative Structural Tree Modelsand its Statistical Relevance”) and could it be used to accurately separate foliar material?
Also does anyone know how I could transform an orthographic view of the point cloud to a perspective view in order to simulate hemispherical photographs (similar to the study: https://www.researchgate.net/publication/336115385_An_intensity_image-based_method_to_estimate_gap_fraction_canopy_openness_and_effective_leaf_area_index_from_phase-shift_terrestrial_laser_scanning) (see picture).
If anyone has experiences in studying the Leaf area index through Lidar-Data I would be very very thankful for any tips and advices.
Stay healthy and best regards!
I cant help you with the LVOX questions, but this might be a good start. Richard Fourniers laboratory did some work already on Area-Leave-Index and I think that Lab is also behind LVOX.
About the SimpleTree question, you should not use “Euclidean Clustering Denoising”. In SimpleTree I developed another approach, which is described in this tutorial:
That one is closer to the “Curvature Filter” described in my PhD and in fact I consider it more powerful. The step description should hopefully have another link to a citation (I think it was Belton et. al.).
My answer is from my memory, I hope you find everything in the tutorial . I cant support you beyond this, as I am really busy with other stuff right now and have no access to the SimpleTree plugin atm/gave up the support. I am focused on SimpleForest, but that one has no dedicated de-leaving implemented yet/will not have in near future.
This is all from my side, good luck with your thesis
RE: Leaf-area-Index estimation, Gap fraction estimation tool - Added by Vincent Grégoire 2 months ago
You might want to check the link below to a piece of software developed in our lab, dedicated to the estimation of LAI from lidar (both ALS and TLS). It handles multiple returns as well as single return lidar.
You can also simulate hemispherical photographs.
Feel free to ask for help if needed.
thank you both really much for your fast replies! I really appreciate your answers.
Thanks Jan, I will try to clasasify the foliage material by that process. Do you think most of that noise- points in that treecloud in your tutorial can be seen as needles? I also have one more sidequestion you maybe could answer: When I export my Voxels in computree as a .txt file (X,Y,Z, Value) there a many columns in that table. What is the difference between “LevZ” and “Value” and which refers to the number of point that fall into that voxel?
To Grégoire, that program sounds amazing and seems exactly to be what I was looking for. But after installing it I faced some Problems. I’m using TLS Data and it seems that I can only import .rsp, .rxp, .ptx, .ptg Scans. I use a Faro Focus 3D Scanner and the program Scene 2019.2 to process my scans. So I can export my Scans as a .ptx file but only the whole scan. When I use a clipping box I can’t export it as a .ptx file anymore but only as .xyz, .las, .pts and so on.
When I try to voxelize my pointcloud in AMAPVox 1.5.2 it takes a huge amount of time because I couldn’t preprocess my pointcloud and clip it correctly. The process never finishes and I get “TLS voxelisation error”.
Also when I try to generate a hemispherical photograph (in vox tools) from my .ptx point cloud I get an error “parsing or reading”. I tried to use a Computree generated voxelfile, but here it is exported in a ascII .grd3d or .txt format and your program only accepts .vox files.
It seems to be a very great program and I’m really excited to use it for my analysis. I hope you can help me through it.
Thank you both and best regards
RE: Leaf-area-Index estimation, Gap fraction estimation tool - Added by Vincent Grégoire 2 months ago
It should work... However, my own experience is more with the Riegl format (rxp). Maybe you can send me a test file (say a couple of scans in ptx format). I’ll share with the colleagues here working with Leica or Faro scanners.
My mail firstname.lastname@example.org
- Do you think most of that noise- points in that treecloud in your tutorial can be seen as needles?
Yes, or scanning errors caused by needles maybe as well. The step also does not care about needles or whatever. It computes a feature for each point and based on that feature it produces 10 clusters which all differ based on that feature. This is generic, not even tree specific supervised machine learning approach. You need to do this manually for each cloud you have. Otherwise it will not work. It is not that if you have for cloud 1 in the third cluster noise, the next time the noise will be again in the third cluster.
Do not know about the other question, sorry.
I am one of the developers of the L-Vox plugin. Although L-Vox is designed to compute PAD (for single return TLS), we can derive PAI from PAD by multiplying the total plant surface and plot surface. You can find a document (in French) here: http://rdinnovation.onf.fr/attachments/download/1627/Manuel_LVOX3.pdf. Even if you don’t speak French I think this document might help you figure out how to set up the steps.
We are working on upgrade the L-Vox plugin to a more stable version which is delayed by the pandemic.
Hope this will help you
I meant PAI can be derived from PAD by deviding the total plant surface and plot surface: PAI = sum(PAD * v) /S with v is volume of a voxel and S is plot area.
RE: Leaf-area-Index estimation, Gap fraction estimation tool - Added by Möhlmann Mike about 2 months ago
thank you really much for your answer, and sorry for my late response! I spent the last days figuring out how the LVOX3 Module works. I read the script and tried to follow the steps as good as possible (Unfortunately I only understand a little bit French). So I have some questions and I hope you can give me some advices:
- How important is the coordinate system here. When I’m using my scans (no matter if it’s an registered multiple scan or a single scan) I always face the problem that my (0,0,0) point is way above the point cloud (see picture 1). I transformed the coordinate system to the scanner point in one single scan (see picture 2) but it seems that it doesn’t really impact the result (also I have issues transforming the coordinate system of a multiple scan in FARO scene). So do you recommend when using the “LVOX file loader” to use a theoretical Scanner Position by using “Scanner type = theoretical shots – spherical custom”? Also what exactly is the main difference between these options?
- Is it even recommended to use a registered multiple scan when analyzing the PAD or LAI because the registration error may impact the result? Or should I rather analyse single scans and register the single results by using “merge grids from multiple scans (LVOX3)”?
- Do you recommend to load a whole point cloud or only the vegetation point cloud in the “LVOX file loader”? The manual says it is desirable to extract the points of the soil from the plot. But when I generate a DTM form the vegetation point cloud the generated DTM has of course some errors. So should I first load the whole point cloud with the “LVOX file loader” and in the next step use “Points> Classify > Classify Ground Points (TLS)” to extract the vegetation points?
- I’m using computree_v5.0.221b and I can’t find an option for a “modèle numérique de ciel”. Does it refer to the Digital Surface Model?
- When using “Compute LVOX grids (LVOX3) I should probably only use the vegetation points right? Also what do the blue/green voxel mean? Do they refer to the scanner position (see picture 3).
- The main problem I’m facing is about the function „Calculuer la grille de densité“. Does the predefined function „Relative density index (RDI)” refer to “„LVOX Densité“ in the script? When I click on “Validate” I assign the Available Grids to the predefined functions. But the result in the “Error formula” differs from the Error codes in the script (see picture 4). I tried to use both the predefined functions and also the corrected one (like in the manual) but the result don’t differ. The result is either empty or a voxel grid that seems incorrect (see picture 5).
- I can’t find an option to use the “Interpoler les grilles LVOX de densité” but only “Interpoler les voxels du type NODATA”. Also the GUI differs from the script. Are these the same methods?
Are there maybe any papers or more manuals about the LVOX functions?
It seems that you wrote a really powerful tool to analyze point clouds. I think many people who work in forestry or ecological related fields would appreciate your work. I would really recommend you to do some tutorial videos about the functions like Jan did about the QSM Modelling approach on Youtube. These tutorials helped me a lot during my bachelor thesis to understand Computree’s workflow and these tutorials even drew my attention on Computree.
I’m really sorry for my many questions but I tried now for days to get a correct result but I wasn’t able to improve my methods. Maybe you can help me with some points to correct my results.
Thank you really much for your help and best regards
RE: Leaf-area-Index estimation, Gap fraction estimation tool - Added by Nguyen Van Tho about 2 months ago
Here are my answers for your questions:
The origin of the coordinate system is not important for L-Vox. You should use the theoretical shots – spherical custom and enter by yourself the coordinates of the scanner. The other “the theoretical shots from scanner-spherical” is used when you have the coordinates stored in the input point cloud (in xyb) or when you create a .in file that includes the coordinates of the scanner. The algorithms in L-Vox will try to reproduce the laser pulses emitted by the scanner so these parameters are important.
Yes, multi scan will increase the accuracy of the PAD and PAI by reducing occlusion. PAD and PAI estimated with multiscan can be up to 50% higher than single scan (by our experiments). However L-Vox cannot use “merged multi scans”. So, you load multi scans with each one in a file and then use the merge function of L-Vox to merge PAD from all the individual scans. There are several options for merge but the last one (weighted rdi sum) is bugged and will be fixed by the next release of L-Vox.
In my opinion, removing the ground has a small impact on the accuracy but that save the work to remove “ground voxels” after the computation of PAD. I suggest that you classify ground/vegetation and then save the vegetations in new files. Then load these files in L-Vox.
I think the manual is a bit out of date. Maybe there is a more recent version of the manual in my office but I can not go to the office now.
We are writing an article about the use and validation of L-Vox but I don’t know when it will be published. But I think it’s not very complicate to use L-Vox. I attach a script for Computree v5.0.223c (http://rdinnovation.onf.fr/projects/computree-beta-version-base/files). You can modify some parameters, but these ones are important:
Step 1 load files: coordinates of the scanner and angular resolutions of the scan.
Step 2 Compute grids:* Compute distances* must be checked.
Step 3b Estimation of PAD: I suggest using bias corrected MLE or Bias corrected Beer Lambert (unequal path).
After that you can export the vertical profile of PAD, it is the sum of PAD by z layers. If you use cubic voxel, here is the equation to compute PAI from vertical profile of PAD:
PAI = sum(PADz)/(v*S) where sum(PADz) the sum of the PAD column in the vertical profile and v is the voxel size, and S is plot surface.
For the color of the voxels, I don’t know how they are colorized, maybe by value!
Hope this will help you.