Quantifying Arctic Storm Risk in a Changing Climate

Alec Vessey (Final Year PhD Student) – alexandervessey@pgr.reading.ac.uk 
Supervisors: Kevin Hodges (UoR), Len Shaffrey (UoR), Jonny Day (ECMWF), John Wardman (AXA XL)
 

Arctic sea ice extent has reduced dramatically since it was first monitored by satellites in 1979 – at a rate of 60,000 km2 per year (see Figure 1a). This is equivalent to losing an ice sheet the size of London every 10 days. This dramatic reduction in sea ice extent has been caused by global temperatures increasing, which is a result of anthropogenic climate change. The Arctic is the region of Earth that has undergone the greatest warming in recent decades, due to the positive feedback mechanism of Arctic Amplification. Global temperatures are expected to continue to increase into the 21st century, further reducing Arctic sea ice extent. 

Consequently, the Arctic Ocean has become increasingly open and navigable for ships (see Figure 1b and 1c). The Arctic Ocean provides shorter distances between ports in Europe and North America to ports in Asia than more traditional routes in the mid-latitudes that include the Suez Canal Route and the routes through the Panama Canal. There are two main shipping routes in the Arctic, the Northern Sea Route (along the coastline of Eurasia) and the Northwest Passage (through the Canadian Archipelago) (see Figure 2). For example, the distance between the Ports of Rotterdam and Tokyo can be reduced by 4,300 nautical-miles if ships travel through the Arctic (total distance: 7,000 nautical-miles) rather than using the mid-latitude route through the Suez Canal (total distance: 11,300 nautical-miles). Travelling through the Arctic could increase profits for shipping companies. Shorter journeys will require less fuel to be spent on between destinations and allow more time for additional shipping contracts to be pursued. It is expected that the number of ships in the Arctic will increase exponentially in the near future, when infrastructure is developed, and sea ice extent reduces further.  

Figure 1. Reductions in Arctic sea ice extent from 1979 – 2020. a) Annual Arctic sea ice extent per year between 1979-2020. b) Spatial distribution of Arctic sea ice in September 1980. c) Spatial distribution of Arctic sea ice in September 2012 (the lowest sea ice extent on record). Sourced from the National Sea and Ice Data Center.
Figure 2. A map of the two main shipping routes through the Arctic. The Northwest Passage connects North America with the Bering Strait (and onto Asia), and the Northern Sea Route connects Europe with the Bering Strait (and onto Asia). Source: BBC (2016).

However, as human activity in the Arctic increases, the vulnerability of valuable assets and the risk to life due to exposure to hazardous weather conditions also increases.  Hazardous weather conditions often occur during the passage of storms.  Storms cause high surface wind speeds and high ocean waves. Arctic storms have also been shown to lead to enhanced break up of sea ice, resulting in additional hazards when ice drifts towards shipping lanes. Furthermore, the Arctic environment is extremely cold, with search and rescue and other support infrastructure poorly established. Thus, the Arctic is a very challenging environment for human activity. 

Over the last century, the risks of mid-latitude storms and hurricanes have been a focal-point of research in the scientific community, due to their damaging impact in densely populated areas. Population in the Arctic has only just started to increase. It was only in 2008 that sea ice had retreated far enough for both of the Arctic shipping lanes to be open simultaneously (European Space Agency, 2008). Arctic storms are less well understood than these hazards, mainly because they have not been a primary focus of research. Reductions in sea ice extent and increasing human activity mean that it is imperative to further the understanding of Arctic storms. 

This is what my PhD project is all about – quantifying the risk of Arctic storms in a changing climate. My project has four main questions, which try to fill the research gaps surrounding Arctic storm risk. These questions include: 

  1. What are the present characteristics (frequency, spatial distribution, intensity) of Arctic storms, and, what is the associated uncertainty of this when using different datasets and storm tracking algorithms? 
  1. What is the structure and development of Arctic storms, and how does this differ to that of mid-latitude storms? 
  1. How might Arctic storms change in a future climate in response to climate change? 
  1. Can the risk of Arctic storms impacting shipping activities be quantified by combining storm track data and ship track data? 

