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_v1 in 19s
#>  (down)loading random forest model [20.7s]
#> 
#>  checking that s2 are within the contiguous US
#>  checking that s2 are within the contiguous US [59ms]
#> 
#>  adding coordinates
#>  adding coordinates [34ms]
#> 
#>  adding elevation
#>  adding elevation [101ms]
#> 
#>  adding HMS smoke data
#>  adding HMS smoke data [1s]
#> 
#>  adding NARR
#>  adding NARR [492ms]
#> 
#>  adding gridMET
#>  adding gridMET [440ms]
#> 
#>  adding MERRA
#>  adding MERRA [10.9s]
#> 
#>  adding time components
#>  adding time components [26ms]
#> 
#> [[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 [57ms]
#> 
#>  adding coordinates
#>  adding coordinates [24ms]
#> 
#>  adding elevation
#>  adding elevation [103ms]
#> 
#>  adding HMS smoke data
#>  adding HMS smoke data [1.1s]
#> 
#>  adding NARR
#>  adding NARR [540ms]
#> 
#>  adding gridMET
#>  adding gridMET [487ms]
#> 
#>  adding MERRA
#>  adding MERRA [593ms]
#> 
#>  adding time components
#>  adding time components [16ms]
#> 
#> [[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
#>