All contents are licensed under CC BY-NC-ND 4.0.

1 Drought

Data basis: Fischer et al. (2006). For further context information, another source working on and interpreting this data is Dobbertin, Neumann, and Schroeck (2013, 202–3).

bair <- c(.505, .648, .523, .426, .64, .5, .257, .866, .434, .368, .54, .923, .702, 
          .615, 1.013, .807, .262, .887, 1.281, 1.125, .99, 1.2, .983, .697, .606, 
          .718, .48, .822, .944, .77, 1.036, 1.23, .68, .985)
elev <- c(335, 460, 480, 515, 540, 650, 680, 715, 730, 835, 860, 960,
          1020, 1025, 1100, 1150, 1150, 1170, 1190, 1350, 1400, 1500, 1540,
          475, 480, 507.5, 580, 750, 780, 800, 1025, 1100, 1150, 1200)
species <- c("Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce",
             "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce",
             "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce",
             "Spruce", "Spruce", "Spruce", "Beech", "Beech", "Beech", "Beech",
             "Beech", "Beech", "Beech", "Beech", "Beech", "Beech", "Beech")
drought <- data.frame(bair = bair,
                      elev = elev,
                      species = species)
rm(bair, elev, species)
summary(drought)
##       bair             elev          species         
##  Min.   :0.2570   Min.   : 335.0   Length:34         
##  1st Qu.:0.5272   1st Qu.: 597.5   Class :character  
##  Median :0.7100   Median : 847.5   Mode  :character  
##  Mean   :0.7489   Mean   : 888.3                     
##  3rd Qu.:0.9732   3rd Qu.:1150.0                     
##  Max.   :1.2810   Max.   :1540.0

2 Frost

Data basis: Deutscher Wetterdienst, values shown here were generated based individual values, code by myself.

Direct download links for data basis (Stations Id 1691, Goettingen):

Some definitions:

  • Budburst is estimated based on first day where \(\text{dd}>220\) (Thomson and Moncrieff 1982) [degree days \(\text{dd}\), start counting on March, 20].
  • End of 1st development stage is estimated based on first day where \(\text{dd}>320\) (start counting on March, 20). … I need to re-discover the source stating that 1st dev. stage is about 100 dd
  • Definition frost event: \(\min\left(\text{Temp}_{50\text{cm}}\right) < -1.95^\circ\text{C}\) (Hannerz 1994).
frost <- data.frame(year = 1947:2023, 
                    n_frost = c(0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 
                                0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 
                                3, 2, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0), 
                    bud_burst = as.Date(c(-19230, -18867, -18503, -18127, -17758, -17408, -17034, 
                                          -16661, -16293, -15929, -15566, -15202, -14847, -14475, 
                                          -14121, -13744, -13384, -13017, -12647, -12291, -11917, 
                                          -11563, -11191, -10821, -10462, -10092, -9720, -9361, 
                                          -8997, -8635, -8261, -7896, -7530, -7164, -6808, -6436, 
                                          -6078, -5705, -5347, -4981, -4619, -4254, -3883, -3524, 
                                          -3145, -2788, -2437, -2060, -1694, -1322, -958, -602, 
                                          -237, 124, 499, 864, 1222, 1592, 1957, 2321, 2681, 3055, 
                                          3408, 3789, 4137, 4513, 4877, 5234, 5610, 5976, 6345, 
                                          6691, 7074, 7435, 7812, 8167, 8533), 
                                        origin = as.Date("2000-01-01")),
                    end_1st_dev_stage = as.Date(c(-19222, -18859, -18489, -18118, -17746, -17397, 
                                                  -17026, -16650, -16280, -15921, -15552, -15192, 
                                                  -14837, -14464, -14104, -13726, -13370, -13006, 
                                                  -12633, -12281, -11905, -11545, -11180, -10808, 
                                                  -10455, -10078, -9710, -9349, -8984, -8623, -8248, 
                                                  -7886, -7521, -7151, -6799, -6427, -6068, -5691, 
                                                  -5338, -4972, -4601, -4246, -3875, -3513, -3131, 
                                                  -2780, -2426, -2050, -1679, -1311, -944, -594, 
                                                  -225, 132, 510, 873, 1235, 1608, 1972, 2332, 2694, 
                                                  3067, 3422, 3802, 4152, 4525, 4891, 5250, 5623, 
                                                  5988, 6354, 6703, 7086, 7450, 7824, 8175, 8547), 
                                                origin = as.Date("2000-01-01")))