Results of my first research question are summarised in a recent paper (https://link.springer.com/article/10.1007/s00382-020-05142-4 – Vessey et al. 2020).  I previously wrote a blog post on the The Social Metwork summarising this paper, which can be found at https://socialmetwork.blog/2020/02/21/arctic-storms-in-multiple-global-reanalysis-datasets/. This showed that there is a seasonality to Arctic storms, with most winter (DJF) Arctic storms occurring in the Greenland, Norwegian and Barents Sea region, whereas, summer (JJA) Arctic storms generally occur over the coastline of Eurasia and the high Arctic Ocean. Despite the dramatic reductions in Arctic sea ice over the past few decades (see Figure 1), there is no trend in Arctic storm frequency. In the paper, the uncertainty in the present climate characteristics of Arctic storms is assessed, by using multiple reanalysis datasets and tracking methods. A reanalysis datasets is our best approximation of past atmospheric conditions, that combines past observations with state-of-the-art Numerical Weather Prediction Models. 

The deadline for my PhD project is the 30th of June 2021, so I am currently experiencing the very busy period of writing up my Thesis. Hopefully, there aren’t too many hiccups over the next few months, and perhaps I will be able to write some of my research chapters up as papers.  

References: 

BBC, 2016, Arctic Ocean shipping routes ‘to open for months’. https://www.bbc.com/news/science-environment-37286750. Accessed 18 March 2021. 

European Space Agency, 2008: Arctic sea ice annual freeze-up underway. https://www.esa.int/Applications/Observing_the_Earth/Space_for_our_climate/Arctic_sea_ice_annual_freeze_nobr_-up_nobr_underway. Accessed 18 March 2021. 

National Snow & Ice Data Centre, (2021), Sea Ice Index. https://nsidc.org/data/seaice_index. Accessed 18 March 2021. 

Vessey, A.F., K.I., Hodges, L.C., Shaffrey and J.J. Day, 2020: An Inter-comparison of Arctic synoptic scale storms between four global reanalysis datasets. Climate Dynamics, 54 (5), 2777-2795. 

Dialogue Concerning the Obvious and Obscurity of Scientific Programming in Python: A Lost Script

Disclaimer: The characters and events depicted in this blog post are entirely fictitious. Any similarities to names, incidents or source code are entirely coincidental.

Antonio (Professor): Welcome to the new Masters module and PhD training course, MTMX101: Introduction to your worst fears of scientific programming in Python. In this course, you will be put to the test–to spot and resolve the most irritating ‘bugs’ that will itch, sorry, gl-itch your software and intended data analysis.

Berenice (A PhD student): Before we start, would you have any tips on how to do well for this module?

Antonio: Always read the code documentation. Otherwise, there’s no reason for code developers to host their documentation on sites like rtfd.org (Read the Docs).

Cecilio (An MSc student): But… didn’t we already do an introductory course on scientific computing last term? Why this compulsory module?

Antonio: The usual expectation is for you to have to completed last term’s introductory computing module, but you may also find that this course completely changes what you used to consider to be your “best practices”… In other words, it’s a bad thing that you have taken that module last term but also a good thing you have taken that module last term. There may be moments where you may think “Why wasn’t I taught that?” I guess you’ll all understand soon enough! As per the logistics of the course, you will be assessed in the form of quiz questions such as the following:

Example #0: The Deviations in Standard Deviation

Will the following print statements produce the same numeric values?

import numpy as np
import pandas as pd

p = pd.Series(np.array([1,1,2,2,3,3,4,4]))
n = np.array([1,1,2,2,3,3,4,4])

print(p.std())
print(n.std())

Without further ado, let’s start with an easy example to whet your appetite.

Example #1: The Sum of All Fears

Antonio: As we all know, numpy is an important tool in many calculations and analyses of meteorological data. Summing and averaging are common operations. Let’s import numpy as np and consider the following line of code. Can anyone tell me what it does?

>>> hard_sum = np.sum(np.arange(1,100001))

Cecilio: Easy! This was taught in the introductory course… Doesn’t this line of code sum all integers from 1 to 100 000?

Antonio: Good. Without using your calculators, what is the expected value of hard_sum?

Berenice: Wouldn’t it just be 5 000 050 000?

Antonio: Right! Just as quick as Gauss. Let’s now try it on Python. Tell me what you get.

Cecilio: Why am I getting this?

>>> hard_sum = np.sum(np.arange(1,100001))
>>> print(hard_sum)
705082704

Berenice: But I’m getting the right answer instead with the same code! Would it be because I’m using a Mac computer and my MSc course mate is using a Windows system?

>>> hard_sum = np.sum(np.arange(1,100001))
>>> print(hard_sum)
5000050000

Antonio: Well, did any of you get a RuntimeError, ValueError or warning from Python, despite the bug? No? Welcome to MTMX101!

Cecilio: This is worrying! What’s going on? Nobody seemed to have told me about this.

Berenice: I recall learning something about the computer’s representation of real numbers in one of my other modules. Would this be problem?

Antonio: Yes, I like your thinking! But that still doesn’t explain why you both got different values in Python. Any deductions…? At this point, I will usually set this as a homework assignment, but since it’s your first MTMX101 lecture, here is the explanation on Section 2.2.5 of your notes.

If we consider the case of a 4-bit binary, and start counting from 0, the maximum number we can possibly represent is 15. Adding 1 to 15, would lead to 0 being represented, as shown in Figure 1. This is called integer overflow, just like how an old car’s analogue 4-digit odometer “resets” to zero after recording 9999 km. As for the problem of running the same code and getting different results on a Windows and Mac machine, a numpy integer array on Windows defaults to 32-bit integer, whereas it is 64-bit on Mac/Linux, and as expected, the 64-bit integer has more bits and can thus represent our expected value of 5000050000. So, how do we mitigate this problem when writing future code? Simply specify the type argument and force Python to use 64-bit integers when needed.

>>> hard_sum = np.sum(np.arange(1,100001), dtype=np.int64)
>>> print(type(hard_sum))
<class 'numpy.int64'>
>>> print(hard_sum)
5000050000

As to why we got the spurious value of 705082704 from using 32-bit integers, I will leave it to you to understand it from the second edition of my book, Python Puzzlers!

Figure 1: Illustration of overflow in a 4-bit unsigned integer

Example #2: An Important Pointer for Copying Things

Antonio: On to another simple example, numpy arrays! Consider the following two-dimensional array of temperatures in degree Celsius.

>>> t_degrees_original = np.array([[2,1,0,1], [-1,0,-1,-1], [-3,-5,-2,-3], [-5,-7,-6,-7]])

Antonio: Let’s say we only want the first three rows of data, and in this selection would like to set all values on the zeroth row to zero, while retaining the values in the original array. Any ideas how we could do that?

Cecilio: Hey! I’ve learnt this last term, we do array slicing.

>>> t_degrees_slice = t_degrees_original[0:3,:]
>>> t_degrees_slice[0,:] = 0

Antonio: I did say to retain the values in the original array…

>>> print(t_degrees_original)
[[ 0  0  0  0]
[-1  0 -1 -1]
[-3 -5 -2 -3]
[-5 -7 -6 -7]]

Cecilio: Oh oops.

Berenice: Let me suggest a better solution.

>>> t_degrees_original = np.array([[2,1,0,1], [-1,0,-1,-1], [-3,-5,-2,-3], [-5,-7,-6,-7]])
>>> t_degrees_slice = t_degrees_original[[0,1,2],:]
>>> t_degrees_slice[0,:] = 0
>>> print(t_degrees_original)
[[ 2  1  0  1]
[-1  0 -1 -1]
[-3 -5 -2 -3]
[-5 -7 -6 -7]]

Antonio: Well done!

Cecilio: What? I thought the array indices 0:3 and 0,1,2 would give you the same slice of the numpy array.

Antonio: Let’s clarify this. The former method of using 0:3 is standard indexing and only copies the information on where the original array was stored (i.e. “view” of the original array, or “shallow copy”), while the latter 0,1,2 is fancy indexing and actually makes a new separate array with the corresponding values from the original array (i.e. “deep copy”). This is illustrated in Figure 2 showing variables and their respective pointers for both shallow and deep copying. As you now understand, numpy, is really not as easy as pie…

Figure 2: Simplified diagram showing differences in variable pointers and computer memory for shallow and deep copying

Cecilio: That was… deep.

Berenice: Is there a better way to deep copy numpy arrays rather than having to type in each index like I did e.g. [0,1,2]?

Antonio: There is definitely a better way! If we replace the first line of your code with the line below, you should be able to do a deep copy of the original array. Editing the copied array will not affect the original array.

>>> t_degrees_slice = np.copy(t_degrees_original[0:2,:])

I would suggest this method of np.copy to be your one– and preferably only one –obvious way to do a deep copy of a numpy array, since it’s the most intuitive and human-readable! But remember, deep copy only if you have to, since deep copying a whole array of values takes computation time and space! It’s now time for a 5-minute break.

Cecilio: More like time for me to eat some humble (num)py.


Antonio: Hope you all had a nice break. We now start with a fun pop quiz!

Consider the following Python code:

short_a = "galileo galilei"
short_b = "galileo galilei"
long_a = "galileo galilei " + "linceo"
long_b = "galileo galilei " + "linceo"
 
print(short_a == short_b)
print(short_a is short_b)
print(long_a == long_b)
print(long_a is long_b)

Which the correct sequence of booleans that will be printed out?
1. True, True, True, True
2. True, False, True, False
3. True, True, True, False

Antonio: In fact, they are all correct answers. It depends on whether you are running Python 3.6.0, Python 3.8.5 and whether you ran the code in a script or in the console! Although there is much more to learn about “string interning”, the quick lesson here is to always compare the value of strings using double equal signs (==) instead of using is.

Example #3: Array manipulation – A Sleight of Hand?

Antonio: Let’s say you are asked to calculate the centered difference of some quantity (e.g. temperature) in one dimension \frac{\partial T}{\partial x} with gird points uniformly separated by \Delta x of 1 metre. What is some code that we could use to do this?

Berenice: I remember this from one of the modelling courses. We could use a for loop to calculate most elements of \frac{\partial T}{\partial x} \approx \frac{T_{i+1} - T_{i-1}}{2\Delta x} then deal with the boundary conditions. The code may look something like this:

delta_x = 1.0
temp_x = np.random.rand(1000)
dtemp_dx = np.empty_like(temp_x)
for i in range(1, len(temp_x)-1):
    dtemp_dx[i] = (temp_x[i+1] - temp_x[i-1]) / (2*delta_x)

# Boundary conditions
dtemp_dx[0] = dtemp_dx[1]
dtemp_dx[-1] = dtemp_dx[-2]

Antonio: Right! How about we replace your for loop with this line?

dtemp_dx[1:-1] = (temp_x[2:] - temp_x[0:-2]) / (2*delta_x)

Cecilio: Don’t they just do the same thing?

Antonio: Yes, but would you like to have a guess which one might be the “better” way?

Berenice: In last term’s modules, we were only taught the method I proposed just now. I would have thought both methods were equally good.

Antonio: On my computer, running your version of code 10000 times takes 6.5 seconds, whereas running my version 10000 times takes 0.1 seconds.

Cecilio: That was… fast!

Berenice: Only if my research code could run with that kind of speed…

Antonio: And that is what we call vectorisation, the act of taking advantage of numpy’s optimised loop implementation instead of having to write your own!

Cecilio: I wish we knew all this earlier on! Can you tell us more?

Antonio: Glad your interest is piqued! Anyway, that’s all the time we have today. For this week’s homework, please familiarise yourself so you know how to

import this

module or import that package. In the next few lectures, we will look at more bewildering behaviours such as the “Mesmerising Mutation”, the “Out of Scope” problem that is in the scope of this module. As we move to more advanced aspects of this course, we may even come across the “Dynamic Duck” and “Mischievous Monkey”. Bye for now!

Do local or non-local sources of moisture contribute to extratropical cyclone precipitation?

Sophie Cuckow – s.cuckow@pgr.reading.ac.uk 

Introduction 

Transient corridors of strong horizontal water vapour transport, called atmospheric rivers have been linked to flooding over Europe and the US (Ralph et al. 2004, Lavers et al. (2011), Corringham et al. (2019)). Despite this, the relationship between atmospheric rivers and the precipitation associated with extratropical cyclones is debated in literature. It is often thought that atmospheric rivers feed moisture from the tropics directly to the cyclone where it rises to form precipitation (Ralph et al. (2004), Neiman et al. 2008)). However, this would only be the case if the cyclone propagation velocity is slower than the vapour transport, which might not occur when a cyclone is developing. Thus, arises the question, where does the moisture that produces the precipitation come from? The tropics via atmospheric rivers or from another location via a different mechanism? Understanding which moisture sources contribute to extratropical precipitation would help to improve forecasts and mitigate the risk of damage from flooding events. 

