# pacu: Precision Agriculture Computational Utilities - Weather data

#### Caio dos Santos & Fernando Miguez

#### 2025-09-25

# Specific vignettes

1. Satellite data

2. Weather data

3. Yield monitor data

4. Frequently asked questions

# Weather data

## Obtaining weather data

There are several packages and utilities that allow for downloading weather data. Here we use the apsimx package. This package has simple wrappers that ‘get’ weather from different sources:

- Iowa Environmental Mesonet
- NASA-POWER (via nasapower package)
- DayMet (via daymetr package)
- CHIRPS (via chirps package)

For more details about getting and working with weather data see the apsimx package.

## Using apsimx and pacu packages

### Gathering and summarizing weather data

An alternative way of investigating the growing conditions experienced by crops in a given year would be to summarize the weather data and place it in a historical context. Let us download some weather data first.

    weather.met <- pa_get_weather_sf(area.of.interest, '1990-01-01', '2020-12-31')

We can make simple plots for precipitation or temperature. A filter is used to subset years 2017 to 2020 for easier interpretation.

    ## Precipitation (or rain)
    plot(weather.met, met.var = "rain", cumulative = TRUE,
         climatology = TRUE, years = 2017:2020)

    ## Temperature
    plot(weather.met, cumulative = TRUE,
         climatology = TRUE, years = 2017:2020)

There is a summary function for simple display of statistics

    ## Selecting just a few columns (1, 6, 7, 10) for simplicity
    summary(weather.met, years = 2017:2020)[, c(1, 6, 7, 10)]

    ##   year avg_maxt avg_mint rain_sum
    ## 1 2017    15.79     3.72   814.04
    ## 2 2018    14.01     2.81  1401.30
    ## 3 2019    13.75     2.17   998.94
    ## 4 2020    15.47     3.11   644.34

The apsimx package does not produce complex graphs for weather data. This was included here to allow more detailed interpretation of crop performance data for a given location. In the pacu package we include functions which can summarize data in a historical context.

    pa_plot(weather.met,
            plot.type = 'climate_normals',
            unit.system = 'int')

    pa_plot(weather.met,
            plot.type = 'monthly_distributions',
            unit.system = 'int', months = 5:10)