Task 1 | Urban Tree Detection

This is the documentation page related to the GitHub repository: urban-tree-detection

The repository provides a workflow for detecting trees in urban areas using Airborne Laser Scanning (ALS) data and national geographic datasets. The output is a tree database with tree crown polygons and tree top points per neighbourhood. This tree database can be used as input for the i-Tree Eco model to estimate the ecosystem services of trees in urban areas. However, the laser data must be supplemented with in situ tree data (e.g. tree species, dbh, etc.) and gis-derived data (e.g. land use, building footprints, etc.) to successfully run the i-Tree Eco model. The repository itree-supportTools provides a workflow for preparing and linking in situ data and gis-derived data to the detected laser trees.

In addition, the tree crowns can be used as an input to model other ecosystem services not included in the i-Tree Eco model, such as local climate regulating s ervices and tree crown visibility cultural services. These workflows are included in the following repositories:

Code is provided for the following tasks:

  1. preparing Airborne laser scanning (ALS) data from Terratec AS

  2. detecting tree crowns in the built-up zone of Norwegian municipalities using a watershed segmentation method following the workflow from Hanssen et al. (2021).

  3. detecing false positives (e.g. objects that are detected as trees but are instead buildings, lamp posts, etc.) by identifying outliers in the geometrical shape of the tree crowns.

The repository is applied on the Norwegian municipalities: Bærum, Bodø, Kristiansand and Oslo.

Installation

View the installation manual and project structure for instructions.

Data

work in progress load tables to restructred text

Methods

  1. Create a study area mask (optional manual action)

    We recommend to create a study area mask manually, as it is specific to each municipality and you might want to mask out areas that are not relevant for your analysis (e.g. water bodies, buildings but that are not yet available in national datasets).

    Example of a mask formula:

    mask = study_area_200m_buffer - buildin_footprints - waterbodes

  1. Pre-process the laser data (semi-automatic)

    Run the following scripts to pre-process the laser data:

    1. src/data/moveFile_lookUp.py

      • classifies the laser tiles into inside and outside the build-up zone (only pre-process tiles inside the build-up zone)

    2. src/data/extract_laz.bat

      • extracts the .laz files from the .zip files to .las files

    3. src/data/moveFile_substring.py

      • create a copy per XXX-YYY tile and move the .las files to the corresponding folder

    4. src/data/renameFile.bat

      • rename the .las files to utmxx_X_XXX_YYY_X.las to make them compatible with ArcGIS Pro (e.g. utm33_1_495_304_01.las)

    5. src/data/define_projection.py

      • define the projection of the .las files to EPSG:25833 or EPSG:25832

    TODO: move scripts as subroutines to src/prepare_lidar.py

  2. Detect tree crowns (automatic)

    Run the following scripts to detect tree crowns:

    1. src/tree_detection/model_chm.py

      • create a Canopy Height Model (CHM) from the laser data

    2. src/tree_detection/watershed_segmentation.py

      • detect tree crowns using a watershed segmentation method

    3. src/tree_detection/identify_false_positives.py

      • identify false positives (e.g. objects that are detected as trees but are instead buildings, lamp posts, etc.) by identifying outliers in the geometrical shape of the tree crowns.

References:

  • Hanssen, F., Barton, D. N., Venter, Z. S., Nowell, M. S., & Cimburova, Z. (2021). Utilizing LiDAR data to map tree canopy for urban ecosystem extent and condition accounts in Oslo. Ecological Indicators, 130, 108007. https://doi.org/10.1016/j.ecolind.2021.108007