Skip to contents

The function computes solar radiation indicators from grouped data. Expects solar radiation in MJm-2.

Usage

summarise_solar_radiation(.x, value_var, normals_df)

Arguments

.x

grouped data, created with dplyr::group_by()

value_var

name of the variable with temperature values.

normals_df

normals data, created with summarise_normal()

Value

A tibble.

Details

The dark and light days indicators are computed based on climatological normals, created with the summarise_normal() function and passed with the normals_df argument. Keys to join the normals data must be present (like id, year, and month) and use the same names. The variables d3, d5, l3 and l5 must be present in the dataset. Those variables can be computed with the add_wave() function. Plase follow this function example for the correct arguments.

The following indicators are computed for each group.

  • count Count of data points

  • normal_mean Climatological normal mean, from normals_df argument

  • normal_p10 Climatological 10th percentile, from normals_df argument

  • normal_p90 Climatological 90th percentile, from normals_df argument

  • mean Average

  • median Median

  • sd Standard deviation

  • se Standard error

  • max Maximum value

  • min Minimum value

  • p10 10th percentile

  • p25 25th percentile

  • p75 75th percentile

  • p90 90th percentile

  • d3 Count of sequences of 3 days or more with solar radiation bellow the climatological normal

  • d5 Count of sequences of 5 days or more with solar radiation bellow the climatological normal

  • l3 Count of sequences of 3 days or more with solar radiation above the climatological normal

  • l5 Count of sequences of 5 days or more with solar radiation above the climatological normal

Examples

# Compute monthly normals
normals <- solar_radiation_data |>
  # Identify month
  dplyr::mutate(month = lubridate::month(date)) |>
  # Group by id variable and month
  dplyr::group_by(code_muni, month) |>
  summarise_normal(date_var = date, value_var = value, year_start = 1961, year_end = 1990) |>
  dplyr::ungroup()

# Compute indicators
solar_radiation_data |>
# Create wave variables
dplyr::group_by(code_muni) |>
   add_wave(
     normals_df = normals,
     threshold = 0,
     threshold_cond = "lte",
     size = 3,
     var_name = "d3"
   ) |>
   add_wave(
     normals_df = normals,
     threshold = 0,
     threshold_cond = "lte",
     size = 5,
     var_name = "d5"
   ) |>
   add_wave(
     normals_df = normals,
     threshold = 0,
     threshold_cond = "gte",
     size = 3,
     var_name = "l3"
   ) |>
   add_wave(
     normals_df = normals,
     threshold = 0,
     threshold_cond = "gte",
     size = 5,
     var_name = "l5"
   ) |>
   dplyr::ungroup() |>
 # Identify year
 dplyr::mutate(year = lubridate::year(date)) |>
 # Identify month
 dplyr::mutate(month = lubridate::month(date)) |>
 # Group by id variable, year and month
 dplyr::group_by(code_muni, year, month) |>
 # Compute solar radiation indicators
 summarise_solar_radiation(value_var = value, normals_df = normals) |>
 # Ungroup
 dplyr::ungroup()
#> Error in purrr::map(.x = res, .f = iden):  In index: 1.
#> Caused by error in `nseq::trle_cond()`:
#> ! unused argument (pos = TRUE)