Skip to contents

Get daily PM2.5 model predictions

Usage

predict_pm25(x, dates)

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

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_v0 in 10s
#>  (down)loading random forest model [10.6s]
#> 
#>  checking that s2 are within the contiguous US
#>  checking that s2 are within the contiguous US [56ms]
#> 
#>  adding coordinates
#>  adding coordinates [12ms]
#> 
#>  adding elevation
#>  adding elevation [77ms]
#> 
#>  adding HMS smoke data
#>  adding HMS smoke data [962ms]
#> 
#>  adding NARR
#>  adding NARR [470ms]
#> 
#>  adding gridMET
#>  adding gridMET [412ms]
#> 
#>  adding MERRA
#>  adding MERRA [3.7s]
#> 
#>  adding time components
#>  adding time components [10ms]
#> 
#> [[1]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  7.76   0.837
#> 2  9.22   0.696
#> 
#> [[2]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  5.10   0.386
#> 2  5.75   0.843
#> 

# 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_v0 in 0s
#>  (down)loading random forest model [6ms]
#> 
#>  checking that s2 are within the contiguous US
#>  checking that s2 are within the contiguous US [56ms]
#> 
#>  adding coordinates
#>  adding coordinates [15ms]
#> 
#>  adding elevation
#>  adding elevation [82ms]
#> 
#>  adding HMS smoke data
#>  adding HMS smoke data [901ms]
#> 
#>  adding NARR
#>  adding NARR [460ms]
#> 
#>  adding gridMET
#>  adding gridMET [421ms]
#> 
#>  adding MERRA
#>  adding MERRA [627ms]
#> 
#>  adding time components
#>  adding time components [11ms]
#> 
#> [[1]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  8.70   0.768
#> 2 14.6    4.39 
#> 
#> [[2]]
#> # A tibble: 2 × 2
#>    pm25 pm25_se
#>   <dbl>   <dbl>
#> 1  10.4   0.631
#> 2  16.7   1.32 
#>