Nothing
# test queries using vcr -------------------------------------------------------
test_that("get_power() returns daily point ag data", {
skip_if_offline()
vcr::use_cassette("daily_ag_point", {
power_query <- get_power(
community = "ag",
lonlat = c(-179.5, -89.5),
pars = c("T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M",
"PS"),
dates = c("1983-01-01"),
temporal_api = "Daily",
time_standard = "UTC"
)
})
expect_s3_class(power_query, "data.frame")
expect_equal(power_query$LAT, -89.5, tolerance = 1e-3)
expect_equal(power_query$LON, -179.5, tolerance = 1e-3)
expect_equal(power_query$YEAR, 1983)
expect_equal(power_query$MM, 1)
expect_equal(power_query$DD, 1)
expect_equal(power_query$DOY, 1)
expect_equal(power_query$YYYYMMDD, as.Date("1983-01-01"))
expect_equal(power_query$T2M, -24.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MIN, -25.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MAX, -22.7, tolerance = 1e-2)
expect_equal(power_query$RH2M, 92.4, tolerance = 1e-2)
expect_equal(power_query$WS10M, 1.93, tolerance = 1e-2)
expect_equal(power_query$PS, 69.2, tolerance = 1e-2)
expect_named(
power_query,
c(
"LON",
"LAT",
"YEAR",
"MM",
"DD",
"DOY",
"YYYYMMDD",
"T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M",
"PS"
)
)
})
test_that("get_power() returns daily point ag data with adjusted atmospheric
air pressure",
{
skip_if_offline()
vcr::use_cassette("adjusted_air_pressure", {
power_query <- get_power(
community = "ag",
lonlat = c(-179.5, -89.5),
pars = c("T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M",
"PS"),
dates = c("1983-01-01"),
temporal_api = "Daily",
site_elevation = 0,
time_standard = "UTC"
)
})
expect_s3_class(power_query, "data.frame")
expect_equal(power_query$LAT, -89.5, tolerance = 1e-3)
expect_equal(power_query$LON, -179.5, tolerance = 1e-3)
expect_equal(power_query$YEAR, 1983)
expect_equal(power_query$MM, 1)
expect_equal(power_query$DD, 1)
expect_equal(power_query$DOY, 1)
expect_equal(power_query$YYYYMMDD, as.Date("1983-01-01"))
expect_equal(power_query$T2M, -24.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MIN, -25.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MAX, -22.7, tolerance = 1e-2)
expect_equal(power_query$RH2M, 92.4, tolerance = 1e-2)
expect_equal(power_query$WS10M, 1.93, tolerance = 1e-2)
expect_equal(power_query$PS, 69.2, tolerance = 1e-2)
expect_equal(power_query$PSC, 101, tolerance = 1e-2)
expect_named(
power_query,
c(
"LON",
"LAT",
"YEAR",
"MM",
"DD",
"DOY",
"YYYYMMDD",
"T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M",
"PS",
"PSC"
)
)
})
test_that("get_power() returns daily point ag data with adjusted wind
elevation",
{
skip_if_offline()
vcr::use_cassette("adjusted_wind_elevation", {
power_query <- get_power(
community = "ag",
lonlat = c(-179.5, -89.5),
pars = c("T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M",
"PS"),
dates = c("1983-01-01"),
temporal_api = "Daily",
wind_elevation = 300,
wind_surface = "vegtype_1",
time_standard = "UTC"
)
})
expect_s3_class(power_query, "data.frame")
expect_equal(power_query$LAT, -89.5, tolerance = 1e-3)
expect_equal(power_query$LON, -179.5, tolerance = 1e-3)
expect_equal(power_query$YEAR, 1983)
expect_equal(power_query$MM, 1)
expect_equal(power_query$DD, 1)
expect_equal(power_query$DOY, 1)
expect_equal(power_query$YYYYMMDD, as.Date("1983-01-01"))
expect_equal(power_query$T2M, -24.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MIN, -25.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MAX, -22.7, tolerance = 1e-2)
expect_equal(power_query$RH2M, 92.4, tolerance = 1e-2)
expect_equal(power_query$WS10M, 1.93, tolerance = 1e-2)
expect_equal(power_query$PS, 69.06, tolerance = 1e-2)
expect_equal(power_query$WSC, 6.49, tolerance = 1e-2)
expect_named(
power_query,
c(
"LON",
"LAT",
"YEAR",
"MM",
"DD",
"DOY",
"YYYYMMDD",
"T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M",
"PS",
"WSC"
)
)
})
test_that("get_power() returns daily point SB data", {
skip_if_offline()
vcr::use_cassette("daily_sb_point_UTC", {
power_query <- get_power(
community = "sb",
lonlat = c(-179.5, -89.5),
pars = c("T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M"),
dates = c("1983-01-01"),
temporal_api = "Daily",
time_standard = "UTC"
)
})
expect_s3_class(power_query, "data.frame")
expect_equal(power_query$LAT, -89.5, tolerance = 1e-3)
expect_equal(power_query$LON, -179.5, tolerance = 1e-3)
expect_equal(power_query$YEAR, 1983)
expect_equal(power_query$MM, 1)
expect_equal(power_query$DD, 1)
expect_equal(power_query$DOY, 1)
expect_equal(power_query$YYYYMMDD, as.Date("1983-01-01"))
expect_equal(power_query$T2M, -24.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MIN, -25.4, tolerance = 1e-2)
expect_equal(power_query$T2M_MAX, -22.7, tolerance = 1e-2)
expect_equal(power_query$RH2M, 92.4, tolerance = 1e-2)
expect_equal(power_query$WS10M, 1.93, tolerance = 1e-2)
})
test_that("get_power() returns daily point SB data for LST", {
skip_if_offline()
vcr::use_cassette("daily_sb_point_LST", {
power_query <- get_power(
community = "sb",
lonlat = c(-179.5, -89.5),
pars = c("T2M",
"T2M_MIN",
"T2M_MAX",
"RH2M",
"WS10M"),
dates = c("1983-01-01"),
temporal_api = "Daily",
time_standard = "LST"
)
})
expect_s3_class(power_query, "data.frame")
expect_equal(power_query$LAT, -89.5, tolerance = 1e-3)
expect_equal(power_query$LON, -179.5, tolerance = 1e-3)
expect_equal(power_query$YEAR, 1983)
expect_equal(power_query$MM, 1)
expect_equal(power_query$DD, 1)
expect_equal(power_query$DOY, 1)
expect_equal(power_query$YYYYMMDD, as.Date("1983-01-01"))
expect_equal(power_query$T2M, -25.2, tolerance = 1e-2)
expect_equal(power_query$T2M_MIN, -25.7, tolerance = 1e-2)
expect_equal(power_query$T2M_MAX, -24.9, tolerance = 1e-2)
expect_equal(power_query$RH2M, 94.2, tolerance = 1e-2)
expect_equal(power_query$WS10M, 2.32, tolerance = 1e-2)
})
test_that("get_power() returns daily regional ag data", {
skip_if_offline()
power_query <- get_power(
community = "ag",
lonlat = c(112.5, -55.5, 115.5, -50.5),
pars = "T2M",
dates = c("1983-01-01"),
temporal_api = "Daily"
)
expect_equal(nrow(power_query), 60)
expect_equal(
unique(power_query$LAT),
c(
-55.25,
-54.75,
-54.25,
-53.75,
-53.25,
-52.75,
-52.25,
-51.75,
-51.25,
-50.75
),
tolerance = 0.1
)
expect_equal(unique(power_query$LON),
c(112.8,
113.2,
113.8,
114.2,
114.8,
115.2),
tolerance = 0.1)
expect_equal(power_query$YEAR[1], 1983)
expect_equal(power_query$MM[1], 1)
expect_equal(power_query$DD[1], 1)
expect_equal(power_query$DOY[1], 1)
expect_equal(power_query$YYYYMMDD[1], as.Date("1983-01-01"))
expect_equal(power_query$DOY[1], 1)
expect_equal(power_query$T2M[1], 3.28)
})
test_that("get_power() returns point ag data for climatology", {
skip_if_offline()
vcr::use_cassette("climatology_ag_point", {
power_query <- get_power(
community = "ag",
pars = "T2M",
temporal_api = "climatology",
lonlat = c(-179.5, -89.5),
)
})
expect_equal(nrow(power_query), 1)
expect_equal(power_query$PARAMETER[1], "T2M")
expect_named(
power_query,
c(
"LON",
"LAT",
"PARAMETER",
"JAN",
"FEB",
"MAR",
"APR",
"MAY",
"JUN",
"JUL",
"AUG",
"SEP",
"OCT",
"NOV",
"DEC",
"ANN"
)
)
})
## non-vcr tests ---------------------------------------------------------------
test_that("get_power() stops if hourly data are requested < 2001-01-01", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = c(-179.5, -89.5),
pars = "T2M",
dates = "1983-01-01",
temporal_api = "hourly"
),
regexp = "2001-01-01 is the earliest available hourly data*"
)
})
test_that("get_power() stops if site elevation is supplied not for point", {
Sys.sleep(10)
skip_if_offline()
expect_message(
get_power(
community = "ag",
lonlat = c(112.5, -55.5, 115.5, -50.5),
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily",
site_elevation = 35
),
regexp = "You have provided `site_elevation`, `35` for a region request.*"
)
})
test_that("get_power() stops if site_elevation is invalid", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = c(112.5, -55.5),
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily",
site_elevation = "cartograph"
),
regexp = "You have entered an invalid value for `site_elevation`*"
)
})
test_that("get_power() stops wind_surface is supplied w/ no wind_elevation",
{
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = c(112.5, -55.5),
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily",
wind_surface = "vegtype_6"
),
regexp = "If you provide a correct wind surface alias*"
)
})
test_that("get_power() stops wind_elevation is invalid", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = c(112.5, -55.5),
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily",
wind_elevation = 5
),
regexp = "`wind_elevation` values in metres are required to be between*"
)
})
test_that("get_power() ignores wind_elevation for regional requests", {
skip_if_offline()
expect_message(
get_power(
community = "ag",
lonlat = c(112.5, -55.5, 115.5, -50.5),
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily",
wind_elevation = 15
),
regexp = "You have provided `wind_elevation`, `15`, for a region request.*"
)
})
test_that("get_power() stops if `global` coverage is requested", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = "global",
pars = "T2M",
dates = "1983-01-01",
temporal_api = "climatology"
),
regexp = "The POWER team have not enabled `global` data queries with this*"
)
})
test_that("get_power() stops if temporal_api is hourly and pars > 15", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = c(112.5, -55.5),
pars = c(
"T2M",
"DIRECT_ILLUMINANCE",
"CLRSKY_SRF_ALB",
"RH2M",
"WS10M",
"PS",
"PRECTOTCORR",
"CLRSKY_SFC_SW_DNI",
"WSC",
"CLRSKY_SFC_PAR_TOT",
"ALLSKY_SFC_UVB",
"ALLSKY_SFC_UVA",
"ZENITH_LUMINANCE",
"TOA_SW_DWN",
"SZA",
"PW",
"DIRECT_ILLUMINANCE"
),
dates = "2001-01-01",
temporal_api = "hourly"
),
regexp = "A maximum of 15 parameters can currently be requested*"
)
})
test_that("get_power() stops if global lonlat is set", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = "global",
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily"
),
regexp = "The POWER team have not enabled `global` data queries with *"
)
})
test_that("get_power() stops if lonlat = is invalid", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = "x",
pars = "T2M",
dates = "1983-01-01",
temporal_api = "daily"
),
regexp = "You have entered an invalid value for `lonlat`. *"
)
})
test_that("get_power() stops if lonlat = is invalid for climatology", {
skip_if_offline()
expect_error(
get_power(
community = "ag",
lonlat = "global",
pars = "T2M",
dates = "1983-01-01",
temporal_api = "climatology"
),
regexp = "The POWER team have not enabled `global`*"
)
})
test_that("Only 20 pars are allowed when `temporal_api` != climatology", {
pars <- c(
"Z0M",
"CLRSKY_SFC_SW_DNI",
"CDD0",
"CDD10",
"CDD18_3",
"FROST_DAYS",
"HDD0",
"HDD10",
"HDD18_3",
"AIRMASS",
"WSC",
"PRECTOTCORR",
"PS",
"QV2M",
"RH2M",
"T10M",
"T10M_MAX",
"T10M_MIN",
"T10M_RANGE",
"T2M_RANGE",
"T2M_MIN",
"T2M_MAX"
)
temporal_api <- "daily"
lonlat <- c(-179.5, -89.5)
expect_error(get_power(pars, community = "ag", lonlat = lonlat, temporal_api))
})
test_that("get_power() stops if lonlat = regional for hourly", {
skip_if_offline()
expect_error(
power_query <- get_power(
community = "ag",
lonlat = c(112.5, -55.5, 115.5, -50.5),
pars = "T2M",
dates = c("1983-01-01"),
temporal_api = "hourly"
)
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.