Task 2 | Integration of Municipal Tree points and Laser-detected Tree Crown polygons

This repository provides a workflow for preparing municipal tree data for i-Tree Eco analysis and extrapolating the results to full the study area extent, using the lidar-segmented tree crowns and auxiliary GIS datasets.

Code is provided for the following tasks:

1. i-Tree Eco Data Preparation: preparing an input dataset for i-Tree Eco analysis by supplementing existing municipal tree inventories with crown geometry from the ALS data and auxiliary spatial datasets following the workflow by Cimburova and Barton (2020).

Installation

View the installation manual and project structure for instructions.

Data

The following data sources were used within this project task.

Land use

In i-Tree Eco Land Use (LU) is defined as the land use type in which a tree is located. In i-Tree Eco, there are 13 default land use classes defined (see Table 1). The land resource map FKB-AR5 (Ahlstrøm et al. 2019, Kartverket, 2023b) and the land use map from SSB (2022) are combined, and the different land use classes are translated to the Land Use classes defined in i-Tree Eco using the lookup tables: Table 2 and Table 3.

Municipal Tree Database

The municipalities within the Trekroner-project each provided a tree inventory database. The tree inventory databases contain information about the trees in the municipality, such as tree species, tree height, tree diameter, and tree location. The tree inventory databases were cleaned and standardized to ensure that the data could be used in the i-Tree Eco analysis.

Specific manual cleaning tasks for each municipality are described in the following documents:

Methods

The workflow consists of three main steps:

  1. Prepare Data

    entry point: prepare_data.py

    tasks:

    1. load the lidar-segmented tree crown polygons from the ALS data per neighbourhood

    2. load the in situ tree stems from the municipal tree inventory

    3. clean the in situ tree stems

      • manual municipality-specific cleaning tasks (see Data)

      • automatic cleaning tasks:
        • set standard field design

        • translate tree species

        • ensure that each tree stem contains: stem_id, dbh, height, crown_diameter

    4. group tree stem points by neighbourhood

  2. Join the in situ tree stems with the lidar-segmented tree crowns

    entry point: join_data.py

    tasks:

    1. classify the geometrical relationship

    2. split lidar-segmented tree crowns that overlap with multiple tree stems

    3. model the crown geometry of tree stems that do not overlap with lidar-segmented trees

    4. quality control whether each crown polygon is assigned to a single tree stem

    5. join the in situ tree stems with the lidar-segmented tree crowns

    Geometrical Relations:

    • Case 1: one polygon contains one point (1:1), simple join.

    • Case 2: one polygon contains more than one point (1:n), split crown with voronoi tesselation.

    • Case 3: a point is not overlapped by any polygon (0:1), model tree crown using oslo formula.

    • Case 4: a polygon does not contain any point (1:0), not used to train i-tree eco/dataset for extrapolation.

  3. Compute tree attributes and auxiliary attributes

    entry point: compute_attributes.py

    tasks:

    1. compute tree crown attributes (all trees in the study area)

      • overlay attributes (pollution zone, neighbourhood code)

      • crown_id (based on neighbourhood code and objectid)

      • tree height, crown area

    2. compute tree stem attributes (in-situ trees)

      • overlay attributes (e.g. pollution zone, neighbourhood code, land use)

      • tree attributes (e.g. dbh, height, crown diameter)

      • join crown attributes (e.g. crown_id, crown area, crown volume, crown shape)

      • building-related attributes (e.g. building distance, building direction)

      • crown condition (e.g. crown light exposure)

Warning

Known Issues

  • RUN the building-related attributes and crown condition attributes separately.

  • Make a backup of the input data before running the scripts.

  • Note that calculating the crown condition attributes is extremely slow (e.g., it can take more than 12 hours to run).

Output

The output is a cleaned municipal tree dataset that contains the mandatory input attributes for the i-Tree Eco model.

Table 1: Field design of the cleaned municipal tree inventory dataset.

Atrribute category

Nr.

Name (EN)

Alias (NO)

data_type

unit

domain

notes

Tree identification

1

GlobalID

GlobalID

GUID

2

FKID_stem

FKID_stem

GUID

3

itree_spec

i-Tree Eco (1/0)

SHORT

4

tree_id

Tre ID

TEXT

i-Tree Eco input variable

5

crown_id

Krone ID

TEXT

Species

6

scientific_name

Vitenskapelige navn

TEXT

7

taxon_genus

Genus

TEXT

8

common_name

Engelsk navn

TEXT

i-Tree Eco input variable

9

norwegian_name

Treslag

TEXT

10

species_comment

Treslag kommentar

TEXT

11

species_origin

Treslag kilde

TEXT

feltregistering

Diameter at Breast Height (DBH)

12

stem_circumference

Stammeomkrets (cm)

FLOAT

cm

13

dbh

Stammediameter (cm)

FLOAT

cm

i-Tree Eco input variable

14

dbh_height

DBH målingshøyde

FLOAT

cm

i-Tree Eco input variable

15

dbh_comment

DBH kommentar

TEXT

16

dbh_origin

DBH kilde

TEXT

feltregistering, regresjonsmodell

Tree Height

17

tree_height_laser

Høyde (laser)

FLOAT

m

18

height_in_situ

Høyde (in situ)

FLOAT

m

19

height_total_tree

Høyde (m)

FLOAT

m

i-Tree Eco input variable

20

height_live_tree

Høyde levende tre (m)

FLOAT

m

i-Tree Eco input variable

21

height_crown_base

Høyde til krone (m)

FLOAT

m

i-Tree Eco input variable

22

height_comment

Høyde kommentar

TEXT

23

height_origin

Høyde kilde

TEXT

