README.Rmd 3.13 KB
Newer Older
Raphael Saldanha's avatar
Raphael Saldanha committed
---
output: github_document
---

<!-- README.md is generated from README.Rmd. Please edit that file -->

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# brclimr

<!-- badges: start -->
<!-- badges: end -->

R package to fetch zonal weather indicators for Brazilian municipalities.

Raphael Saldanha's avatar
Raphael Saldanha committed
This package fetches zonal statistics from weather indicators created for each Brazilian municipality with data from the BR-DWGD and TerraClimate projects. For each municipality and weather indicator, zonal statistics were calculated considering the data cells that intersects the municipality, like mean, max, min, sd and sum. 

Details about the used methodology to calculate the zonal statistics are available at *Articles > Methodology*.

Raphael Saldanha's avatar
Raphael Saldanha committed
## Installation

``` r
Raphael Saldanha's avatar
Raphael Saldanha committed
remotes::install_github(repo = "rfsaldanha/brclimr")
Raphael Saldanha's avatar
Raphael Saldanha committed
## Example
Raphael Saldanha's avatar
Raphael Saldanha committed
For the BR-DWGD project, the following indicators and zonal statistics can be retrieved.
Raphael Saldanha's avatar
Raphael Saldanha committed

```{r}
library(brclimr)

product_info(product = "brdwgd")
```

To fetch data for a specific product, indicator and statistic, use the fetch_data function. For example, lets consider the Rio de Janeiro, RJ municipality (IBGE code number 3304557), data product "brdwgd", average relative humidity, from 2010-10-15 to 2010-10-20.

```{r}
Raphael Saldanha's avatar
Raphael Saldanha committed
fetch_data(
Raphael Saldanha's avatar
Raphael Saldanha committed
    code_muni = 3304557,
    product = "brdwgd",
    indicator = "rh",
    statistics = "mean",
    date_start = as.Date("2010-10-15"),
    date_end = as.Date("2010-10-20")
  )
```

Raphael Saldanha's avatar
Raphael Saldanha committed
If you need to query several municipalities, indicators and zonal statistics, we recommend to download and locally query the parquet files using the `arrow` package. A list of URLs of the parquet files created for this project is available at *Articles > Parquet files*.
Raphael Saldanha's avatar
Raphael Saldanha committed
## Another example

```{r}
Raphael Saldanha's avatar
Raphael Saldanha committed
tmax <- fetch_data(
Raphael Saldanha's avatar
Raphael Saldanha committed
  code_muni = 3303401,
  product = "brdwgd",
  indicator = "tmax",
  statistics = "mean",
  date_start = as.Date("2010-01-01"),
  date_end = as.Date("2012-01-01")
)

Raphael Saldanha's avatar
Raphael Saldanha committed
tmin <- fetch_data(
Raphael Saldanha's avatar
Raphael Saldanha committed
  code_muni = 3303401,
  product = "brdwgd",
  indicator = "tmin",
  statistics = "mean",
  date_start = as.Date("2010-01-01"),
  date_end = as.Date("2012-01-01")
)

Raphael Saldanha's avatar
Raphael Saldanha committed
pr <- fetch_data(
Raphael Saldanha's avatar
Raphael Saldanha committed
  code_muni = 3303401,
  product = "brdwgd",
  indicator = "pr",
  statistics = "sum",
  date_start = as.Date("2010-01-01"),
  date_end = as.Date("2012-01-01")
)

tmax$name <- "Tmax_avg"
tmin$name <- "Tmin_avg"
```

```{r}
library(ggplot2)

ggplot(data = rbind(tmax, tmin), aes(x = date, y = value, color = name)) +
  geom_line() +
  scale_x_date(date_breaks = "2 months", date_labels =  "%m/%y") +
  ylim(0, NA) +
  labs(
    title = "Nova Friburgo, RJ",
    x = "Date", 
    y = "Temperature (average)",
    color = ""
  ) +
  theme_bw() +
  theme(legend.position = "bottom", legend.direction = "horizontal")
```

```{r}
ggplot(data = pr, aes(x = date, y = value)) +
  geom_line(color = "blue") +
  scale_x_date(date_breaks = "2 months", date_labels =  "%m/%y") +
  ylim(0, NA) +
  labs(
    title = "Nova Friburgo, RJ",
    x = "Date", 
    y = "Precipitation (sum)",
    color = ""
  ) +
  theme_bw() +
  theme(legend.position = "bottom", legend.direction = "horizontal")
```