All contents are licensed under CC BY-NC-ND 4.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: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"))
summary(frost)
##       year         n_frost       bud_burst          end_1st_dev_stage   
##  Min.   :1947   Min.   :0.00   Min.   :1947-05-09   Min.   :1947-05-17  
##  1st Qu.:1966   1st Qu.:0.00   1st Qu.:1965-11-11   1st Qu.:1965-11-23  
##  Median :1984   Median :0.00   Median :1984-05-19   Median :1984-06-02  
##  Mean   :1984   Mean   :0.32   Mean   :1984-05-12   Mean   :1984-05-24  
##  3rd Qu.:2002   3rd Qu.:0.00   3rd Qu.:2002-11-09   3rd Qu.:2002-11-20  
##  Max.   :2021   Max.   :5.00   Max.   :2021-05-22   Max.   :2021-06-03  
##      may1st           bud_burst_days_since_may1st
##  Min.   :1947-05-01   Min.   :-4.00              
##  1st Qu.:1965-10-30   1st Qu.: 8.00              
##  Median :1984-05-01   Median :11.00              
##  Mean   :1984-04-30   Mean   :11.69              
##  3rd Qu.:2002-10-30   3rd Qu.:16.00              
##  Max.   :2021-05-01   Max.   :23.00              
##  end_1st_dev_stage_days_since_may1st
##  Min.   : 8.00                      
##  1st Qu.:20.00                      
##  Median :24.00                      
##  Mean   :23.47                      
##  3rd Qu.:28.50                      
##  Max.   :36.00

3 df

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

##       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). Finnish Society of Forest Science. 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). Canadian Science Publishing: 448–52. https://doi.org/10.1139/x82-069.


  1. Private webpage: uncertaintree.github.io