Skip to contents

Get daily PM2.5 model predictions

Usage

predict_pm25(x, dates, keep_predictors = FALSE)

Arguments

x

a vector of s2 cell identifers (s2_cell object)

dates

a list of date vectors for the predictions, must be the same length as x

keep_predictors

logical; return values for model predictors alongside PM2.5 estimates?

Value

a list of tibbles the same length as x, each containing columns for the predicted (pm25) and its standard error (pm25_se); with one row per date in dates. These numerics are the concentrations of fine particulate matter, measured in micrograms per cubic meter. See vignette("cv-model-performance")

for more details on the cross validated accuracy of the daily PM2.5 model predictions.

Details

Internally, loading the model file is cached, so repeated calls in the same R session will not require the overhead of loading the model file for a new prediction.

Examples

d <- list(
  "8841b39a7c46e25f" = as.Date(c("2023-05-18", "2023-11-06")),
  "8841a45555555555" = as.Date(c("2023-06-22", "2023-08-15"))
)

predict_pm25(x = s2::as_s2_cell(names(d)), dates = d)
#>  (down)loading random forest model
#> loaded rf_pm_v1 in 14s
#>  (down)loading random forest model [15.4s]
#> 
#>  checking that s2 are within the contiguous US
#>  checking that s2 are within the contiguous US [56ms]
#> 
#>  adding coordinates
#>  adding coordinates [14ms]
#> 
#>  adding elevation
#>  adding elevation [79ms]
#> 
#>  adding HMS smoke data
#>  adding HMS smoke data [1s]
#> 
#>  adding NARR
#>  adding NARR [478ms]
#> 
#>  adding gridMET
#>  adding gridMET [419ms]
#> 
#>  adding MERRA
#>  adding MERRA [5s]
#> 
#>  adding time components
#>  adding time components [10ms]
#> 
#> [[1]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  7.94   0.868
#> 2  9.02   1.31 
#> 
#> [[2]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  4.84   0.467
#> 2  6.02   0.469
#> 

# takes less time after called once because model file is cached in memory

d <- list(
  "8841b39a7c46e25f" = as.Date(c("2023-05-13", "2023-11-16")),
  "8841a45555555555" = as.Date(c("2023-06-21", "2023-08-25"))
)
predict_pm25(x = s2::as_s2_cell(names(d)), dates = d)
#>  (down)loading random forest model
#> loaded rf_pm_v1 in 0s
#>  (down)loading random forest model [8ms]
#> 
#>  checking that s2 are within the contiguous US
#>  checking that s2 are within the contiguous US [60ms]
#> 
#>  adding coordinates
#>  adding coordinates [23ms]
#> 
#>  adding elevation
#>  adding elevation [104ms]
#> 
#>  adding HMS smoke data
#>  adding HMS smoke data [1s]
#> 
#>  adding NARR
#>  adding NARR [494ms]
#> 
#>  adding gridMET
#>  adding gridMET [432ms]
#> 
#>  adding MERRA
#>  adding MERRA [565ms]
#> 
#>  adding time components
#>  adding time components [12ms]
#> 
#> [[1]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  8.59   0.618
#> 2 14.9    2.87 
#> 
#> [[2]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  11.1    1.07
#> 2  16.8    1.20
#>