laserdata, feltregistering, regresjonsmodell

Crown Geometry

24

crown_diam_insitu

Kronediameter (in situ)

FLOAT

m

25

crown_diam

Kronediameter (m)

FLOAT

m

26

crown_radius

Krone radius (m)

FLOAT

m

27

crown_vol

Krone volum (m3)

FLOAT

m3

28

crown_area

Kroneareal (m2)

FLOAT

m2

29

crown_peri

Krone omkrets (m)

FLOAT

m

30

EV_angle

EV vinkel (°)

FLOAT

geographic degrees

31

NS_width

Krone bredde NS (m)

FLOAT

m

i-Tree Eco input variable

32

EW_width

Krone bredde ØV (m)

FLOAT

m

i-Tree Eco input variable

33

crown_origin

Krone kilde

TEXT

laserdata year, feltregistering year, regresjonsmodell

34

crown_comment

Krone kommentar

TEXT

35

geo_relation

Geometrisk relasjon

TEXT

“Case 1”;”Case 2”;”Case 3”;”Case 4”;

Crown Condition

36

crown_dieback

Krone skade

TEXT

%

i-Tree Eco input variable

37

percent_crown_missing

Krone skade prosent

TEXT

%

“15% - 20%”

i-Tree Eco input variable

38

cle_class

Krone lys klasse

SHORT

1,2,3,4,5

i-Tree Eco input variable

39

cle_perc

Krone lys prosent

FLOAT

%

i-Tree Eco input variable

Building Interaction (energy Impact)

40

bld_dir_1

Bygg retning 1

FLOAT

degrees

i-Tree Eco input variable

41

bld_dir_2

Bygg retning 2

FLOAT

degrees

i-Tree Eco input variable

42

bld_dir_3

Bygg retning 3

FLOAT

degrees

i-Tree Eco input variable

43

bld_dist_1

Bygg avstand 1 (m)

FLOAT

m

i-Tree Eco input variable

44

bld_dist_2

Bygg avstand 2 (m)

FLOAT

m

i-Tree Eco input variable

45

bld_dist_3

Bygg avstand 3 (m)

FLOAT

m

i-Tree Eco input variable

Location Information

46

nb_code

Bydelnummer

SHORT

47

nb_name

Bydelnavn

TEXT

48

polutizon_zone

Luftsone

SHORT

1 (grønn), 2 (gull), 3 (rød)

49

address

Vegadresse

TEXT

i-Tree Eco input variable

50

street_tree

Veg tre

TEXT

“Y”, “N”

i-Tree Eco input variable

51

private_public

Privat/offentlig område

TEXT

“privat omr”, “offentlig omr”

52

SSB_hoved_underklasse

SSB Arealbruk

TEXT

53

AR5_arealtype

AR5 Arealbruk kode

TEXT

54

AR5_arealtype_navn

AR5 Arealbruk

TEXT

55

itree_LU

i-Tree Arealbruk

TEXT

56

itree_LU_kode

i-Tree Arealbruk kode

TEXT

i-Tree Eco input variable

57

itree_ground_cover

i-Tree Markdekke

TEXT

i-Tree Eco input variable

Administration

58

registration_date

Kartleggingsdato

DATE

yyyy.mm.dd

59

registrant

Kartlegger

TEXT

60

creation_date

Opprettelsesdato

DATE

yyyy.mm.dd

61

creator

Oppretter

TEXT

willeke.acampo@nina.no_NINA

62

comment

Kommentar

TEXT

datetime.datetime.now()

Map Coordinates

63

wgs84_lat

Latitude

DOUBLE

decimal degrees

y-axis

i-Tree Eco input variable

64

wgs84_lon

Longitude

DOUBLE

decimal degrees

x-axis

i-Tree Eco input variable

65

tree_altit

Tre høyde over havet (m)

FLOAT

m

Regulating Ecosystem Services (i-Tree Eco)

66

replacement_value_kr

Erstatningsverdi (Nkr)

FLOAT

Nkr

i-Tree Eco output variable

67

co2_storage_kg

Karbonlagring (kg)

FLOAT

kg

i-Tree Eco output variable

68

co2_storage_nkr

Karbonlagring (NKr)

FLOAT

Nkr

i-Tree Eco output variable

69

co2_seq_kg_yr

Årlig karbonbinding (kg/år)

FLOAT

kg/år

i-Tree Eco output variable

70

co2_seq_nkr_yr

Årlig karbonbinding (Nkr/år)

FLOAT

Nkr/år

i-Tree Eco output variable

71

runoff_m3_yr

Reduksjon av overflateavrenning (m3/år)

FLOAT

m3/år

i-Tree Eco output variable

72

runoff_nkr_yr

Reduksjon av overflateavrenning (NKr/år)

FLOAT

Nkr/år

i-Tree Eco output variable

73

co2_avoided_kg_yr

CO2-utslipp unngått (kg/år)

FLOAT

kg/år

i-Tree Eco output variable

74

co2_avoided_nkr_yr

CO2-utslipp unngått (Nkr/år)

FLOAT

Nkr/år

i-Tree Eco output variable

75

pollution_g_yr

Reduksjon av luftforurensing (g/år)

FLOAT

g/år

i-Tree Eco output variable

76

pollution_nkr_yr

Reduksjon av luftforurensing (NKr/år)

FLOAT

Nkr/år

i-Tree Eco output variable

77

energy_nkr_yr

Energibesparelse (Nkr/år)

FLOAT

Nkr/år

i-Tree Eco output variable

78

totben_cap_2023

Totalverdi ØT (Nkr/år)

FLOAT

Nkr/år

i-Tree Eco output variable

References

Contributors