Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
[![Results](https://img.shields.io/badge/results-summary_rankings.csv-informational.svg)](outputs/tables/summary_rankings.csv)
[![Contact](https://img.shields.io/badge/contact-GitHub%20Issues-lightgrey.svg)](https://github.com/brunomartinsmv/eto-methods-comparison/issues)

**A reproducible analysis framework for comparing up to 15 empirical and semi-empirical ET0 estimation methods against Penman-Monteith (FAO-56).**
**A reproducible analysis framework for comparing up to 18 empirical and semi-empirical ET0 estimation methods against Penman-Monteith (FAO-56).**

This repository is organized as an open, citable research compendium. The current stage includes the executable ETo pipeline, method rankings, uncertainty/sensitivity diagnostics, data-quality reports, optional PCA of meteorological drivers, tests, citation metadata, licensing, contribution guidance, and documentation for reproducing the analysis.

## Key Findings

This repository now configures **15 alternative ET0 methods plus Penman-Monteith FAO-56 as reference**. The current demonstration workflow runs end to end for two contrasting Brazilian climates:
This repository now configures **18 alternative ET0 methods plus Penman-Monteith FAO-56 as reference**. The current demonstration workflow runs end to end for two contrasting Brazilian climates:
- **Piracicaba, SP** (Cwa — humid subtropical with dry winter)
- **Manaus, AM** (Af — tropical rainforest)

Expand Down Expand Up @@ -352,7 +352,7 @@ The pipeline is designed for **any location** with meteorological data. Here's h

### Required Meteorological Variables

To compute the full configured set of 15 ET0 methods, you generally need daily data for:
To compute the full configured set of 18 alternative ET0 methods, you generally need daily data for:

**Minimum requirements (for basic methods):**
- Date
Expand Down Expand Up @@ -528,7 +528,7 @@ The repository also includes [`CITATION.cff`](CITATION.cff), which GitHub can us

## Methods Overview

The repository configuration targets **15 alternative ET0 estimation methods** plus **Penman-Monteith FAO-56** as the reference. The `compute-eto` command calculates those methods from standardized meteorological variables and writes daily calculated series to `outputs/results/{site}_daily_eto.csv`.
The repository configuration targets **18 alternative ET0 estimation methods** plus **Penman-Monteith FAO-56** as the reference. The `compute-eto` command calculates the **15 methods with `status: computed`** from standardized meteorological variables and writes daily calculated series to `outputs/results/{site}_daily_eto.csv`.

**Reference standard:**
- **Penman-Monteith (FAO-56)** — Energy balance + aerodynamic approach, requires full met data
Expand Down
6 changes: 4 additions & 2 deletions docs/equations/et0_methods.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ Mesma forma do Hargreaves-Samani original, com coeficiente \(c_{local}\) ajustad

$$\mathrm{ET_0} = c_{local} \cdot \frac{R_a}{\lambda} \cdot (T_{max} - T_{min})^{0{,}5} \cdot (T_{mean} + 17{,}8)$$

### Calibracao
### Calibração

O valor de \(c_{local}\) provém da planilha legada e não é refitado pelo comando `calibrate` (que opera sobre `et_hargreaves_samani`, não sobre a coluna corrigida). Ver [`../methodological_assumptions.md`](../methodological_assumptions.md).

Expand Down Expand Up @@ -360,7 +360,9 @@ com \(C_T = 0{,}025\) e \(T_x = 3\) °C (padrões).

### Derivação

Forma linear em \(T\) condicionada a \(R_s\): a evapotranspiração só responde quando \(T_{mean} > T_x\), refletindo limiar de atividade evaporativa.
Forma linear em \(T\) condicionada a \(R_s\), com limiar \(T_x\) de atividade evaporativa.

**Nota de implementação:** a função `jensen_heise` em `scripts/eto_methods.py` avalia \((T_{mean} - T_x)\) sem clamp; valores negativos de ET₀ são possíveis quando \(T_{mean} < T_x\). A formula acima descreve a forma empírica, não um truncamento no código.

---

Expand Down
5 changes: 4 additions & 1 deletion docs/methodology.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Para **derivações LaTeX completas** de cada método e das variáveis meteorol

## Escopo configurado dos metodos

O repositorio agora configura 15 metodos alternativos de ET0 e usa Penman-Monteith FAO-56 como referencia. Manaus e Piracicaba sao localidades demonstrativas configuradas em `configs/sites.yml`; o projeto nao esta limitado a essas cidades. Novas localidades podem ser adicionadas por configuracao e por dados de entrada compatíveis.
O repositorio agora configura 18 metodos alternativos de ET0 e usa Penman-Monteith FAO-56 como referencia. Manaus e Piracicaba sao localidades demonstrativas configuradas em `configs/sites.yml`; o projeto nao esta limitado a essas cidades. Novas localidades podem ser adicionadas por configuracao e por dados de entrada compatíveis.

O comando `compute-eto` calcula os metodos com `status: computed` a partir de variaveis meteorologicas padronizadas em `data/cleaned/` e escreve `outputs/results/{site}_daily_eto.csv`. Metodos com `status: precomputed_only` sao preservados da planilha quando presentes no input limpo. As metricas preferem essas series calculadas quando o arquivo existe; caso contrario, usam as colunas `et_*` pre-calculadas dos dados limpos como fallback historico.

Expand Down Expand Up @@ -305,6 +305,9 @@ $$\mathrm{ETo} = \frac{R_s}{\lambda}\,0{,}025\,(T_{mean} - 3)$$
**Requisitos de dados**
Temperatura media e radiacao global.

**Nota de implementacao**
A implementacao em `scripts/eto_methods.py` nao aplica clamp em \(T_{mean} - T_x\); quando \(T_{mean} < T_x\), o resultado pode ser negativo. Ver [`equations/et0_methods.md`](equations/et0_methods.md).

---

## 15. Net Radiation
Expand Down
2 changes: 0 additions & 2 deletions tasks/todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
- [x] Cleaning gap limits and long-gap warnings (`clean --max-gap`)
- [x] Full LaTeX equation derivations per method (`docs/equations/`)

- [x] Expand equation documentation with full LaTeX derivations per method (`docs/equations/`)

## Deferred

- Implement Thornthwaite-family methods in Python (currently `precomputed_only`)
Expand Down
Loading