# deadtrees.earth-aerial: A Multi-Resolution Aerial Image Dataset for Tree Cover and Mortality Detection
[](https://arxiv.org/abs/2605.19605)
[](https://ayushi-3536.github.io/deadtrees_aerial.github.io/)
[](https://deadtrees.earth/releases/dte-aerial-bench)
[](https://huggingface.co/datasets/ayushi3536/deadtree.earth-aerial-train_cc_by)
[](./LICENSE)
This repository is the official implementation of [deadtrees.earth-aerial: A Multi-Resolution Aerial Image Dataset for Tree Cover and Mortality Detection](https://arxiv.org/abs/2605.19605).
If you use the data, models or code, please cite the paper (see [Citation](#citation)).
## Setup
```
# Clone the repository
git clone https://github.com/GeoSense-Freiburg/DTE-aerial
cd DTE-aerial
# Install and activate the conda environment
conda create -n dte python=3.10
conda activate dte
pip install -r requirements.txt
```
---
## Download Benchmark Dataset
The benchmark (DTE-aerial-bench: 525 expert-annotated patches from 25 sites at 5, 10 and 20 cm) is available on Hugging Face: [`ayushi3536/deadtree.earth-aerial-bench`](https://huggingface.co/datasets/ayushi3536/deadtree.earth-aerial-bench). All patches can also be browsed in the [interactive viewer](https://deadtrees.earth/releases/dte-aerial-bench) on deadtrees.earth.
```bash
huggingface-cli download ayushi3536/deadtree.earth-aerial-bench --repo-type dataset \
--include "DTE-aerial-bench-*" SHA256SUMS --local-dir DTE-aerial-bench
cd DTE-aerial-bench && sha256sum -c SHA256SUMS --ignore-missing
```
Then extract the two archives inside the `DTE-aerial-bench` folder:
```bash
tar -xf DTE-aerial-bench-tiles.tar
tar -xf DTE-aerial-bench-masks.tar
```
The folder should then have the following structure:
```text
DTE-aerial-bench/
├── DTE-aerial-bench-meta.csv
├── tiles//.png
└── masks//_mask.png
```
---
## Download the Training Data
DTE-aerial-train is hosted on Hugging Face in two repositories, split by licence. The training set used in the paper is the union of both.
| Repository | Licence | Content |
|---|---|---|
| [`ayushi3536/deadtree.earth-aerial-train_cc_by`](https://huggingface.co/datasets/ayushi3536/deadtree.earth-aerial-train_cc_by) | CC BY 4.0 (+ 353 MIT patches) | 308,651 training and 34,885 validation patches |
| [`ayushi3536/deadtree.earth-aerial-train_cc_by_nc-sa`](https://huggingface.co/datasets/ayushi3536/deadtree.earth-aerial-train_cc_by_nc-sa) | CC BY-NC-SA 4.0 | 2,090 training patches (5 orthophotos), non-commercial only |
The CC BY repository is stored as WebDataset shards organised by biome and resolution (`data////`), so subsets can be downloaded selectively:
```python
from huggingface_hub import snapshot_download
# metadata for all patches, plus all boreal training shards
snapshot_download("ayushi3536/deadtree.earth-aerial-train_cc_by", repo_type="dataset",
allow_patterns=["metadata/*", "data/train/boreal/*"])
```
See the dataset card for streaming with `datasets`, selecting patches by metadata, and reading GeoTIFF patches and masks.
## Download Pre-trained Model
The pretrained model (MiT-B3, the paper's main model) is available on Hugging Face: [DTE-aerial-model](https://huggingface.co/ayushi3536/DTE-aerial-model). The weights are in `DTE_aerial_model.safetensors`.
Download it from the command line:
```bash
huggingface-cli download ayushi3536/DTE-aerial-model --local-dir DTE-aerial-model
```
or with the Hugging Face Hub in Python:
```python
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="ayushi3536/DTE-aerial-model",
local_dir="DTE-aerial-model",
)
```
or clone the repository with Git LFS:
```bash
git lfs install
git clone https://huggingface.co/ayushi3536/DTE-aerial-model
```
---
## Evaluation
**One command:** `reproduce_benchmark.py` downloads DTE-aerial-bench and the released model from Hugging Face, verifies the checksums, runs the evaluation and compares the macro F1 (overall, per resolution and per biome) with the released model's results:
```bash
python reproduce_benchmark.py --work-dir reproduce
```
It needs one GPU and about 2 GB of disk space. On clusters without internet access on the compute nodes, run `--download-only` on a login node first and `--skip-download` on the GPU node. The released model is the seed-200 run of MiT-B3; the paper's tables report the mean over three seeds, so the overall numbers differ slightly (e.g. mortality F1 0.598 vs. 0.59).
**Manually:**
```bash
# set data.input_dir in config/evaluation.yml to the DTE-aerial-bench folder
python eval.py --cfg config/evaluation.yml --checkpoint DTE-aerial-model/DTE_aerial_model.safetensors
```
## Repository Structure
```text
DTE-aerial/
├── train.py # Training entry point
├── eval.py # Evaluation entry point
├── reproduce_benchmark.py # Download data + model, evaluate, compare with the released results
├── requirements.txt
├── README.md
│
├── config/
│ ├── base.yml # Shared training settings (data paths, schedule)
│ ├── .yml # One config per model in the paper (e.g. mitb3.yml)
│ └── evaluation.yml # Benchmark evaluation
│
├── notebooks/
│ └── data_sanity/ # Train/benchmark split checks
│
└── src/
├── dataset/ # Dataset loading
├── model/ # Network architectures
├── loss/ # Loss functions
└── utils/ # Utilities
```
## Training
To train the models described in the paper:
1. Prepare a configuration file (see [`config/`](./config/)) by specifying the path to the dataset.
2. Run the following command:
```bash
python train.py --cfg ./config/.yml --output
```
## Results
Benchmark results for all models (by biome, resolution and class) are reported in the [paper](https://arxiv.org/abs/2605.19605).
## Citation
If you use DTE-aerial, please cite:
```bibtex
@misc{sharma2026deadtreesearthaerialmultiresolutionaerialimage,
title={deadtrees.earth-aerial: A Multi-Resolution Aerial Image Dataset for Tree Cover and Mortality Detection},
author={Ayushi Sharma and Clemens Mosig and Lukas Drees and Salim Soltani and Janusch Vajna-Jehle and Aaron Sheppard and Belqis Ahmadi and Jonathan Schmid and Paul Neumeier and Nathan Jacobs and Jan Dirk Wegner and Teja Kattenborn},
year={2026},
eprint={2605.19605},
archivePrefix={arXiv},
primaryClass={cs.CV},
doi={10.48550/arXiv.2605.19605},
url={https://arxiv.org/abs/2605.19605},
}
```