frost$may1st <- as.Date(paste0(frost$year, "-05-01"))
frost$bud_burst_days_since_may1st <- julian(frost$bud_burst, origin = as.Date("2000-01-01")) - 
  julian(frost$may1st, origin = as.Date("2000-01-01"))
frost$end_1st_dev_stage_days_since_may1st <- julian(frost$end_1st_dev_stage, 
                                                    origin = as.Date("2000-01-01")) - 
  julian(frost$may1st, origin = as.Date("2000-01-01"))
summary(frost)
##       year         n_frost         bud_burst          end_1st_dev_stage   
##  Min.   :1947   Min.   :0.0000   Min.   :1947-05-09   Min.   :1947-05-17  
##  1st Qu.:1966   1st Qu.:0.0000   1st Qu.:1966-05-08   1st Qu.:1966-05-18  
##  Median :1985   Median :0.0000   Median :1985-05-12   Median :1985-05-21  
##  Mean   :1985   Mean   :0.3117   Mean   :1985-05-12   Mean   :1985-05-24  
##  3rd Qu.:2004   3rd Qu.:0.0000   3rd Qu.:2004-05-11   3rd Qu.:2004-05-27  
##  Max.   :2023   Max.   :5.0000   Max.   :2023-05-13   Max.   :2023-05-27  
##      may1st           bud_burst_days_since_may1st
##  Min.   :1947-05-01   Min.   :-4.00              
##  1st Qu.:1966-05-01   1st Qu.: 8.00              
##  Median :1985-05-01   Median :11.00              
##  Mean   :1985-04-30   Mean   :11.69              
##  3rd Qu.:2004-05-01   3rd Qu.:16.00              
##  Max.   :2023-05-01   Max.   :23.00              
##  end_1st_dev_stage_days_since_may1st
##  Min.   : 8.00                      
##  1st Qu.:20.00                      
##  Median :24.00                      
##  Mean   :23.44                      
##  3rd Qu.:28.00                      
##  Max.   :36.00

3 df

This is just re-named spati2 that ships with lmfor (Mehtatalo 2019):

library("lmfor")
data(spati2)
df <- spati2
rm(spati2)
summary(df)
##       plot             d               h                n         
##  Min.   : 1.00   Min.   : 1.50   Min.   : 1.900   Min.   :  7.00  
##  1st Qu.:28.00   1st Qu.: 6.20   1st Qu.: 6.000   1st Qu.: 17.00  
##  Median :56.00   Median :10.20   Median : 8.000   Median : 58.00  
##  Mean   :45.41   Mean   :11.66   Mean   : 9.566   Mean   : 54.96  
##  3rd Qu.:61.00   3rd Qu.:14.70   3rd Qu.:11.700   3rd Qu.: 84.00  
##  Max.   :66.00   Max.   :51.00   Max.   :28.000   Max.   :105.00  
##       dvar            dmean       
##  Min.   : 1.867   Min.   : 4.821  
##  1st Qu.: 2.818   1st Qu.: 6.736  
##  Median : 3.691   Median :10.879  
##  Mean   : 4.649   Mean   :11.660  
##  3rd Qu.: 5.621   3rd Qu.:14.168  
##  Max.   :15.636   Max.   :29.569

4 All-in-one

… just for convenience, copy-paste only once!

library("lmfor")
bair <- c(.505, .648, .523, .426, .64, .5, .257, .866, .434, .368, .54, .923, .702, 
          .615, 1.013, .807, .262, .887, 1.281, 1.125, .99, 1.2, .983, .697, .606, 
          .718, .48, .822, .944, .77, 1.036, 1.23, .68, .985)
elev <- c(335, 460, 480, 515, 540, 650, 680, 715, 730, 835, 860, 960,
          1020, 1025, 1100, 1150, 1150, 1170, 1190, 1350, 1400, 1500, 1540,
          475, 480, 507.5, 580, 750, 780, 800, 1025, 1100, 1150, 1200)