Case Study – Storm Bronagh

To investigate different moisture sources, we examined our case study, storm Bronagh, in an Earth relative and system relative framework. Storm Bronagh tracked over the UK during the 20th and 21st September 2018 and bought over 50mm of rainfall in 24 hours to parts of Wales and England. This led to flooding in mid-Wales and Sheffield (Met Office). The Earth relative framework allows us to investigate whether the storm has an associated atmospheric river. The cyclone relative framework allows us to investigate airstreams called conveyor belts, which are moving faster than the cyclone propagation velocity. To transition to this framework, we calculated the propagation velocity of the cyclone using the tracks produced by the tracking algorithm of Hodges (1995). We then subtracted the velocity from the Earth relative wind fields (European Centre for Mid-range Weather Forecasts Re-analysis 5, ERA5) to give the cyclone relative wind fields (Carlson (1980)).

Figure 1: The 300K isentropic surface on 21st September 2018 00:00UTC with the center of the storm (red cross, the isobars (white contours) and masked areas depicting where the surface intersects the ground are shown. Left hand side: The Earth relative moisture flux (streamlines) and the magnitude of the Earth relative moisture flux (filled contours). Right hand side: The system relative moisture flux (streamlines) and the magnitude of the system relative moisture flux (filled contours).

The Earth relative and system relative moisture flux (q\overline{U}) on the 300K isentropic surface for storm Bronagh on 21st September 2018 00:00UTC are shown in figure 1. In the Earth relative framework on the left-hand side of this figure, there is an atmospheric river approaching from the West as shown by the blue arrow. This suggests that the source of moisture for this storm was the tropics. However, the cyclone relative framework suggests there is in fact a local source of moisture. This can be seen on the right-hand side of figure 1 where three important airstreams can be seen: the warm conveyor belt (red), the dry intrusion (blue) and the feeder airstream (green). 

The warm conveyor belt is responsible for most of the cloud and precipitation associated with the cyclone. As shown in figure 1, it ascends ahead of the cold front and turns cyclonically to form the upper part of the cloud head, resulting in the iconic comma shape. Also shown in figure 1 is the dry intrusion which descends from behind the cold front into the centre of the cyclone. As this is a dry airflow, it creates a cloud free area between the cold frontal cloud band and the cloud head.

The feeder airstream is a low-level moist airflow that supplies moisture to the base of the warm conveyor belt where it rises. This can be seen in figure 1 where an airstream approaches from the East and splits into two branches, one of which joins the base of the warm conveyor belt. Therefore, in the cyclone relative framework, the moisture originates in the environment ahead of the cyclone rather than the tropics. Furthermore, the other branch of the feeder airstream indicates that the atmospheric river is a result of the moisture being left behind by the cyclone as it propagates. This supports the findings of Dacre et al. (2019) where the feeder airstream was identified by examining 200 of the most intense winter storms over 20 years. 

Therefore, the question arises, which cyclones have a local moisture source? Is it just the intense cyclones or do weaker ones have one too? In order to answer these questions, a diagnostic that identifies the feeder airstream has been developed thus, determining whether there is a local or non-local source of moisture.  

Identification Diagnostic

As seen in figure 1, the feeder airstream is synonymous with a saddle point where it splits into two branches. Therefore, the basis of the feeder airstream’s identification is a saddle point in the system relative moisture flux on an isentropic surface. Utilising theory from non-linear dynamics, the flow around a minimum or fixed point can be identified. Taking the Jacobian matrix of a field and Taylor expanding around a fixed-point, results in a quadratic equation which includes the determinant and trace of the field. By solving this equation and plotting the trace and determinant of the field gives insight into how each flow can be characterised (Drazin (1992)). This is shown in figure 2 where positive values of determinant of the field characterises spiral sources and sinks, whereas the negative values of determinant of the field characterises a saddle point. The determinant of a field is calculated using an equation which calculates the gradient of the field around the fixed point. Therefore, the feeder airstream can be identified by a minimum in the system relative moisture flux field coinciding with an area of negative determinant of the system relative moisture flux field.  Applying this theory to the case study, the feeder air stream for storm Bronagh was successfully identified for 21st September 2018 at 00:00UTC.

Figure 2: Poincare diagram based on Hundley (2012). This diagram describes how the flow around a fixed point in field A can be characterised using the determinant and trace of the field.

Conclusion and Future Work

In conclusion, the moisture source for the precipitation associated with storm Bronagh on 21st September 2018 00:00UTC is ahead of the environment rather than the tropics. This moisture is transported to the base of the warm conveyor belt via one branch of a low-level moist airflow called the feeder airstream. The second branch forms the atmospheric river which is a result of moisture being left behind by the cyclone as it propagates. To determine the source of moisture associated with Bronagh in an objective manner, an identification diagnostic has successfully been developed using the determinant of the system relative moisture flux field on an isentropic surface.

In order to develop the identification diagnostic further, it will be adapted to identify the feeder airstream in different stages of storm Bronagh’s evolution. This would verify whether the diagnostic is successfully identifying the feeder airstream and will give us more insight into the relative sources of moisture as the storm evolves. Future work would involve applying the identification diagnostic to a climatology of cyclones with varying intensity, genesis location and durations so that we can ascertain the dependance of the moisture sources on these parameters.

References

Carlson, T. N. (1980), ‘Airflow Through Midlatitude Cyclones and the Comma Cloud Pattern’, Monthly Weather Review

Corringham, T. W., Martin Ralph, F., Gershunov, A., Cayan, D. R., & Talbot, C. A. (2019).

Atmospheric rivers drive flood damages in the western United States. Science Advances, 5(12). https://doi.org/10.1126/sciadv.aax4631

Dacre, H. F., Martınez-Alvarado, O. & Mbengue, C. O. (2019), ‘Linking Atmospheric Rivers and Warm Conveyor Belt Airflows’, Journal of Hydrometeorology

Douglas R. Hundley. “Poincare Diagram: Classification of phase portraits in (detA, TrA) – plane.” Whitman College, WA, Fall 2012. http://people.whitman.edu/~hundledr/ courses/M244F12/M244/PoincareDiagram.jpg

Drazin, P. G. (1992), Nonlinear Systems, Cambridge Texts in Applied Mathematics, Cambridge University Press

Hodges, K. I. (1995), ‘Feature Tracking on the Unit Sphere’, Monthly Weather Review 123(12)

Lavers, D. A., Villarini, G., Allan, R. P., Wood, E. F. & Wade, A. J. (2012), ‘The detection of atmospheric rivers in atmospheric reanalyses and their links to British winter floods and the large-scale climatic circulation’, Journal of Geophysical Research Atmospheres

Neiman, P. J., Ralph, F. M., Wick, G. A., Lundquist, J. D. & Dettinger, M. D. (2008), ‘Meteorological Characteristics and Overland Precipitation Impacts of Atmospheric Rivers Affecting the West Coast of North America Based on Eight Years of SSM/I Satellite Observations’, Journal of Hydrometeorology

Met Office – “Strong Winds and Heavy Rain from Storms Ali and Bronagh” https://www.metoffice.gov.uk/binaries/content/assets/metofficegovuk/pdf/weather/learn-about/uk-past-events/interesting/2018/strong-winds-and-heavy-rain-from-storms-ali-and-bronagh—met-office.pdf

Ralph, F. M., Neiman, P. J. & Wick, G. A. (2004), ‘Satellite and CALJET Aircraft Observations of Atmospheric Rivers over the Eastern North Pacific Ocean during the Winter of 1997/98’, Monthly Weather Review