Skip to contents

This vignette explores some of the data quality checks that were done when pulling archived data from the web archive. These checks were done to ensure that the data being added to the existing records was consistent and did not introduce duplicates or missing values.

library(bbggplots)
library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:base':
#> 
#>     date, intersect, setdiff, union
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

Check number of trees

Over time, the number of trees in the whole garden shouldn’t change drastically from day to day, or year to year.

bbgdata |>
  count(date, name = "tree_counts") |>
  count(tree_counts, name = "date")
#> # A tibble: 5 × 2
#>   tree_counts  date
#>         <int> <int>
#> 1         147     1
#> 2         148     1
#> 3         151    33
#> 4         152    38
#> 5         153    10

There should be a consistent number of trees in the garden, varying between around 151 and 153 trees, which is within reason.

Number of records per season

Live data collection for the Brooklyn Botanic Gardens started in 2025, so seasons afterwards should have the most days recorded.

In 2017, there was a snow storm that did not go well for the cherry blossoms and no data was collected.

bbgdata |>
  mutate(year = year(date)) |>
  distinct(year, date) |>
  count(year, name = "days_per_year") 
#> # A tibble: 5 × 2
#>    year days_per_year
#>   <dbl>         <int>
#> 1  2016            14
#> 2  2018            12
#> 3  2019             2
#> 4  2025            22
#> 5  2026            33

Session info

sessionInfo()
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 LTS
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
#> 
#> locale:
#>  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
#>  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
#>  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
#> [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
#> 
#> time zone: UTC
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] dplyr_1.2.1          lubridate_1.9.5      bbggplots_0.0.0.9000
#> 
#> loaded via a namespace (and not attached):
#>  [1] vctrs_0.7.3        cli_3.6.6          knitr_1.51         rlang_1.2.0       
#>  [5] xfun_0.57          generics_0.1.4     S7_0.2.2           textshaping_1.0.5 
#>  [9] jsonlite_2.0.0     glue_1.8.1         htmltools_0.5.9    ragg_1.5.2        
#> [13] sass_0.4.10        scales_1.4.0       rmarkdown_2.31     grid_4.6.0        
#> [17] tibble_3.3.1       evaluate_1.0.5     jquerylib_0.1.4    fastmap_1.2.0     
#> [21] yaml_2.3.12        lifecycle_1.0.5    compiler_4.6.0     RColorBrewer_1.1-3
#> [25] fs_2.1.0           timechange_0.4.0   pkgconfig_2.0.3    farver_2.1.2      
#> [29] systemfonts_1.3.2  digest_0.6.39      R6_2.6.1           tidyselect_1.2.1  
#> [33] pillar_1.11.1      magrittr_2.0.5     bslib_0.10.0       tools_4.6.0       
#> [37] gtable_0.3.6       pkgdown_2.2.0      ggplot2_4.0.3      cachem_1.1.0      
#> [41] desc_1.4.3