{"id":13738305,"url":"https://github.com/JorisJoBo/treedentifier","last_synced_at":"2025-05-08T16:33:07.725Z","repository":{"id":202110459,"uuid":"116681900","full_name":"JorisJoBo/treedentifier","owner":"JorisJoBo","description":"This project allows users to use LiDAR data to identify trees on specific coordinates.","archived":false,"fork":false,"pushed_at":"2018-02-04T19:16:13.000Z","size":210,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-15T07:34:09.720Z","etag":null,"topics":["artificial-intelligence","artificial-intelligence-algorithms","lidar-data","lidar-point-cloud"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JorisJoBo.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-01-08T13:44:40.000Z","updated_at":"2022-06-25T06:23:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"b3633e30-e18c-4b76-8901-7bf3cfefb452","html_url":"https://github.com/JorisJoBo/treedentifier","commit_stats":null,"previous_names":["jorisjobo/treedentifier"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorisJoBo%2Ftreedentifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorisJoBo%2Ftreedentifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorisJoBo%2Ftreedentifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorisJoBo%2Ftreedentifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JorisJoBo","download_url":"https://codeload.github.com/JorisJoBo/treedentifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253105422,"owners_count":21855023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","artificial-intelligence-algorithms","lidar-data","lidar-point-cloud"],"created_at":"2024-08-03T03:02:17.792Z","updated_at":"2025-05-08T16:33:07.466Z","avatar_url":"https://github.com/JorisJoBo.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/JorisJoBo/treedentifier.svg?branch=master)](https://travis-ci.org/JorisJoBo/treedentifier)\n[![HitCount](http://hits.dwyl.io/JorisJoBo/treedentifier.svg)](http://hits.dwyl.io/JorisJoBo/treedentifier)\n\n# Treedentifier\nTreedentifier allows you to identify trees in your country. The algorithm can learn\nwhat the characteristics of a specific tree species are and detect them when\nproperly learned. For the development of this algorithm we use LiDAR data of the Netherlands.\n\n## Setup\n### Software\nAfter cloning the project, please install the required python packages first.\nFor this project we use Python 3.6. If you don't have python already, you can\ndownload it [here](https://www.python.org/downloads/release/python-364/).\nTo install the required packages, just execute:\n```\npip install -r python-requirements.txt\n```\n\nTo process the LAZ files in which most LiDAR datasets are formatted, you can\nuse LAStools. You can download LAStools [here](https://rapidlasso.com/lastools/).\nPlease note that LAStools is not free. You can use LAStools without paying but it will\ndistort your data and insert black diagonals in LAScanopy.\n\n### Datasets\nAfter that, you'll need a vegetation dataset of your area, as well as a filtered\nand a unfiltered LiDAR dataset. We used a modified version of the [Dutch Vegetation Database](https://www.gbif.org/dataset/740df67d-5663-41a2-9d12-33ec33876c47)\nas our vegetation dataset and as LiDAR data we used [filtered AHN2 data](http://geodata.nationaalgeoregister.nl/ahn2/atom/ahn2_gefilterd.xml)\nand [filtered out AHN2 data](http://geodata.nationaalgeoregister.nl/ahn2/atom/ahn2_uitgefilterd.xml).\n\n### Processing data\nTo be able to use this data in our algorithm, we need to do some preprocessing first.\n\n#### Preparing the vegetation datasets\nThe vegetation dataset contains a lot of different plants. Since we are only\ninterested in trees, we need to remove all non-trees. In the file treespecies,\nyou can find a list of trees extracted from the Dutch Vegetation Database.\n\nTo extract all dominant trees from the vegetation dataset, you can run 'tree_processing.py'.\n```\npython tree_processing.py\n```\nPlease note that this program looks for the 'joined_db2.csv' file, so you'll have to name your\nvegetation dataset like this. This program will create a file called 'dominant_trees.csv' which will be used in a later step.\n\nNow you can run all LAStools you want. We set up a default batch script which will\nbasically work for everyone. Just run the batch file and you should be fine. You'll need the output file 'ID_growing_forest' of the 'tree_processing.py' step, for the last LAStools step 'LAScanopy'.\n\nWhen done with LAStools run 'data_processing.py' to combine the dominant trees\nand the result matrix of LAScanopy and to remove any unnecessary data..\n```\npython data_processing.py input_directory output.csv\n```\n(The 'dominant_trees.csv' file in used by the program above is one of the output files of the earlier executed\n'tree_processing.py' step).\n\nNow you're done with the setup. You now should be able to run the algorithms without any problems.\n\n## Machine learning algorithms\nIn this project we created python algorithms based on two machine learning principles.\nYou can choose between decision trees and support vector machines. It is recommended using the decision tree algorithm.\nDuring tests decision trees showed better accuracy as well as efficiency (speed) than support vector machines.\n\n### Running the decision tree algorithms\nWhen running the decision tree algorithm, you can take one of the following versions:\n- Dependent\n- independent\n\n#### Dependent decision tree algorithm\nThis runs the algorithm on the same forestry data as the training data is originating from.\n\n#### Dependent decision tree algorithm\nThis runs the algorithm on forest data from other geographic places than the training data is originating from.\n\n### Running the support vector machine algorithms\nThis algorithm is provided as a Jupyter Notebook ('SVM LiDAR tree classifier.ipynb').\nTo run this program you'll have to install Jupyter/Ipython Notebook.\n\n## Contributing\n### Testing\nYou have to test your code first before pushing. Pushing while failing to do so, may result in failed builds.\nFor testing you should use [PyCodeStyle](https://github.com/PyCQA/pycodestyle).\nYou can test your code with the following command:\n```\npycodestyle --show-source --show-pep8 ./\n```\nIf you want, you can let [autopep8](https://github.com/hhatto/autopep8) fix your issues with the following command:\n```\nautopep8 --in-place --aggressive --aggressive -r ./\n```\n\n## Contributors\nThe core contributors are:\n- Patrick Spaans\n- Geerten Rijsdijk\n- Thom Visser\n- Joris Jonkers Both\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJorisJoBo%2Ftreedentifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJorisJoBo%2Ftreedentifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJorisJoBo%2Ftreedentifier/lists"}