🌲 FOR-age Dataset 🎂
Authors/Creators
Description
Benchmarking Individual Tree Age Estimation from 3D Point Clouds
📌 Overview
The FOR-age dataset is a large-scale, multi-source collection of individual tree point clouds paired with tree age information, designed to support research in forest remote sensing, ecology, and 3D deep learning.
It enables the development and benchmarking of models that estimate tree age non-destructively from 3D laser scanning data (TLS, MLS, high-density ALS)
This dataset accompanies the Remote Sensing of Environment study by Puliti et al. (2026) . If you use this dataset, please cite the original paper📜:
Puliti, S., Xiang, B., Wielgosz, M., Handegard, E., Cattaneo, N., Vergarechea, M., Gobakken, T., Hyyppä, J., Næsset, E., Vastaranta, M., Yrttimaa, T., Astrup. 2026 FOR-age: Benchmarking individual tree age estimation using 3D deep learning on dense laser scanning data. Remote Sensing of Environment 342, 115462
🌍 Dataset Description
- ~1,775 tree point clouds
- ~992 individual trees
- 2 species:
- Norway spruce (Picea abies)
- Scots pine (Pinus sylvestris)
- Age range: 1 – 348 years
- Mean age: ~53 years
- Geographic coverage: Norway, Sweden, Finland
- Multi-sensor data:
- Terrestrial Laser Scanning (TLS)
- Mobile Laser Scanning (MLS)
- High-density Airborne Laser Scanning (ALSHD)
The dataset is sensor-agnostic, enabling robust model development across varying point cloud densities and acquisition modalities .
🧪 Data Collection
Tree age was obtained using three approaches:
- Increment coring / destructive sampling (~61%)
- Whorl counting from point clouds (~36%)
- Known planting year (~2%)
Point clouds were manually segmented at the individual tree level.
🧬 Dataset Composition
| Dataset | Country | Trees | Point Clouds | Age Range |
|---|---|---|---|---|
| Handegard2021 | Norway | 44 | 44 | 70–348 |
| Skar | Norway | 41 | 41 | 43–70 |
| Lillomarka | Norway | 133 | 266 | 18–223 |
| PathFinder | Norway | 41 | 57 | 8–209 |
| Evo | Finland | 335 | 667 | 28–175 |
| LongTerm | Norway | 25 | 25 | 67 |
| Valer | Norway | 371 | 674 | 1–48 |
🗂️ Data Structure
train/
│tree_1.laz
│tree_2.laz
│tree_n.laz
val/
│tree_11.laz
│tree_12.laz
│tree_n.laz
FORage_tree_metadata_train_val.csv
Notes:
- Each file in
train/val/andtest/represents a single tree point cloud - Tree age labels are provided only for the training and validation data
- A withheld test set of labels is used for benchmarking (see Codabench benchmarking instuctions below)
🔀 Data Splitting
The dataset is split into:
- Train (70%)
- Validation (15%)
- Test (15%, withheld)
Splitting is:
- Plot-level (ensures spatial independence)
- Stratified by:
- Age class (10-year bins)
- Dominant species
This preserves dataset heterogeneity and prevents spatial leakage
🔒 Benchmarking & Evaluation
The test set is not publicly available.
To benchmark models:
👉 Submit predictions to the official FOR-age Codabench competition.
🚀 Baseline Methods (from paper)
- Linear regression (height + crown area)
- PointTransformerV3 (trained from scratch)
- ForestFormer3D (fine-tuned)
Best performance
- RMSE ≈ 21 years
- R² ≈ 0.74
⚠️ Known Limitations
- Limited species diversity (2 species)
- Sparse representation of very old trees
📄 License
See repo licence for specific information on what you can do or not when using these data :)
🤝 Acknowledgements
This dataset was developed within:
- SmartForest (NFR SFI project no. 309671)
- SingleTree (EU CBE JU project, grant no. 101157488)
📬 Contact
- Stefano Puliti (NIBIO)
Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not mnecessarily reflect those of the European Union or CBE JU. Neither the European Union nor the CBE JU can be held responsible for them. Grant agreement N. º 101157488.