---
title: "weatherOz for SILO"
author: "Rodrigo Pires, Anna Hepworth, Rebecca O'Leary and Adam H. Sparks"
output:
rmarkdown::html_vignette:
toc: true
vignette: >
%\VignetteIndexEntry{weatherOz for SILO}
%\VignetteEngine{knitr::rmarkdown_notangle}
%\VignetteEncoding{UTF-8}
bibliography: bibliography.bib
---
## About SILO Data
[Queensland Scientific Information for Landowners (SILO)](https://www.longpaddock.qld.gov.au/silo/about/) data sets are constructed from observational records provided by the Bureau of Meteorology (BOM).
SILO interpolates the raw data to fill missing data creating data sets that are spatially and temporally complete [@Jeffrey2001].
## A Note on API Keys
All examples in this vignette assume that you have stored your API key in your .Renviron file.
See [Chapter 8](https://rstats.wtf/r-startup.html#renviron) in "What They Forgot to Teach You About R" by Bryan _et al._ for more on storing details in your .Renviron if you are unfamiliar.
## Working With SILO Data
Four functions are provided to streamline fetching data from the SILO API endpoints.
* `get_data_drill()`, which returns weather data from SILO's 0.05 x 0.05 degrees interpolated, gridded weather dataset;
* `get_patched_point()`, which returns weather data from a given BOM weather station (a point) in the SILO database where missing values are interpolated (patched);
* `get_data_drill_apsim()`, which returns data drill weather data in an {apsimx} `.met` class object with the weather data ready for use in APSIM; and
* `get_patched_point_apsim()`, which returns patched point weather data in an {apsimx} `.met` class object with the weather data ready for use in APSIM.
## Available Values
`get_data_drill()` and `get_patched_point()` both accept the following values.
`get_data_drill_apsim()` and `get_patched_point_apsim()` return a canned set of values for use in APSIM, because of this, they do not accept a `values` argument.
- all
- Which will return all of the following values
- max_temp (degrees C)
- Maximum temperature
- min_temp (degrees C)
- Minimum temperature
- vp (hPa)
- Vapour pressure
- vp_deficit (hPa)
- Vapour pressure deficit
- evap_pan (mm)
- Class A pan evaporation
- evap_syn (mm)
- Synthetic estimate [@Rayner2005]
- evap_comb (mm)
- Combination (synthetic estimate pre-1970, class A pan 1970 onwards)
- evap_morton_lake (mm)
- Morton's shallow lake evaporation
- radiation (Mj/m [@Morton1983])
- Solar exposure, consisting of both direct and diffuse components
- rh_tmax (%)
- Relative humidity at the time of maximum temperature
- rh_tmin (%)
- Relative humidity at the time of minimum temperature
- et_short_crop (mm)
- FAO56 [@Allen1998] short crop
- et_tall_crop (mm)
- ASCE [@Walter2000] tall crop [@Jeffrey2001]
- et_morton_actual (mm)
- Morton's areal actual evapotranspiration
- et_morton_potential (mm)
- Morton's point potential evapotranspiration
- et_morton_wet (mm)
- Morton's wet-environment areal potential evapotranspiration over land
- mslp (hPa)
- Mean sea level pressure
## Value Information
Solar radiation: total incoming downward shortwave radiation on a horizontal surface, derived from estimates of cloud oktas and sunshine duration [@Zajaczkowski2013].
Relative humidity: calculated using the vapour pressure measured at 9am, and the saturation vapour pressure computed using either the maximum or minimum temperature [@Jeffrey2001].
Evaporation and evapotranspiration: an overview of the variables provided by SILO is available as a [PDF](https://data.longpaddock.qld.gov.au/static/publications/Evapotranspiration_overview.pdf).
## Data Codes
Where possible (depending on the file format), the data are supplied with codes indicating how each datum was obtained.
- 0
- Official observation as supplied by the Bureau of Meteorology
- 15
- Deaccumulated rainfall (original observation was recorded over a period exceeding the standard 24 hour observation period)
- 25
- Interpolated from daily observations for that date
- 26
- Synthetic Class A pan evaporation, calculated from temperatures, radiation and vapour pressure
- 35
- Interpolated from daily observations using an anomaly interpolation method
- 75
- Interpolated from the long term averages of daily observations for that day of year
The data returned will include columns that denote the source of the data, whether it was an observation or interpolated.
## Getting Data Drill Interpolated Data
The `get_data_drill()` function fetches spatially interpolated data from SILO for any point in Australia.
Note that these data are not observations, but are interpolated surfaced derived by using either by splining or kriging the observational data.
The arguments required to use this function are minimal with few options.
The location as longitude and latitude, `longitude` and `latitude`, values must be provided along with the start date, `start_date` and the api key, `api_key` (your e-mail address).
### Example 1: Get Data Drill Data Using Defaults
Using coordinates for Southwood, Qld, get Data Drill data for all values available starting on 2022-01-01.
``` r
library(weatherOz)
(
southwood <- get_data_drill(
latitude = -27.85,
longitude = 150.05,
start_date = "20220101"
)
)
#> longitude latitude year month day date air_tmax air_tmax_source air_tmin air_tmin_source elev_m
#>
#> 1: 150.05 -27.85 2022 1 1 2022-01-01 29.7 25 18.8 25 254.5 m
#> 2: 150.05 -27.85 2022 1 2 2022-01-02 33.6 25 16.6 25 254.5 m
#> 3: 150.05 -27.85 2022 1 3 2022-01-03 35.7 25 18.1 25 254.5 m
#> 4: 150.05 -27.85 2022 1 4 2022-01-04 36.3 25 18.1 25 254.5 m
#> 5: 150.05 -27.85 2022 1 5 2022-01-05 36.4 25 20.3 25 254.5 m
#> ---
#> 1020: 150.05 -27.85 2024 10 16 2024-10-16 27.9 25 16.2 25 254.5 m
#> 1021: 150.05 -27.85 2024 10 17 2024-10-17 33.5 25 14.5 25 254.5 m
#> 1022: 150.05 -27.85 2024 10 18 2024-10-18 33.7 25 18.3 25 254.5 m
#> 1023: 150.05 -27.85 2024 10 19 2024-10-19 32.7 25 20.3 25 254.5 m
#> 1024: 150.05 -27.85 2024 10 20 2024-10-20 28.8 75 12.3 25 254.5 m
#> et_morton_actual et_morton_actual_source et_morton_potential et_morton_potential_source et_morton_wet
#>
#> 1: 4.3 26 7.2 26 5.7
#> 2: 6.2 26 9.6 26 7.9
#> 3: 4.3 26 11.5 26 7.9
#> 4: 5.1 26 11.1 26 8.1
#> 5: 5.0 26 10.9 26 8.0
#> ---
#> 1020: 1.8 26 5.9 26 3.8
#> 1021: 4.2 26 8.7 26 6.4
#> 1022: 2.6 26 7.7 26 5.1
#> 1023: 4.6 26 9.2 26 6.9
#> 1024: 3.7 26 6.4 26 5.1
#> et_morton_wet_source et_short_crop et_short_crop_source et_tall_crop et_tall_crop_source evap_comb
#>
#> 1: 26 5.2 26 6.3 26 5.0
#> 2: 26 7.0 26 8.6 26 9.2
#> 3: 26 7.7 26 9.9 26 8.1
#> 4: 26 7.7 26 9.7 26 8.6
#> 5: 26 7.5 26 9.4 26 6.3
#> ---
#> 1020: 26 4.1 26 5.3 26 5.5
#> 1021: 26 6.2 26 7.9 26 5.3
#> 1022: 26 5.3 26 6.9 26 4.4
#> 1023: 26 6.2 26 7.7 26 7.6
#> 1024: 26 4.8 26 6.0 26 6.7
#> evap_comb_source evap_morton_lake evap_morton_lake_source evap_pan evap_pan_source evap_syn evap_syn_source
#>
#> 1: 25 6.0 26 5.0 25 6.8 26
#> 2: 25 8.3 26 9.2 25 9.2 26
#> 3: 25 8.3 26 8.1 25 10.5 26
#> 4: 25 8.5 26 8.6 25 10.4 26
#> 5: 25 8.3 26 6.3 25 10.1 26
#> ---
#> 1020: 25 4.0 26 5.5 25 5.1 26
#> 1021: 25 6.7 26 5.3 25 7.9 26
#> 1022: 25 5.3 26 4.4 25 6.9 26
#> 1023: 25 7.1 26 7.6 25 7.4 26
#> 1024: 75 5.3 26 6.7 75 6.1 26
#> extracted mslp mslp_source radiation radiation_source rainfall rainfall_source rh_tmax rh_tmax_source
#>
#> 1: 2024-10-21 1011.8 25 22.6 42 54.9 25 48.0 26
#> 2: 2024-10-21 1008.5 25 31.3 42 0.1 25 36.3 26
#> 3: 2024-10-21 1005.1 25 31.3 42 0.0 25 26.5 26
#> 4: 2024-10-21 1005.1 25 31.3 42 0.0 25 29.1 26
#> 5: 2024-10-21 1005.5 25 29.8 42 0.0 25 32.3 26
#> ---
#> 1020: 2024-10-21 1018.4 25 15.7 42 0.6 25 43.6 26
#> 1021: 2024-10-21 1016.4 25 26.5 42 4.1 25 32.3 26
#> 1022: 2024-10-21 1014.7 25 19.3 42 0.0 25 37.1 26
#> 1023: 2024-10-21 1011.7 25 26.5 42 0.0 25 40.0 26
#> 1024: 2024-10-21 1016.1 25 22.5 25 0.0 25 39.9 26
#> rh_tmin rh_tmin_source vp vp_deficit vp_deficit_source vp_source
#>
#> 1: 92.2 26 20.0 15.6 26 25
#> 2: 100.0 26 18.9 22.0 26 25
#> 3: 74.7 26 15.5 30.2 26 25
#> 4: 84.8 26 17.6 29.3 26 25
#> 5: 82.3 26 19.6 29.0 26 25
#> ---
#> 1020: 89.1 26 16.4 15.2 26 25
#> 1021: 100.0 26 16.7 22.8 26 25
#> 1022: 92.3 26 19.4 22.7 26 25
#> 1023: 83.2 26 19.8 21.7 26 25
#> 1024: 100.0 26 15.8 15.3 26 25
```
### Example 2: Get Data Drill Temperature for a Specific Date Range
Using coordinates for Southwood, Qld, get Data Drill temperature data for January of 2023.
``` r
library(weatherOz)
(
southwood_temp <- get_data_drill(
latitude = -27.85,
longitude = 150.05,
start_date = "20230101",
end_date = "20230131",
values = c("max_temp", "min_temp")
)
)
#> longitude latitude year month day date air_tmax air_tmax_source air_tmin air_tmin_source elev_m
#>
#> 1: 150.05 -27.85 2023 1 1 2023-01-01 35.2 25 19.5 25 254.5 m
#> 2: 150.05 -27.85 2023 1 2 2023-01-02 35.3 25 19.6 25 254.5 m
#> 3: 150.05 -27.85 2023 1 3 2023-01-03 36.6 25 20.6 25 254.5 m
#> 4: 150.05 -27.85 2023 1 4 2023-01-04 39.1 25 20.9 25 254.5 m
#> 5: 150.05 -27.85 2023 1 5 2023-01-05 31.4 25 21.4 25 254.5 m
#> 6: 150.05 -27.85 2023 1 6 2023-01-06 34.4 25 16.4 25 254.5 m
#> 7: 150.05 -27.85 2023 1 7 2023-01-07 33.4 25 19.8 25 254.5 m
#> 8: 150.05 -27.85 2023 1 8 2023-01-08 35.8 25 18.4 25 254.5 m
#> 9: 150.05 -27.85 2023 1 9 2023-01-09 36.4 25 20.7 25 254.5 m
#> 10: 150.05 -27.85 2023 1 10 2023-01-10 38.0 25 21.9 25 254.5 m
#> 11: 150.05 -27.85 2023 1 11 2023-01-11 33.3 25 21.4 25 254.5 m
#> 12: 150.05 -27.85 2023 1 12 2023-01-12 34.2 25 20.8 25 254.5 m
#> 13: 150.05 -27.85 2023 1 13 2023-01-13 33.6 25 18.3 25 254.5 m
#> 14: 150.05 -27.85 2023 1 14 2023-01-14 32.2 25 18.6 25 254.5 m
#> 15: 150.05 -27.85 2023 1 15 2023-01-15 34.2 25 19.0 25 254.5 m
#> 16: 150.05 -27.85 2023 1 16 2023-01-16 33.7 25 19.7 25 254.5 m
#> 17: 150.05 -27.85 2023 1 17 2023-01-17 34.8 25 18.5 25 254.5 m
#> 18: 150.05 -27.85 2023 1 18 2023-01-18 34.4 25 18.1 25 254.5 m
#> 19: 150.05 -27.85 2023 1 19 2023-01-19 35.0 25 18.7 25 254.5 m
#> 20: 150.05 -27.85 2023 1 20 2023-01-20 33.4 25 20.6 25 254.5 m
#> 21: 150.05 -27.85 2023 1 21 2023-01-21 33.6 25 17.7 25 254.5 m
#> 22: 150.05 -27.85 2023 1 22 2023-01-22 33.3 25 20.0 25 254.5 m
#> 23: 150.05 -27.85 2023 1 23 2023-01-23 34.6 25 20.3 25 254.5 m
#> 24: 150.05 -27.85 2023 1 24 2023-01-24 35.1 25 20.4 25 254.5 m
#> 25: 150.05 -27.85 2023 1 25 2023-01-25 38.1 25 20.2 25 254.5 m
#> 26: 150.05 -27.85 2023 1 26 2023-01-26 38.7 25 21.3 25 254.5 m
#> 27: 150.05 -27.85 2023 1 27 2023-01-27 34.3 25 23.1 25 254.5 m
#> 28: 150.05 -27.85 2023 1 28 2023-01-28 36.7 25 18.5 25 254.5 m
#> 29: 150.05 -27.85 2023 1 29 2023-01-29 37.7 25 21.6 25 254.5 m
#> 30: 150.05 -27.85 2023 1 30 2023-01-30 37.1 25 24.7 25 254.5 m
#> 31: 150.05 -27.85 2023 1 31 2023-01-31 31.6 25 21.9 25 254.5 m
#> longitude latitude year month day date air_tmax air_tmax_source air_tmin air_tmin_source elev_m
#> extracted
#>
#> 1: 2024-10-21
#> 2: 2024-10-21
#> 3: 2024-10-21
#> 4: 2024-10-21
#> 5: 2024-10-21
#> 6: 2024-10-21
#> 7: 2024-10-21
#> 8: 2024-10-21
#> 9: 2024-10-21
#> 10: 2024-10-21
#> 11: 2024-10-21
#> 12: 2024-10-21
#> 13: 2024-10-21
#> 14: 2024-10-21
#> 15: 2024-10-21
#> 16: 2024-10-21
#> 17: 2024-10-21
#> 18: 2024-10-21
#> 19: 2024-10-21
#> 20: 2024-10-21
#> 21: 2024-10-21
#> 22: 2024-10-21
#> 23: 2024-10-21
#> 24: 2024-10-21
#> 25: 2024-10-21
#> 26: 2024-10-21
#> 27: 2024-10-21
#> 28: 2024-10-21
#> 29: 2024-10-21
#> 30: 2024-10-21
#> 31: 2024-10-21
#> extracted
```
### Example 3: Get Data Drill APSIM-ready Data
For APSIM users, SILO provides an endpoint that serves APSIM formatted data ready for use in this modelling framework.
The `get_data_drill_apsim()` function works just as `get_data_drill()`, it just returns an object that is an {[apsimx]} `met` class rather than a `data.table` and there is no need to specify values as those are predetermined by the API endpoint.
The [write_apsim_met()] function is reexported from [{apsimx}](https://cran.r-project.org/package=apsimx) for convenience in saving .met files.
``` r
library(weatherOz)
(
southwood_apsim <- get_data_drill_apsim(
latitude = -27.85,
longitude = 150.05,
start_date = "20230101",
end_date = "20231231"
)
)
#> weather.met.weather
#> site =
#> latitude = -27.85 (DECIMAL DEGREES)
#> longitude = 150.05 (DECIMAL DEGREES)
#> tav = 20.8006868131868 (oC) ! calculated annual average ambient temperature 2024-10-21 11:03:19.686466
#> amp = 14.85 !calculated with the apsimx R package: 2024-10-21 11:03:19.690253
#> year day radn maxt mint rain evap vp code
#> () () (MJ/m^2) (oC) (oC) (mm) (mm) (hPa) ()
#> year day radn maxt mint rain evap vp code
#> 1 2023 2 30.4 35.3 19.6 0.0 8.2 17.0 422222
#> 2 2023 3 22.7 36.6 20.6 0.0 6.1 18.2 422222
#> 3 2023 4 22.0 39.1 20.9 0.0 8.5 21.0 422222
#> 4 2023 5 12.1 31.4 21.4 3.6 6.5 18.1 422222
#> 5 2023 6 30.1 34.4 16.4 0.0 6.7 17.1 422222
#> 6 2023 7 27.6 33.4 19.8 0.0 5.7 15.7 422222
```
## Getting Patched Point Data
Patched Point data are derived from actual BOM station observations (PatchedPoint) data and may or may not be interpolated.
Be sure to note the `data_source` column to be sure.
The functions, `get_patched_point()` and `get_patched_point_apsim()` work exactly as their Data Drill counterparts except that they require a station code, `station_code`, rather than longitude and latitude values for the geographic location.
### Example 4: Get Data Drill Data Using Defaults
Using the station code for Wongan Hills, WA, get all values for June of 2021.
``` r
library(weatherOz)
(
wongan_hills <- get_patched_point(
station_code = "008137",
start_date = "20210601",
end_date = "20210630"
)
)
#> You have requested station observation data but some rows in this
#> dataset have data codes for interpolated data.
#> Check the 'data_source' columns and `get_patched_point()` or
#> `get_data_drill()` documentation for further details on codes and
#> references.
#> station_code station_name year month day date air_tmax air_tmax_source air_tmin air_tmin_source
#>
#> 1: 008137 Wongan Hills 2021 6 1 2021-06-01 15.0 0 5.5 0
#> 2: 008137 Wongan Hills 2021 6 2 2021-06-02 17.4 0 5.1 0
#> 3: 008137 Wongan Hills 2021 6 3 2021-06-03 18.6 0 5.9 0
#> 4: 008137 Wongan Hills 2021 6 4 2021-06-04 20.3 0 4.8 0
#> 5: 008137 Wongan Hills 2021 6 5 2021-06-05 20.5 0 4.6 0
#> 6: 008137 Wongan Hills 2021 6 6 2021-06-06 20.5 25 4.6 0
#> 7: 008137 Wongan Hills 2021 6 7 2021-06-07 15.8 25 5.4 25
#> 8: 008137 Wongan Hills 2021 6 8 2021-06-08 16.3 0 4.8 25
#> 9: 008137 Wongan Hills 2021 6 9 2021-06-09 18.2 0 7.2 0
#> 10: 008137 Wongan Hills 2021 6 10 2021-06-10 17.9 0 9.9 0
#> 11: 008137 Wongan Hills 2021 6 11 2021-06-11 18.5 0 9.8 0
#> 12: 008137 Wongan Hills 2021 6 12 2021-06-12 18.5 0 11.3 0
#> 13: 008137 Wongan Hills 2021 6 13 2021-06-13 19.2 0 6.7 0
#> 14: 008137 Wongan Hills 2021 6 14 2021-06-14 17.7 0 9.5 25
#> 15: 008137 Wongan Hills 2021 6 15 2021-06-15 15.1 0 5.2 0
#> 16: 008137 Wongan Hills 2021 6 16 2021-06-16 17.4 0 5.2 0
#> 17: 008137 Wongan Hills 2021 6 17 2021-06-17 16.0 0 4.9 0
#> 18: 008137 Wongan Hills 2021 6 18 2021-06-18 17.3 0 3.5 0
#> 19: 008137 Wongan Hills 2021 6 19 2021-06-19 17.7 0 3.4 0
#> 20: 008137 Wongan Hills 2021 6 20 2021-06-20 12.1 0 6.0 0
#> elev_m et_morton_actual et_morton_actual_source et_morton_potential et_morton_potential_source et_morton_wet
#>
#> 1: 283.0 m 1.0 26 1.0 26 1.0
#> 2: 283.0 m 1.7 26 1.9 26 1.8
#> 3: 283.0 m 1.2 26 2.5 26 1.9
#> 4: 283.0 m 1.1 26 2.8 26 1.9
#> 5: 283.0 m 1.2 26 2.6 26 1.9
#> 6: 283.0 m 1.4 26 2.4 26 1.9
#> 7: 283.0 m 1.5 26 1.9 26 1.7
#> 8: 283.0 m 0.6 26 2.4 26 1.5
#> 9: 283.0 m 0.2 26 1.7 26 0.9
#> 10: 283.0 m 1.0 26 1.0 26 1.0
#> 11: 283.0 m 1.9 26 1.9 26 1.9
#> 12: 283.0 m 1.5 26 2.0 26 1.8
#> 13: 283.0 m 1.1 26 2.4 26 1.8
#> 14: 283.0 m 1.4 26 1.4 26 1.4
#> 15: 283.0 m 1.1 26 1.2 26 1.2
#> 16: 283.0 m 0.9 26 1.9 26 1.4
#> 17: 283.0 m 1.1 26 1.5 26 1.3
#> 18: 283.0 m 1.2 26 2.3 26 1.7
#> 19: 283.0 m 0.6 26 2.8 26 1.7
#> 20: 283.0 m 0.9 26 0.9 26 0.9
#> et_morton_wet_source et_short_crop et_short_crop_source et_tall_crop et_tall_crop_source evap_comb
#>
#> 1: 26 1.0 26 1.2 26 1.7
#> 2: 26 1.4 26 1.8 26 1.3
#> 3: 26 1.7 26 2.3 26 1.6
#> 4: 26 1.9 26 2.7 26 1.9
#> 5: 26 1.9 26 2.6 26 2.4
#> 6: 26 1.8 26 2.4 26 1.4
#> 7: 26 1.3 26 1.7 26 2.6
#> 8: 26 1.7 26 2.4 26 3.4
#> 9: 26 2.0 26 3.1 26 2.2
#> 10: 26 0.7 26 0.7 26 1.0
#> 11: 26 1.3 26 1.6 26 1.2
#> 12: 26 1.4 26 1.8 26 1.6
#> 13: 26 1.6 26 2.3 26 2.3
#> 14: 26 1.1 26 1.3 26 2.5
#> 15: 26 1.1 26 1.4 26 1.3
#> 16: 26 1.4 26 2.0 26 1.8
#> 17: 26 1.2 26 1.6 26 2.5
#> 18: 26 1.5 26 2.1 26 1.9
#> 19: 26 1.8 26 2.6 26 1.6
#> 20: 26 0.8 26 1.0 26 1.6
#> evap_comb_source evap_morton_lake evap_morton_lake_source evap_pan evap_pan_source evap_syn evap_syn_source
#>
#> 1: 25 1.0 26 1.7 25 1.7 26
#> 2: 25 1.8 26 1.3 25 2.0 26
#> 3: 25 1.9 26 1.6 25 2.2 26
#> 4: 25 1.9 26 1.9 25 2.5 26
#> 5: 25 1.9 26 2.4 25 2.4 26
#> 6: 25 1.9 26 1.4 25 2.4 26
#> 7: 25 1.7 26 2.6 25 2.0 26
#> 8: 25 1.5 26 3.4 25 2.2 26
#> 9: 25 1.0 26 2.2 25 2.5 26
#> 10: 25 0.9 26 1.0 25 1.5 26
#> 11: 25 1.9 26 1.2 25 1.9 26
#> 12: 25 1.8 26 1.6 25 1.9 26
#> 13: 25 1.8 26 2.3 25 2.2 26
#> 14: 25 1.4 26 2.5 25 1.8 26
#> 15: 25 1.2 26 1.3 25 1.8 26
#> 16: 25 1.4 26 1.8 25 2.1 26
#> 17: 25 1.3 26 2.5 25 1.9 26
#> 18: 25 1.7 26 1.9 25 2.2 26
#> 19: 25 1.7 26 1.6 25 2.3 26
#> 20: 25 0.9 26 1.6 25 1.6 26
#> extracted latitude longitude mslp mslp_source radiation radiation_source rainfall rainfall_source rh_tmax
#>
#> 1: 2024-10-21 -30.8917 116.7186 1022.6 0 8.9 42 0.0 0 68.1
#> 2: 2024-10-21 -30.8917 116.7186 1026.5 0 12.4 42 0.0 0 57.9
#> 3: 2024-10-21 -30.8917 116.7186 1028.6 0 12.5 42 0.0 0 50.9
#> 4: 2024-10-21 -30.8917 116.7186 1027.2 0 12.7 42 0.0 0 44.9
#> 5: 2024-10-21 -30.8917 116.7186 1023.8 0 12.6 42 0.0 0 45.6
#> 6: 2024-10-21 -30.8917 116.7186 1020.1 0 12.6 42 0.0 0 48.1
#> 7: 2024-10-21 -30.8917 116.7186 1027.6 25 12.3 42 0.0 0 59.6
#> 8: 2024-10-21 -30.8917 116.7186 1026.9 0 11.0 42 0.0 0 47.0
#> 9: 2024-10-21 -30.8917 116.7186 1015.0 0 7.1 42 0.0 0 39.3
#> 10: 2024-10-21 -30.8917 116.7186 1010.2 0 6.8 42 1.2 0 81.5
#> 11: 2024-10-21 -30.8917 116.7186 1013.8 0 12.0 42 3.4 0 68.1
#> 12: 2024-10-21 -30.8917 116.7186 1014.6 0 11.3 42 2.4 0 67.7
#> 13: 2024-10-21 -30.8917 116.7186 1019.5 0 12.0 42 0.2 0 52.2
#> 14: 2024-10-21 -30.8917 116.7186 1018.0 0 9.4 42 0.4 0 70.6
#> 15: 2024-10-21 -30.8917 116.7186 1021.5 0 9.2 42 0.0 0 63.5
#> 16: 2024-10-21 -30.8917 116.7186 1026.8 0 10.3 42 0.2 0 53.9
#> 17: 2024-10-21 -30.8917 116.7186 1031.7 0 9.9 42 0.0 0 58.9
#> 18: 2024-10-21 -30.8917 116.7186 1030.1 0 12.3 42 0.0 0 49.7
#> 19: 2024-10-21 -30.8917 116.7186 1024.9 0 12.2 42 0.0 0 43.5
#> 20: 2024-10-21 -30.8917 116.7186 1016.4 0 4.6 42 0.0 0 73.0
#> rh_tmax_source rh_tmin rh_tmin_source vp vp_deficit vp_deficit_source vp_source
#>
#> 1: 26 100.0 26 11.6 3.0 26 0
#> 2: 26 100.0 26 11.5 4.8 26 0
#> 3: 26 100.0 26 10.9 6.6 26 0
#> 4: 26 100.0 26 10.7 8.0 26 0
#> 5: 26 100.0 26 11.0 7.8 26 0
#> 6: 26 100.0 26 11.6 7.2 26 0
#> 7: 26 100.0 26 10.7 4.5 26 25
#> 8: 26 100.0 26 8.7 6.7 26 0
#> 9: 26 80.8 26 8.2 9.3 26 0
#> 10: 26 100.0 26 16.7 1.4 26 0
#> 11: 26 100.0 26 14.5 4.1 26 0
#> 12: 26 100.0 26 14.4 4.6 26 0
#> 13: 26 100.0 26 11.6 6.7 26 0
#> 14: 26 100.0 26 14.3 3.5 26 0
#> 15: 26 100.0 26 10.9 3.7 26 0
#> 16: 26 100.0 26 10.7 5.6 26 0
#> 17: 26 100.0 26 10.7 4.5 26 0
#> 18: 26 100.0 26 9.8 6.0 26 0
#> 19: 26 100.0 26 8.8 7.3 26 0
#> 20: 26 100.0 26 10.3 2.5 26 0
#> [ reached getOption("max.print") -- omitted 11 rows ]
```
## Working With SILO Metadata
Two functions are provided to assist in fetching metadata about the stations.
* `find_nearby_stations()`, which returns a `data.table` with the nearest weather stations to a given geographic point or known station either in the DPIRD or BOM (from SILO) networks.
* `get_stations_metadata()`, which returns a `data.table` with the latest and most up-to-date information available from the Weather 2.0 API on the stations' geographic locations, hardware details, *e.g.,* wind mast height, and recording capabilities.
### Finding Nearby Stations
Functions for searching metadata in the SILO network do not require an API key except where you may also interact with the DPIRD API.
### Example 5: Finding Stations Nearby a Known Station
Query stations and return BOM's stations nearest to the DPIRD Northam, WA station, "NO", returning stations with 50 km of this station.
This requires a DPIRD API key as we're using that station as the starting point.
``` r
library(weatherOz)
(
wa_stn <- find_nearby_stations(
station_code = "010111",
distance_km = 50,
which_api = "silo"
)
)
#> station_code station_name longitude latitude state elev_m owner distance_km
#>
#> 1: 010111 Northam 116.6586 -31.6508 WA 170 BOM 0.0
#> 2: 010152 Muresk Institute 116.6833 -31.7500 WA 166 BOM 10.2
#> 3: 010150 Grass Valley 116.7969 -31.6358 WA 200 BOM 13.9
#> 4: 010125 Toodyay 116.4703 -31.5517 WA 140 BOM 21.3
#> 5: 010244 Bakers Hill 116.4561 -31.7469 WA 330 BOM 22.4
#> 6: 010115 Quellington 116.8647 -31.7714 WA 220 BOM 23.9
#> 7: 010311 York 116.7650 -31.8997 WA 179 BOM 27.1
#> 8: 010023 Warradong Farm 116.9411 -31.5003 WA 240 BOM 32.0
#> 9: 010091 Meckering 117.0081 -31.6322 WA 195 BOM 35.0
#> 10: 010138 Wooroloo 116.3413 -31.8150 WA 277 BOM 35.7
#> 11: 010134 Wattening 116.5150 -31.3119 WA 240 BOM 36.8
#> 12: 010058 Goomalling 116.8269 -31.2994 WA 239 BOM 39.0
#> 13: 010009 Bolgart 116.5092 -31.2744 WA 240 BOM 40.5
#> 14: 010165 Green Hills 116.9839 -31.9408 WA 244 BOM 43.6
#> 15: 009007 Chidlow 116.2658 -31.8622 WA 300 BOM 44.6
#> 16: 009066 Gidgegannup 116.1976 -31.7906 WA 290 BOM 48.2
#> 17: 010163 Jaroma 117.1433 -31.7706 WA 265 BOM 49.9
#> 18: 010160 Quella Park 117.1194 -31.4533 WA 265 BOM 50.1
#> 19: 010120 Doodenanning 117.0986 -31.9092 WA 290 BOM 51.0
#> 20: 010795 Avondale Farm 116.8678 -32.1178 WA 200 BOM 51.2
#> 21: 010515 Beverley 116.9247 -32.1083 WA 199 BOM 52.9
#> 22: 009031 Mundaring Weir 116.1642 -31.9564 WA 190 BOM 58.1
#> 23: 010042 Dowerin 117.0311 -31.1936 WA 273 BOM 59.0
#> 24: 010000 Amery Acres 117.0736 -31.1683 WA 340 BOM 63.6
#> station_code station_name longitude latitude state elev_m owner distance_km
```
### Example 6: Finding Stations Nearby a Given Longitude and Latitude
Using the longitude and latitude for Northam, WA, find only BOM stations within a 50km radius of this geographic point.
``` r
library(weatherOz)
(
wa_stn_lonlat <- find_nearby_stations(
longitude = 116.6620,
latitude = -31.6540,
distance_km = 50,
which_api = "silo"
)
)
#> station_code station_name longitude latitude state elev_m owner distance_km
#>
#> 1: 010111 Northam 116.6586 -31.6508 WA 170 BOM 0.479696
#> 2: 010152 Muresk Institute 116.6833 -31.7500 WA 166 BOM 10.861214
#> 3: 010150 Grass Valley 116.7969 -31.6358 WA 200 BOM 12.927642
#> 4: 010125 Toodyay 116.4703 -31.5517 WA 140 BOM 21.421152
#> 5: 010244 Bakers Hill 116.4561 -31.7469 WA 330 BOM 22.045764
#> 6: 010115 Quellington 116.8647 -31.7714 WA 220 BOM 23.192674
#> 7: 010311 York 116.7650 -31.8997 WA 179 BOM 28.998370
#> 8: 010023 Warradong Farm 116.9411 -31.5003 WA 240 BOM 31.477722
#> 9: 010091 Meckering 117.0081 -31.6322 WA 195 BOM 32.848599
#> 10: 010138 Wooroloo 116.3413 -31.8150 WA 277 BOM 35.213369
#> 11: 010134 Wattening 116.5150 -31.3119 WA 240 BOM 40.506038
#> 12: 010058 Goomalling 116.8269 -31.2994 WA 239 BOM 42.409889
#> 13: 009007 Chidlow 116.2658 -31.8622 WA 300 BOM 44.029617
#> 14: 010165 Green Hills 116.9839 -31.9408 WA 244 BOM 44.066701
#> 15: 010009 Bolgart 116.5092 -31.2744 WA 240 BOM 44.620097
#> 16: 009066 Gidgegannup 116.1976 -31.7906 WA 290 BOM 46.470370
#> 17: 010163 Jaroma 117.1433 -31.7706 WA 265 BOM 47.331752
#> 18: 010160 Quella Park 117.1194 -31.4533 WA 265 BOM 48.742243
```
### Example 7: Finding Stations in Both the DPIRD and SILO Data Sets
Query stations nearest BOM's Northam, WA station, "010111" and return both DPIRD and SILO/BOM stations within 50 km of this station.
Note the use of an API key for the DPIRD network and that `which_api` is set to "all".
``` r
library(weatherOz)
(
wa_stn_all <- find_nearby_stations(
station_code = "010111",
distance_km = 50,
which_api = "all"
)
)
#> station_code station_name longitude latitude state elev_m
#>
#> 1: 010111 Northam 116.6586 -31.65080 WA 170
#> 2: NO Northam 116.6942 -31.65161 WA 163
#> 3: MK Muresk 116.6913 -31.72772 WA 251
#> 4: 010152 Muresk Institute 116.6833 -31.75000 WA 166
#> 5: 010150 Grass Valley 116.7969 -31.63580 WA 200
#> 6: 010125 Toodyay 116.4703 -31.55170 WA 140
#> 7: 010244 Bakers Hill 116.4561 -31.74690 WA 330
#> 8: 010115 Quellington 116.8647 -31.77140 WA 220
#> 9: 010311 York 116.7650 -31.89970 WA 179
#> 10: BTSB DFES-B Talbot West 116.6898 -31.96060 WA 352
#> 11: 010023 Warradong Farm 116.9411 -31.50030 WA 240
#> 12: YE001 York East 116.9211 -31.83588 WA 229
#> 13: 010091 Meckering 117.0081 -31.63220 WA 195
#> 14: 010138 Wooroloo 116.3413 -31.81500 WA 277
#> 15: 010134 Wattening 116.5150 -31.31190 WA 240
#> 16: 010058 Goomalling 116.8269 -31.29940 WA 239
#> 17: 010009 Bolgart 116.5092 -31.27440 WA 240
#> 18: 010165 Green Hills 116.9839 -31.94080 WA 244
#> 19: 009007 Chidlow 116.2658 -31.86220 WA 300
#> 20: 009066 Gidgegannup 116.1976 -31.79060 WA 290
#> 21: 010163 Jaroma 117.1433 -31.77060 WA 265
#> 22: 010160 Quella Park 117.1194 -31.45330 WA 265
#> 23: 010120 Doodenanning 117.0986 -31.90920 WA 290
#> 24: 010795 Avondale Farm 116.8678 -32.11780 WA 200
#> 25: 010515 Beverley 116.9247 -32.10830 WA 199
#> 26: 009031 Mundaring Weir 116.1642 -31.95640 WA 190
#> 27: 010042 Dowerin 117.0311 -31.19360 WA 273
#> 28: 010000 Amery Acres 117.0736 -31.16830 WA 340
#> station_code station_name longitude latitude state elev_m
#> owner distance_km
#>
#> 1: BOM 0.00
#> 2: WA Department of Primary Industries and Regional Development (DPIRD) 3.56
#> 3: WA Department of Primary Industries and Regional Development (DPIRD) 8.36
#> 4: BOM 10.20
#> 5: BOM 13.90
#> 6: BOM 21.30
#> 7: BOM 22.40
#> 8: BOM 23.90
#> 9: BOM 27.10
#> 10: WA Department of Fire and Emergency Services (DFES) 31.14
#> 11: BOM 32.00
#> 12: WA Department of Primary Industries and Regional Development (DPIRD) 32.12
#> 13: BOM 35.00
#> 14: BOM 35.70
#> 15: BOM 36.80
#> 16: BOM 39.00
#> 17: BOM 40.50
#> 18: BOM 43.60
#> 19: BOM 44.60
#> 20: BOM 48.20
#> 21: BOM 49.90
#> 22: BOM 50.10
#> 23: BOM 51.00
#> 24: BOM 51.20
#> 25: BOM 52.90
#> 26: BOM 58.10
#> 27: BOM 59.00
#> 28: BOM 63.60
#> owner distance_km
```
### Example 8: Finding Stations in a Bounding Box for Melbourne
Using a (generous) bounding box for Melbourne, VIC using only the SILO API for BOM stations, no API key is needed.
``` r
bbox <- find_stations_in(
x = c(144.470215, -38.160476, 145.612793, -37.622934),
which_api = "SILO",
include_closed = TRUE
)
bbox
#> station_code station_name start end latitude longitude state elev_m
#>
#> 1: 087131 Altona City Offices Operations Centre 1967-01-01 2024-10-21 -37.8634 144.8262 VIC 3.0
#> 2: 086147 Aspendale Csiro 1954-01-01 1985-01-01 -38.0333 145.1000 VIC 5.0
#> 3: 087113 Avalon Airport 1965-01-01 2024-10-21 -38.0288 144.4783 VIC 10.6
#> 4: 086002 Balwyn North 1922-01-01 1969-01-01 -37.8000 145.0500 VIC NA
#> 5: 086029 Beaconsfield 2 1926-01-01 1975-01-01 -38.0000 145.4167 VIC 213.4
#> ---
#> 106: 087066 Werribee Post Office 1901-01-01 1966-01-01 -37.9000 144.6667 VIC 23.5
#> 107: 087150 Werribee Racecourse 1958-01-01 2024-10-21 -37.9043 144.6427 VIC 20.0
#> 108: 087065 Werribee Research Farm 1913-01-01 1980-01-01 -37.9000 144.6833 VIC 24.0
#> 109: 086129 Woori Yallock 1901-01-01 1986-01-01 -37.8000 145.5167 VIC 99.0
#> 110: 086132 Yarra River Yarra Glen 1890-01-01 1974-01-01 -37.6647 145.3761 VIC 88.0
#> source status wmo
#>
#> 1: Bureau of Meteorology (BOM) open NA
#> 2: Bureau of Meteorology (BOM) closed NA
#> 3: Bureau of Meteorology (BOM) open 94854
#> 4: Bureau of Meteorology (BOM) closed NA
#> 5: Bureau of Meteorology (BOM) closed NA
#> ---
#> 106: Bureau of Meteorology (BOM) closed NA
#> 107: Bureau of Meteorology (BOM) open NA
#> 108: Bureau of Meteorology (BOM) closed NA
#> 109: Bureau of Meteorology (BOM) closed NA
#> 110: Bureau of Meteorology (BOM) closed NA
```
### Example 9: Finding the Station Nearest the Centroid of a Bounding Box
Using the same bounding box but only find a single open station nearest the centroid of the bounding box.
This will return a single value in this case as there is only one polygon.
For queries where the polygon has 'n' parts, 'n' results will be returned.
``` r
centroid <- find_stations_in(
x = c(144.470215, -38.160476, 145.612793, -37.622934),
which_api = "SILO",
include_closed = FALSE,
centroid = TRUE
)
centroid
#> station_code station_name start end latitude longitude state elev_m
#>
#> 1: 086018 Caulfield Racecourse 1887-01-01 2024-10-21 -37.8795 145.0368 VIC 48.8
#> source status wmo
#>
#> 1: Bureau of Meteorology (BOM) open NA
```
### Getting Station Metadata for the SILO Network Stations
The `get_stations_metadata()` function is shared with the DPIRD functions as well, so this function will retrieve data from both weather APIs.
Shown here is how to use it for SILO data only.
### Example 10: Get SILO Station Metadata
The `get_stations_metadata()` function allows you to get details about the stations themselves for stations in the DPIRD and SILO (BOM) networks in one function.
Here we demonstrate how to get the metadata for the SILO stations only.
``` r
library(weatherOz)
(metadata <- get_stations_metadata(which_api = "silo"))
#> station_code station_name start end latitude longitude state elev_m
#>
#> 1: 061065 Aberdeen Rossgole 1926-01-01 2024-10-21 -32.1402 150.7285 NSW 543
#> 2: 071000 Adaminaby Alpine Tourist Park 1886-01-01 2024-10-21 -35.9962 148.7693 NSW 1015
#> 3: 068000 Albion Park Post Office 1892-01-01 2024-10-21 -34.5712 150.7761 NSW 8
#> 4: 068241 Albion Park Shellharbour Airport 1999-01-01 2024-10-21 -34.5639 150.7924 NSW 8
#> 5: 072146 Albury Airport 1973-01-01 2024-10-21 -36.0694 146.9531 NSW 165
#> ---
#> 3658: 008146 Ytiniche 1913-01-01 2024-10-21 -30.0706 116.2092 WA 300
#> 3659: 007096 Yuin 1898-01-01 2024-10-21 -27.9808 116.0347 WA 300
#> 3660: 012092 Yuinmery 1921-01-01 2024-10-21 -28.5606 119.0161 WA 500
#> 3661: 002030 Yulmbu 1950-01-01 2024-10-21 -17.2986 126.9158 WA 450
#> 3662: 008147 Yuna 1909-01-01 2024-10-21 -28.3250 114.9589 WA 270
#> source status wmo
#>
#> 1: Bureau of Meteorology (BOM) open NA
#> 2: Bureau of Meteorology (BOM) open NA
#> 3: Bureau of Meteorology (BOM) open NA
#> 4: Bureau of Meteorology (BOM) open 95748
#> 5: Bureau of Meteorology (BOM) open NA
#> ---
#> 3658: Bureau of Meteorology (BOM) open NA
#> 3659: Bureau of Meteorology (BOM) open NA
#> 3660: Bureau of Meteorology (BOM) open NA
#> 3661: Bureau of Meteorology (BOM) open NA
#> 3662: Bureau of Meteorology (BOM) open NA
```
### Using Metadata to Get Weather Data for a Whole State
Using the metadata, we can get all weather data from stations in a single state like so.
``` r
library(weatherOz)
library(data.table)
#> data.table 1.16.2 using 7 threads (see ?getDTthreads). Latest news: r-datatable.com
#>
#> Attaching package: 'data.table'
#>
#> The following objects are masked from 'package:dplyr':
#>
#> between, first, last
metadata <- get_stations_metadata(which_api = "silo")
# Subset to the required state
metadata_wa <- subset(metadata, state == "WA")
# Select first 10 to demo
first_ten <- as.list(as.character(metadata_wa$station_code))[1:10]
# Loop through each station_code and give proper names
# We've wrapped it in `suppressMessages()` to keep the output a bit quieter
# as most of the data have interpolated values in them that will repeat for
# every set.
suppressMessages(
x <-
lapply(
X = first_ten,
FUN = get_patched_point,
start_date = "20001201",
end_date = "20001205",
values = "all"
)
)
names(x) <- unlist(first_ten)
# Create dataset with station_code column id
rbindlist(x, idcol = "station_code")
#> station_code station_code station_name year month day date air_tmax air_tmax_source air_tmin
#>
#> 1: 009804 009804 Adina 2000 12 1 2000-12-01 35.1 25 11.5
#> 2: 009804 009804 Adina 2000 12 2 2000-12-02 21.0 25 15.3
#> 3: 009804 009804 Adina 2000 12 3 2000-12-03 26.5 25 8.5
#> 4: 009804 009804 Adina 2000 12 4 2000-12-04 23.0 25 13.0
#> 5: 009804 009804 Adina 2000 12 5 2000-12-05 23.5 25 15.2
#> 6: 008000 008000 Ajana 2000 12 1 2000-12-01 32.6 25 14.6
#> 7: 008000 008000 Ajana 2000 12 2 2000-12-02 30.4 25 15.6
#> 8: 008000 008000 Ajana 2000 12 3 2000-12-03 35.6 25 16.0
#> 9: 008000 008000 Ajana 2000 12 4 2000-12-04 33.0 25 16.8
#> 10: 008000 008000 Ajana 2000 12 5 2000-12-05 33.4 25 17.0
#> 11: 009500 009500 Albany 2000 12 1 2000-12-01 24.3 25 8.5
#> 12: 009500 009500 Albany 2000 12 2 2000-12-02 19.8 25 12.0
#> 13: 009500 009500 Albany 2000 12 3 2000-12-03 28.9 25 8.6
#> 14: 009500 009500 Albany 2000 12 4 2000-12-04 18.0 25 12.5
#> 15: 009500 009500 Albany 2000 12 5 2000-12-05 21.3 25 13.4
#> 16: 012001 012001 Albion Downs 2000 12 1 2000-12-01 39.3 25 22.0
#> 17: 012001 012001 Albion Downs 2000 12 2 2000-12-02 35.3 25 21.9
#> 18: 012001 012001 Albion Downs 2000 12 3 2000-12-03 35.3 25 20.1
#> 19: 012001 012001 Albion Downs 2000 12 4 2000-12-04 40.2 25 22.9
#> 20: 012001 012001 Albion Downs 2000 12 5 2000-12-05 42.1 25 20.5
#> air_tmin_source elev_m et_morton_actual et_morton_actual_source et_morton_potential
#>
#> 1: 25 60.0 m 3.3 26 11.2
#> 2: 25 60.0 m 5.5 26 8.9
#> 3: 25 60.0 m 4.8 26 9.4
#> 4: 25 60.0 m 5.6 26 6.8
#> 5: 25 60.0 m 3.9 26 7.6
#> 6: 25 210.0 m 4.3 26 9.6
#> 7: 25 210.0 m 2.7 26 10.9
#> 8: 25 210.0 m 1.4 26 12.6
#> 9: 25 210.0 m 1.9 26 11.7
#> 10: 25 210.0 m 0.7 26 8.4
#> 11: 25 3.0 m 7.0 26 7.7
#> 12: 25 3.0 m 5.0 26 7.2
#> 13: 25 3.0 m 5.5 26 9.3
#> 14: 25 3.0 m 3.2 26 3.2
#> 15: 25 3.0 m 3.4 26 6.9
#> 16: 25 500.0 m 0.8 26 14.3
#> 17: 25 500.0 m 1.1 26 13.6
#> 18: 25 500.0 m 0.6 26 13.9
#> 19: 25 500.0 m 0.2 26 15.4
#> 20: 25 500.0 m 0.0 26 14.4
#> et_morton_potential_source et_morton_wet et_morton_wet_source et_short_crop et_short_crop_source et_tall_crop
#>
#> 1: 26 7.3 26 7.7 26 10.2
#> 2: 26 7.2 26 5.7 26 6.9
#> 3: 26 7.1 26 6.3 26 8.1
#> 4: 26 6.2 26 4.9 26 5.7
#> 5: 26 5.7 26 5.1 26 6.3
#> 6: 26 7.0 26 7.2 26 9.0
#> 7: 26 6.8 26 7.4 26 9.5
#> 8: 26 7.0 26 8.2 26 11.0
#> 9: 26 6.8 26 7.7 26 10.1
#> 10: 26 4.5 26 5.9 26 7.9
#> 11: 26 7.3 26 5.5 26 6.5
#> 12: 26 6.1 26 4.9 26 5.8
#> 13: 26 7.4 26 6.6 26 8.3
#> 14: 26 3.2 26 2.2 26 2.4
#> 15: 26 5.1 26 4.7 26 5.8
#> 16: 26 7.5 26 8.8 26 11.7
#> 17: 26 7.4 26 8.3 26 10.9
#> 18: 26 7.2 26 8.4 26 11.2
#> 19: 26 7.8 26 9.1 26 12.2
#> 20: 26 7.2 26 9.1 26 12.7
#> et_tall_crop_source evap_comb evap_comb_source evap_morton_lake evap_morton_lake_source evap_pan
#>
#> 1: 26 10.0 25 7.5 26 10.0
#> 2: 26 7.4 25 7.4 26 7.4
#> 3: 26 6.6 25 7.3 26 6.6
#> 4: 26 8.7 25 6.4 26 8.7
#> 5: 26 7.7 25 5.9 26 7.7
#> 6: 26 10.8 25 8.2 26 10.8
#> 7: 26 11.4 25 8.0 26 11.4
#> 8: 26 10.7 25 8.2 26 10.7
#> 9: 26 10.0 25 8.0 26 10.0
#> 10: 26 9.7 25 5.2 26 9.7
#> 11: 26 8.0 25 7.6 26 8.0
#> 12: 26 6.0 25 6.3 26 6.0
#> 13: 26 6.7 25 7.6 26 6.7
#> 14: 26 5.1 25 3.2 26 5.1
#> 15: 26 7.4 25 5.3 26 7.4
#> 16: 26 14.3 25 8.7 26 14.3
#> 17: 26 15.4 25 8.6 26 15.4
#> 18: 26 13.6 25 8.5 26 13.6
#> 19: 26 14.0 25 9.0 26 14.0
#> 20: 26 14.9 25 8.4 26 14.9
#> evap_pan_source evap_syn evap_syn_source extracted latitude longitude mslp mslp_source radiation
#>
#> 1: 25 10.0 26 2024-10-21 -33.8811 122.2167 1014.7 25 30.9
#> 2: 25 7.7 26 2024-10-21 -33.8811 122.2167 1018.0 25 32.6
#> 3: 25 8.6 26 2024-10-21 -33.8811 122.2167 1020.4 25 33.1
#> 4: 25 7.0 26 2024-10-21 -33.8811 122.2167 1016.8 25 28.2
#> 5: 25 7.0 26 2024-10-21 -33.8811 122.2167 1021.4 25 25.8
#> 6: 25 10.6 26 2024-10-21 -27.9607 114.6336 1009.4 25 32.4
#> 7: 25 10.8 26 2024-10-21 -27.9607 114.6336 1015.9 25 33.1
#> 8: 25 12.2 26 2024-10-21 -27.9607 114.6336 1012.8 25 32.7
#> 9: 25 11.3 26 2024-10-21 -27.9607 114.6336 1010.5 25 32.3
#> 10: 25 9.4 26 2024-10-21 -27.9607 114.6336 1009.5 25 19.6
#> 11: 25 7.5 26 2024-10-21 -35.0289 117.8808 1012.7 25 33.5
#> 12: 25 6.5 26 2024-10-21 -35.0289 117.8808 1020.1 25 29.3
#> 13: 25 8.4 26 2024-10-21 -35.0289 117.8808 1019.1 25 33.2
#> 14: 25 3.4 26 2024-10-21 -35.0289 117.8808 1018.7 25 12.7
#> 15: 25 6.0 26 2024-10-21 -35.0289 117.8808 1020.4 25 24.3
#> 16: 25 15.3 26 2024-10-21 -27.2878 120.3919 1010.7 25 31.9
#> 17: 25 14.3 26 2024-10-21 -27.2878 120.3919 1009.3 25 32.5
#> 18: 25 14.5 26 2024-10-21 -27.2878 120.3919 1014.0 25 32.9
#> 19: 25 16.0 26 2024-10-21 -27.2878 120.3919 1009.3 25 32.8
#> 20: 25 16.6 26 2024-10-21 -27.2878 120.3919 1008.9 25 31.2
#> radiation_source rainfall rainfall_source rh_tmax rh_tmax_source rh_tmin rh_tmin_source vp vp_deficit
#>
#> 1: 42 0.0 0 18.6 26 77.4 26 10.5 30.0
#> 2: 42 0.2 0 44.3 26 63.3 26 11.0 11.8
#> 3: 42 0.0 0 25.7 26 80.2 26 8.9 17.5
#> 4: 42 0.0 0 50.9 26 95.5 26 14.3 9.8
#> 5: 42 0.0 0 43.9 26 73.6 26 12.7 12.8
#> 6: 42 0.0 0 29.7 26 87.9 26 14.6 23.4
#> 7: 42 0.0 0 22.8 26 55.9 26 9.9 25.1
#> 8: 42 0.0 0 15.3 26 49.0 26 8.9 35.3
#> 9: 42 0.0 0 19.7 26 51.8 26 9.9 30.0
#> 10: 42 0.0 0 28.2 26 74.9 26 14.5 26.3
#> 11: 42 0.0 0 41.5 26 100.0 26 12.6 11.3
#> 12: 42 0.0 0 47.7 26 78.5 26 11.0 9.4
#> 13: 42 0.0 0 27.6 26 98.5 26 11.0 18.5
#> 14: 42 0.0 0 75.1 26 100.0 26 15.5 3.4
#> 15: 42 0.0 0 44.2 26 72.9 26 11.2 11.2
#> 16: 42 0.0 0 15.2 26 40.9 26 10.8 45.4
#> 17: 42 0.0 0 17.3 26 37.7 26 9.9 37.5
#> 18: 42 0.0 0 13.6 26 33.2 26 7.8 38.4
#> 19: 42 0.0 0 12.5 26 33.3 26 9.3 49.7
#> 20: 42 0.0 0 7.6 26 26.1 26 6.3 55.4
#> vp_deficit_source vp_source
#>
#> 1: 26 25
#> 2: 26 25
#> 3: 26 25
#> 4: 26 25
#> 5: 26 25
#> 6: 26 25
#> 7: 26 25
#> 8: 26 25
#> 9: 26 25
#> 10: 26 25
#> 11: 26 25
#> 12: 26 25
#> 13: 26 25
#> 14: 26 25
#> 15: 26 25
#> 16: 26 25
#> 17: 26 25
#> 18: 26 25
#> 19: 26 25
#> 20: 26 25
#> [ reached getOption("max.print") -- omitted 31 rows ]
```
## References