Generates monthly temperature data, including minimum, average, and maximum values. The data generation process involves hourly calculations across 12 months, incorporating a seasonality pattern derived from a simple cosine function, with a peak during summer (July-August), plus daily peaks (centered around 12:00), and a spatially independent normal error.

generateMonthlyTemp(x, daily_amp, annual_rng, err_sdev = 1, verbose = TRUE)

Arguments

x

A vector with average annual temperature data.

daily_amp

A vector with same length as 'x' with daily temperature amplitude.

annual_rng

A vector with same length as 'x' with temperature annual range.

err_sdev

Standard deviation for normal error associated with each hour "measurement".

verbose

Logic value for verbosity (default is TRUE).

Details

Value

Returns a list with tmin, tavg and tmax matrices with data for each cell (rows) and for each month (columns).

References

Author

Note

See also

Examples

set.seed(1234)

# Generate base climate data
clim <- generateClim()
#> [using unconditional Gaussian simulation]
#> [using unconditional Gaussian simulation]
#> [using unconditional Gaussian simulation]
  
# Generate monthly precipitation for each cell
m_temp <- generateMonthlyTemp(clim$temp, clim$daily_amp, clim$annual_range)
#> Generating data for January 
#> Generating data for February 
#> Generating data for March 
#> Generating data for April 
#> Generating data for May 
#> Generating data for June 
#> Generating data for July 
#> Generating data for August 
#> Generating data for September 
#> Generating data for October 
#> Generating data for November 
#> Generating data for December 
  
# Average temperature per month across all cells
monthly_avg <- colMeans(m_temp$tavg)
barplot(monthly_avg, names.arg = month.abb,
          xlab = "Month", ylab = "Temperature (ºC)",
          main = "Average monthly temperature")