---
title: "💧 ETo Calculation Based on FAO-56 Penman-Monteith"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{💧 ETo Calculation Based on FAO-56 Penman-Monteith}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

## 🚀 Reference Evapotranspiration (ETo) Estimation

This article demonstrates how to use the BrazilMet package to compute reference evapotranspiration (ETo) based on the FAO-56 Penman-Monteith method, using weather data from INMET automatic stations.

## 📦 Load the package

```{r}
library(BrazilMet)
```

## 🌍 View available INMET stations

Before downloading data, you can check the available weather stations with:

```{r}
see_stations_info()
```

## ⬇️ Download daily weather data

Let’s download daily meteorological data for two stations between January 2023 and December 2024:

```{r}
df <- download_AWS_INMET_daily(
  stations   = c("A001"),
  start_date = "2023-01-01",
  end_date   = "2024-12-31"
)
```

The resulting data frame includes temperature, solar radiation, wind speed, humidity, and atmospheric pressure

## 🧠 Calculate daily ETo using FAO-56

Now we use the daily_eto_FAO56() function to estimate daily ETo values:

```{r}
df$eto <- daily_eto_FAO56(
  lat    = df$latitude_degrees,
  tmin   = df$tair_min_c,
  tmax   = df$tair_max_c,
  tmean  = df$tair_mean_c,
  Rs     = df$sr_mj_m2,
  u2     = df$ws_2_m_s,
  Patm   = df$patm_mb,
  RH_max = df$rh_max_porc,
  RH_min = df$rh_min_porc,
  z      = df$altitude_m,
  date   = df$date
)
```

## 📊 Plotting ETo results

Below is a basic line plot of daily ETo:

```{r plot-eto-ggplot, fig.width = 10, fig.height = 4}

library(ggplot2)

# Ensure date column is in Date format
df$date <- as.Date(df$date)

ggplot(df, aes(x = date, y = eto)) +
  geom_line(color = "darkblue", size = 1) +
  labs(
    title = "Reference Evapotranspiration (FAO-56)",
    x = "Date",
    y = "ETo (mm/day)"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(hjust = 0.5),
    panel.grid.minor = element_blank()
  )

```

## ✅ Summary

The BrazilMet package allows you to download official INMET weather data and compute ETo using the FAO-56 method in a reproducible and efficient way. This is essential for irrigation planning, crop modeling, and climate-based decision support.


## 🔗 Useful links

https://github.com/FilgueirasR/BrazilMet
