GithubHelp home page GithubHelp logo

3dfin's Introduction

3dfin_logo

Welcome to 3DFin: 3D Forest inventory's official repository!

3DFin is a free software for automatic computation of tree parameters in terrestrial point clouds. It offers the users a quick, ease-of-use interface to load their forest plots and generate tree metrics with just a few clicks.

Getting Started

Be sure to check the Documentation, which features detailed explanations on how the program works and an User Manual.

Also, the Tutorial covers the basics of 3DFin and is a great tool to get started.

Download

3DFin is freely available in 4 ways:

  1. As a CloudCompare plugin (Windows and Linux)
  2. As a QGIS plugin
  3. As a standalone program (Only in Windows)
  4. As a Python package (In Windows, Linux and macOS)

1. CloudCompare plugin

3DFin is available in Windows as a plugin in CloudCompare (2.13) thanks to CloudCompare PythonRuntime (see References). You can download the latest version CloudCompare (Windows installer version) including the 3DFin plugin here:

CloudCompare

Simply install the latest version of CloudCompare and tick Python and 3DFin's checkbox during the installation:

To install 3DFin plugin, tick the 'Python plugin support' checkbox during CloudCompare installation. image

For Linux, the plugin is embedded into the CloudCompare flatpak.

3DFin plugin in CloudCompare. Fig_01

Running the plugin will open 3DFin's graphical user interface (GUI). 3DFin GUI. It is common to any version of 3DFin. basic_tab

2. QGIS plugin

3DFin is also available as a plugin in QGIS. Please follow the instructions available here in order to test it. Note that for now this does not provide much added value in comparison with CloudCompare and Standalone version of 3DFin.

3. Standalone program

3DFin is also available in Windows as a standalone program, which can be downloaded from here:

Standalone.

3DFin standalone does not require a CloudCompare installation and provides the fastest computation times.

Older versions of 3DFin standalone may also be downloaded from Releases. From there, simply navigate to the desired version and click on 3DFin.exe.

4. Python package (3DFin)

3DFin and its dependencies may be installed and launched in any OS (Windows, Linux and macOS) as a Python package:

pip install 3DFin
python -m three_d_fin

If you are a macOS or Linux user and you may want to try 3DFin, this is the way you should proceed.

pip will also install a script entry point in your Python installation's bin|script directory, so alternatively you can launch 3DFin from the command line with:

3DFin[.exe]

macOS user may need to install and use an openMP capable compiler, such as GCC from Homebrew in order to install the dependencies.

Usage

CloudCompare plugin is the reccomended way of using 3DFin, as it provides enhanced features for visualisation of the results and exporting of the outputs (it allows to export the results as a CloudCompare native BIN file).

By default, running 3DFin (either the CloudCompare plugin or any version of 3DFin) will open a GUI window.

For batch processing you can use the CLI capabilities of 3DFin and running the following command:

3DFin[.exe] cli --help

will give you an overview of the available parameters.

Citing 3DFin

If you use 3DFin in your research, please cite the following paper:

Laino, D., Cabo, C., Prendes, C., Janvier, R., Ordonez, C., Nikonovas, T., Doerr, S., & Santin, C. (2024). 3DFin: a software for automated 3D forest inventories from terrestrial point clouds. Forestry: An International Journal of Forest Research. https://doi.org/10.1093/forestry/cpae020

Thank you for citing 3DFin in your work! Your citations help to support the continued development and maintenance of this software.

References

CloudCompare-PythonRuntime, by Thomas Montaigu: CloudCompare-PythonRuntime

Acknowledgement

3DFin has been developed at the Centre of Wildfire Research of Swansea University (UK) in collaboration with the Research Institute of Biodiversity (CSIC, Spain) and the Department of Mining Exploitation of the University of Oviedo (Spain).

Funding provided by the UK NERC project (NE/T001194/1):

'Advancing 3D Fuel Mapping for Wildfire Behaviour and Risk Mitigation Modelling'

and by the Spanish Knowledge Generation project (PID2021-126790NB-I00):

โ€˜Advancing carbon emission estimations from wildfires applying artificial intelligence to 3D terrestrial point cloudsโ€™.

3dfin's People

Contributors

cabocarlos avatar diegolainor avatar rjanvier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

3dfin's Issues

Different Trees

Hi,

I am trying to use this awesome plugin to compute some metrics on the black corals I am studying. However, I am having trouble getting the algorithm to recognize the stem. Do you think this is because black corals are too different from canonical trees? Also, the scale of the corals is much smaller with a maximum height of approximately 2 meters and a diameter of 15 centimeters. Can you help me figure out how to solve these issues?

Kind Regards,
Matteo

