Caching

Downloading large amounts of complex geometries from the BKG servers can take some amount of time. Whether or not this time can be reduced depends on three factors:

  1. Whether the data is retrieved from a WFS or the download server
  2. Whether the data has already been downloaded
  3. Whether the data is already pre-loaded in the package

WFS versus bulk downloads

Some functions like bkg_admin() or bkg_dlm() interface WFS servers while others like bkg_nuts() or bkg_admin_archive() download entire ZIP files from a download server. While WFS servers allow for more flexibility, they do not allow for easy caching. ffm supports caching of static files. By default, files are cached in a temporary directory that is removed after the R session ends. You can set a permanent cache directory using options(ffm_cache_dir = ...).

Repeated data downloads

In case of a static data download, the first call will always download fresh data.

system.time(bkg_nuts(level = "3"))
#>    user  system elapsed 
#>    0.05    0.03    4.41

Subsequent calls will have significantly reduced time because the downloaded file is directly read from the cache.

system.time(bkg_nuts(level = "3"))
#>    user  system elapsed 
#>    0.05    0.00    0.09

In case you need to re-download the data, you can use the update_cache argument.

system.time(bkg_nuts(level = "3", update_cache = TRUE))
#>    user  system elapsed 
#>    0.05    0.02    4.72

Pre-loaded datasets

The most common datasets are already included in ffm. These include 2023 data from bkg_admin() and bkg_nuts() at a scale of 1:5,000,000.

bkg_krs
#> Simple feature collection with 400 features and 24 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: 4031295 ymin: 2684102 xmax: 4672497 ymax: 3551313
#> Projected CRS: ETRS89-extended / LAEA Europe
#> # A tibble: 400 × 25
#>    objid  beginn       ade    gf   bsg ars   ags   sdv_ars gen   bez     ibz bem   nbd   sn_l  sn_r  sn_k  sn_v1 sn_v2 sn_g 
#>    <chr>  <date>     <int> <int> <int> <chr> <chr> <chr>   <chr> <chr> <int> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#>  1 DEBKG… 2019-10-03     4     9     1 01001 01001 010010… Flen… Krei…    40 --    ja    01    0     01    00    00    000  
#>  2 DEBKG… 2019-10-03     4     9     1 01002 01002 010020… Kiel  Krei…    40 --    ja    01    0     02    00    00    000  
#>  3 DEBKG… 2019-10-03     4     9     1 01003 01003 010030… Lübe… Krei…    40 --    ja    01    0     03    00    00    000  
#>  4 DEBKG… 2019-10-03     4     9     1 01004 01004 010040… Neum… Krei…    40 --    ja    01    0     04    00    00    000  
#>  5 DEBKG… 2019-10-03     4     9     1 01051 01051 010510… Dith… Kreis    42 --    ja    01    0     51    00    00    000  
#>  6 DEBKG… 2021-06-19     4     9     1 01053 01053 010530… Herz… Kreis    42 --    ja    01    0     53    00    00    000  
#>  7 DEBKG… 2019-10-03     4     9     1 01054 01054 010540… Nord… Kreis    42 --    ja    01    0     54    00    00    000  
#>  8 DEBKG… 2019-10-03     4     9     1 01055 01055 010550… Osth… Kreis    42 --    ja    01    0     55    00    00    000  
#>  9 DEBKG… 2019-10-03     4     9     1 01056 01056 010560… Pinn… Kreis    42 --    ja    01    0     56    00    00    000  
#> 10 DEBKG… 2019-10-03     4     9     1 01057 01057 010570… Plön  Kreis    42 --    ja    01    0     57    00    00    000  
#> # ℹ 390 more rows
#> # ℹ 6 more variables: fk_s3 <chr>, nuts <chr>, ars_0 <chr>, ags_0 <chr>, wsk <date>, geometry <MULTIPOLYGON [m]>
bkg_nuts2
#> Simple feature collection with 38 features and 6 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: 280353.1 ymin: 5235878 xmax: 921261.6 ymax: 6101302
#> Projected CRS: ETRS89 / UTM zone 32N
#> # A tibble: 38 × 7
#>    OBJID            BEGINN        GF NUTS_LEVEL NUTS_CODE NUTS_NAME                                                 geometry
#>    <chr>            <date>     <int>      <int> <chr>     <chr>                                           <MULTIPOLYGON [m]>
#>  1 DEBKGNU5000000B6 2021-10-04     9          2 DE11      Stuttgart     (((533236 5377030, 532410.6 5376422, 531497.3 53768…
#>  2 DEBKGNU5000000B7 2021-10-04     9          2 DE12      Karlsruhe     (((471339.8 5493433, 470661.9 5493366, 470318.8 549…
#>  3 DEBKGNU5000000B8 2021-10-04     9          2 DE13      Freiburg      (((429398.8 5394070, 430815.5 5395489, 431522.4 539…
#>  4 DEBKGNU5000000B9 2021-10-04     9          2 DE14      Tübingen      (((582536.8 5314052, 581292.7 5313301, 581305.1 531…
#>  5 DEBKGNU5000000BA 2021-10-04     9          2 DE21      Oberbayern    (((794293.6 5298232, 795275.6 5298403, 795573.8 529…
#>  6 DEBKGNU5000000BB 2021-10-04     9          2 DE22      Niederbayern  (((827554.6 5386808, 828451 5385530, 828141.5 53843…
#>  7 DEBKGNU5000000BC 2023-12-06     9          2 DE23      Oberpfalz     (((729727.5 5418506, 729341.6 5419385, 728572 54189…
#>  8 DEBKGNU5000000BD 2023-12-06     9          2 DE24      Oberfranken   (((702619 5531689, 705057.5 5530518, 704989.1 55300…
#>  9 DEBKGNU5000000BE 2021-10-04     9          2 DE25      Mittelfranken (((631678.8 5422644, 629641.9 5420651, 630270.2 541…
#> 10 DEBKGNU5000000BF 2021-10-04     9          2 DE26      Unterfranken  (((566109.9 5492367, 565932.7 5492922, 565005.2 549…
#> # ℹ 28 more rows