# Tirauxcloud Eval

> Evaluates semantic segmentation models for day-and-night cloud detection using thermal infrared imagery, specifically testing how auxiliary environmental features improve segmentation accuracy and how well models transfer across different satellite sensors and resolutions. Use when the user wants to benchmark on Landsat Main, or asks about evaluating this task. Reports mIoU.

- Skill: `qhjqhj00/tirauxcloud-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/tirauxcloud-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/tirauxcloud-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/tirauxcloud-eval

---


# tirauxcloud-eval

> TIRAuxCloud: A Thermal Infrared Dataset for Day and Night Cloud Detection — Apostolakis et al. (2026) (arXiv:2602.21905, 2026)

## What this evaluates

Evaluates semantic segmentation models for day-and-night cloud detection using thermal infrared imagery, specifically testing how auxiliary environmental features improve segmentation accuracy and how well models transfer across different satellite sensors and resolutions.

## Datasets

- **Landsat Main** — total ?; splits: train (-1), val (-1), test (-1)

## Metrics

- `Accuracy` — range: [0, 1]
  - Fraction of correctly classified pixels divided by total pixels.
- `mIoU` **(primary)** — range: [0, 1]
  - Mean Intersection over Union across all classes. IoU for a class is the intersection of predicted and ground truth pixels divided by their union.

## Input / output format

**Input**: Multi-channel image patches containing thermal infrared bands and optionally auxiliary features (clear-sky reference, DEM, meteorological variables). Patches are grouped by scene ID.

**Output**: Per-pixel segmentation mask with class labels: 2-class (0: clear, 1: cloud) or 3-class (0: clear, 1: thin cloud, 2: cloud).

## Scoring recipe

```python
def compute_metrics(pred_mask, gt_mask, num_classes=2):
    correct = (pred_mask == gt_mask).sum()
    total = gt_mask.numel()
    accuracy = correct / total
    ious = []
    for c in range(num_classes):
        pred_c = (pred_mask == c)
        gt_c = (gt_mask == c)
        intersection = (pred_c & gt_c).sum()
        union = (pred_c | gt_c).sum()
        iou = intersection / union if union > 0 else 0.0
        ious.append(iou)
    miou = sum(ious) / num_classes
    return accuracy, miou
```

## Common pitfalls

- Spatial leakage: Must enforce a strict group-split policy by scene ID so that no patch from the same scene appears in different splits.
- Thin cloud ambiguity: The 3-class setup includes 'thin cloud' which has inherent aleatoric label uncertainty due to semi-transparency, causing consistently lower mIoU scores that reflect label noise rather than model deficiency.
- Domain shift magnitude: VIIRS has 750m resolution and different spectral wavelengths compared to Landsat's 100m, requiring substantial fine-tuning for transfer rather than simple inference.

## Evidence (verbatim from paper)

> We present the Accuracy and mean Intersection over Union (mIoU) in [Tables II] and[III] for the two-class (0: clear, 1: cloud) and three-class (0: clear, 1: thin cloud, 2: cloud) targets, respectively.

## Citation

```bibtex
@misc{apostolakis2026tirauxcloud,
  title={TIRAuxCloud: A Thermal Infrared Dataset for Day and Night Cloud Detection},
  author={Apostolakis et al. (2026)},
  year={2026},
  note={arXiv:2602.21905}
}
```

- arXiv: 2602.21905

