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¶
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.
Methods¶
The workflow consists of three main steps:
Prepare Data
entry point:
prepare_data.py
tasks:
load the lidar-segmented tree crown polygons from the ALS data per neighbourhood
load the in situ tree stems from the municipal tree inventory
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
group tree stem points by neighbourhood
Join the in situ tree stems with the lidar-segmented tree crowns
entry point:
join_data.py
tasks:
classify the geometrical relationship
split lidar-segmented tree crowns that overlap with multiple tree stems
model the crown geometry of tree stems that do not overlap with lidar-segmented trees
quality control whether each crown polygon is assigned to a single tree stem
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.
Compute tree attributes and auxiliary attributes
entry point:
compute_attributes.py
tasks:
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
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.
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 |
||||
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
Ahlstrøm, A., Bjørkelo, K., Fadnes, K.D. 2019. AR5 Klassifikasjonssystem. Klassifisering av arealressurser. NIBIO BOK 5 (5) 2019. http://hdl.handle.net/11250/2596511
Cimburova, Z., & Barton, D. N. (2020). The potential of geospatial analysis and Bayesian networks to enable i-Tree Eco assessment of existing tree inventories. Urban Forestry & Urban Greening, 55, 126801. https://doi.org/10.1016/j.ufug.2020.126801
Kartverket 2023a. FKB-Bygninger. Geografisk vektordatasett. https://kartkatalog.Geonorge.no/metadata/fkb-bygning/8b4304ea-4fb0-479c-a24d-fa225e2c6e97
Kartverket 2023b FKB-AR5. Geografisk vektordatasett. https://kartkatalog.geonorge.no/metadata/fkb-ar5/166382b4-82d6-4ea9-a68e-6fd0c87bf788
Statistisk sentralbyrå (SSB) 2022: Arealbruk 2022. Geografisk vektordatasett. https://kartkatalog.Geonorge.no/metadata/arealbruk-2022/a965a979-c12a-4b26-90a0-f09de47dbecd
Contributors
Willeke A’Campo (NINA), willeke.acampo@nina.no