Record Dec temperature and snow in Scotland

[This article was first published on R – scottishsnow, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

December 2019 broke a couple of temperature records for the UK. One for the warmest night time temperature and one for the warmest temperature overall. Both of these UK records were broken in northern Scotland, a place with little daylight during the winter months.

The night time temperature record was observed at a place called Cassley Power Station, on Loch Shin and the overall temperature at Achfary. These places are only about 25 km apart, but the river next to Achfary drains to the West and the water at Cassley to the East of Scotland. Cassley and Achfary were both Snow Survey of Great Britain (SSGB) sites. The SSGB recorded the snowline visible from stations across GB at 09:00 each morning. I transcribed the Scottish data for my PhD and you can download the SSGB from EIDC.

The SSGB was recorded at Cassley from April 1961 until March 2007 and at Achfary from November 1946 until October 1968. Unfortunately the Met Office closed the snow survey in 2007 as many of their stations were automated, making SSGB data collection difficult/impossible, and little use was being made of collected data. Data collection at Achfary was patchy, and there any many missing records (possibly due to weather conditions – if it’s cloudy you can’t see the hills to record snowline!).

For this blog post I’m presenting SSGB data from Cassley Power Station for December, to match the new records. Below you can see the number of days with no snow at any elevation (code to create at the bottom of the post).


So there was a big increase in the number of days without snow between 1980 and 2000 – it about doubled! This is inline with anecdotal data about the Scottish Ski resorts which struggled to operate during the 90s and 00s.

What hills can the Cassley site see? Which hills are we reporting no snow cover on? The SSGB returns listed the visible hills as “Ben More (Assynt): 3276′. Moavally 1673′. Ben Hee 2864′”. I completed a line of site analysis using Ordnance Survey data. In GRASS and mapped the output in QGIS. This is similar work I’ve presented on which hills can you see from Arthur’s seat. Below is a map of the area I mapped as visible from Cassley Power Station, which doesn’t include Ben More. However, there are no dwellings at Cassley, so the operator would need to travel along the loch. This would have given them a different view to that from the power station, and presumably included Ben More.

Click image to enlarge!

It’s a huge shame the SSGB stopped being run as the period since 2007 has been really interesting. Some winters have been exceptionally snowy, with others having almost no snow cover. You can read more about snow cover variability in this work I did for the Cairngorms with the James Hutton Institute.

Finally, here’s the code I used to extract the data from my SSGB database and make the plot.

# Packages

# db extract
db = dbConnect(SQLite(), "~/Cloud/Mike/Uni_temp/SSGB/SSGB.sqlite")
df = dbGetQuery(db, "SELECT * FROM SSGB_obs WHERE Station = 'CassleyPS'") %>%
  janitor::clean_names() %>%
  as_tibble() %>%
  mutate(hog = str_sub(date, 6, 10),
         date = ymd(date),
         snowline_elev = replace(snowline_elev, snowline_elev == "m", NA),
         snowline_elev = replace(snowline_elev, snowline_elev == "99", NA),
         snowline_elev = replace(snowline_elev, snowline_elev == "n", "2000"),
         snowline_elev = as.numeric(snowline_elev)) %>%
  select(-snowline, snowline = snowline_elev)

# December only
df_dec = df %>%
  filter(month(date) == 12)

# Missing values and no snow
y = x %>%
              filter( %>%
              count(hydro_year, name = "value") %>%
  mutate(var = "missing") %>%
  bind_rows(x %>%
              filter(snowline == 2000) %>%
              count(hydro_year, name = "value") %>%
            mutate(var = "no_snow")) %>%
  spread(var, value) %>%
  mutate(missing = replace_na(missing, 0),
         no_snow = replace(no_snow, & missing <span id="mce_SELREST_start" style="overflow:hidden;line-height:0;"></span>< 5, 0))

# Plot
ggplot(y, aes(hydro_year, no_snow)) +
  geom_point() +
  stat_smooth(size = 1.5) +
  coord_cartesian(ylim = c(0, 31)) +
  labs(title = "How often are the hills around\nCassley Power Station snow free in December?",
       subtitle = "Created by Mike Spencer with SSGB data (",
       x = "Year",
       y = "Days without snow") +
  theme_bw() +
  theme(text = element_text(size = 20),
        plot.subtitle = element_text(size = 12))

To leave a comment for the author, please follow the link and comment on their blog: R – scottishsnow. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)