cloud compare error Unable to allocate 1.33 GiB for an array with shape

Hi!
3DFin failed with this error:
Traceback (most recent call last):
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\gui\application.py", line 70, in run
self.processing_object.process()
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\processing\abstract_processing.py", line 425, in process
_, _, voxelated_ground = dm.voxelate(
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\dendromatics\voxel\voxel.py", line 126, in voxelate
unique_code, vox_first_point_id, inverse_id, vox_points = np.unique(
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\numpy\lib\arraysetops.py", line 274, in unique
ret = _unique1d(ar, return_index, return_inverse, return_counts,
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\numpy\lib\arraysetops.py", line 334, in _unique1d
aux = ar[perm]
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 1.33 GiB for an array with shape (179093523,) and data type float64

dist_to_axis missing?

Hi, I followed the tutorial you linked and it says that " It also showcases a way to quickly assess visually the results by using the scalar field "dist_to_axis"."

I cannot find the mentioned scalar field, is there something I overlooked?

Not identifying tree DBH

Does this tool work for single scan trees? I have a singular scan of a large tree (100ft+ in diameter), would this application work for this purpose? When I run it, it doesn't identify the DBH of the tree, but not sure if I'm not using the constraints correctly.

SEGI Scan

the program always gives me an error, how can I solve it?

Hi everyone, I'm using the 3D forst inventory plugin to study an Italian forest in order to calculate the diameter and height of each tree. every time I try to calculate it I get the following error.

3DFin failed with this error: I tried to modify the input data but the result does not change. I would kindly like to know how to solve this problem so that I can complete my study. In the attachment I added some images of my cloud. thanks for your attention
Traceback (most recent call last):
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\gui\application.py", line 70, in run
self.processing_object.process()
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\processing\abstract_processing.py", line 524, in process
clust_stripe = dm.verticality_clustering(
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\dendromatics\stripe.py", line 238, in verticality_clustering
clust_stripe, t = verticality_clustering_iteration(
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\dendromatics\stripe.py", line 148, in verticality_clustering_iteration
raise ValueError(
ValueError: Clusters were found, but they are too small to be considered potential stems using current settings. Suggestion: increase n points.

Screenshot (155)
Screenshot (156)

Question about how to include 3DFin in CloudCompare python plugin and 3DFin error after start

I compiled CloudCompare with python plugin in my Ubuntu 22.04 LTS and then i followed the instructions to install 3DFin by pip3 with its dependencies. But in this way i didn't be able to install 3DFin as a plugin by python plugin, i got the error: "no module three_d_fin found" but it's installed, if i run "3DFin" or "python3 - m three_d_fin" in terminal, the GUI opens.
So i tried to rebuild CloudCompare with 3DFin already installed in local, and with my surprise i open CloudCompare seeing that 3DFin is already installed as a plugin. How is it possible? Can you give me an explanation?
Anyway, i started to use 3DFin to analyze a forest point cloud, but i had the same error explained in issue #42, so have i to use only the expert tab without consider the basic tab? Have i to try different parameters only in voxel resolution sections?

Unable to allocate 6.24 GiB for an array with shape (279003485, 3) and data type float64

Hi!
3DFin failed with this error:
Traceback (most recent call last):
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\gui\application.py", line 70, in run
self.processing_object.process()
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\processing\abstract_processing.py", line 497, in process
z0_values = dm.normalize_heights(coords, dtm)
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\dendromatics\ground.py", line 233, in normalize_heights
zs_diff_triples = cloud[:, 2] - np.average(
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\numpy\lib\function_base.py", line 553, in average
avg = avg_as_array = np.multiply(a, wgt,
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 6.24 GiB for an array with shape (279003485, 3) and data type float64

Pycapsule_new called with null pointer

Hi!

please see uploaded Helicopter lidar in tall eucalypt forest.
in order to upload i voxelised to 3cm.
it would be great if your plugin worked with this dataset. i am using from the latest cloudcompare v2.13.0

3DFin failed with this error:
Traceback (most recent call last):
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\gui\application.py", line 70, in run
self.processing_object.process()
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\processing\abstract_processing.py", line 570, in process
self._export_stripe(clean_stripe)
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\cloudcompare\plugin_processing.py", line 114, in _export_stripe
CloudComparePluginProcessing.write_sf(
File "C:\Program Files\CloudCompare\plugins\Python\Lib\site-packages\three_d_fin\cloudcompare\plugin_processing.py", line 34, in write_sf
sf_array = point_cloud.getScalarField(idx_sf).asArray()
ValueError: PyCapsule_New called with null pointer
PNB118_GDA94_Lambert_AHD_CL -thinned_vox_3cm.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.