species <- c("Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce",
             "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce",
             "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce", "Spruce",
             "Spruce", "Spruce", "Spruce", "Beech", "Beech", "Beech", "Beech",
             "Beech", "Beech", "Beech", "Beech", "Beech", "Beech", "Beech")
drought <- data.frame(bair = bair,
                      elev = elev,
                      species = species)
frost <- data.frame(year = 1947:2021, 
                    n_frost = c(0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 
                                0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 
                                3, 2, 0, 0, 0, 0, 0, 0, 1, 5, 0), 
                    bud_burst = as.Date(c(-19230, -18867, -18503, -18127, -17758, -17408, -17034, 
                                          -16661, -16293, -15929, -15566, -15202, -14847, -14475, 
                                          -14121, -13744, -13384, -13017, -12647, -12291, -11917, 
                                          -11563, -11191, -10821, -10462, -10092, -9720, -9361, 
                                          -8997, -8635, -8261, -7896, -7530, -7164, -6808, -6436, 
                                          -6078, -5705, -5347, -4981, -4619, -4254, -3883, -3524, 
                                          -3145, -2788, -2437, -2060, -1694, -1322, -958, -602, 
                                          -237, 124, 499, 864, 1222, 1592, 1957, 2321, 2681, 3055, 
                                          3408, 3789, 4137, 4513, 4877, 5234, 5610, 5976, 6345, 
                                          6691, 7074, 7435, 7812), 
                                        origin = as.Date("2000-01-01")),
                    end_1st_dev_stage = as.Date(c(-19222, -18859, -18489, -18118, -17746, -17397, 
                                                  -17026, -16650, -16280, -15921, -15552, -15192, 
                                                  -14837, -14464, -14104, -13726, -13370, -13006, 
                                                  -12633, -12281, -11905, -11545, -11180, -10808, 
                                                  -10455, -10078, -9710, -9349, -8984, -8623, -8248, 
                                                  -7886, -7521, -7151, -6799, -6427, -6068, -5691, 
                                                  -5338, -4972, -4601, -4246, -3875, -3513, -3131, 
                                                  -2780, -2426, -2050, -1679, -1311, -944, -594, 
                                                  -225, 132, 510, 873, 1235, 1608, 1972, 2332, 2694, 
                                                  3067, 3422, 3802, 4152, 4525, 4891, 5250, 5623, 
                                                  5988, 6354, 6703, 7086, 7450, 7824), 
                                                origin = as.Date("2000-01-01")))
frost$may1st <- as.Date(paste0(frost$year, "-05-01"))
frost$bud_burst_days_since_may1st <- julian(frost$bud_burst, origin = as.Date("2000-01-01")) - 
  julian(frost$may1st, origin = as.Date("2000-01-01"))
frost$end_1st_dev_stage_days_since_may1st <- julian(frost$end_1st_dev_stage, 
                                                    origin = as.Date("2000-01-01")) - 
  julian(frost$may1st, origin = as.Date("2000-01-01"))
data(spati2)
df <- spati2
rm(bair, elev, species, spati2)
ls()
## [1] "df"      "drought" "frost"

References

Dobbertin, Matthias, Markus Neumann, and Hans-Werner Schroeck. 2013. “Tree Growth Measurements in Long-Term Forest Monitoring in Europe.” In, 183–204. Elsevier. https://doi.org/10.1016/b978-0-08-098222-9.00010-8.
Fischer, R, M Dobbertin, O Granke, K Karoles, M Köhl, P Kraft, P Meyer, et al. 2006. “The Condition of Forests in Europe. 2006 Executive Report.” UNECE, Hamburg.
Hannerz, Mats. 1994. “Predicting the Risk of Frost Occurrence After Budburst of Norway Spruce in Sweden.” 28 (4). https://doi.org/10.14214/sf.a9175.
Mehtatalo, Lauri. 2019. Lmfor: Functions for Forest Biometrics. https://CRAN.R-project.org/package=lmfor.
Thomson, A. J., and S. M. Moncrieff. 1982. “Prediction of Bud Burst in Douglas-Fir by Degree-Day Accumulation” 12 (2): 448–52. https://doi.org/10.1139/x82-069.