Minor shifts in atmospheric circulation can have major impacts on rainfall patterns in mountainous regions. This has important implications for crops such as coffee which are grown at altitude.

Rainfall derives from uplift of moist air. In mountainous areas, uplift is forced by terrain and so depends on the horizontal wind vector . The dependence of rainfall on wind direction is illustrated below for a fictitious range of hills (dashed contours indicate the hills).

The “upslope” model for rainfall () at location is:

(1)

is the gradient of the terrain height and is related to the saturated water vapour density. is the background rainfall rate.

In reality, Equation (2) is a poor approximation. Rain spreads downwind because there is a delay before raindrops can form, and another delay before fallout. Airflow dynamics also spreads the influence of an obstacle upwind. These effects can be included in a Fourier transformed version of equation (1):

(2)

is the Fourier transform of the terrain height and is a form factor which includes the effects of advection and mountain wave dynamics. Equation (2) reduces to the upslope model when .

*R*: Fast Fourier Transform & Rcpp

The figure illustrates orographic rainfall for a fictitious range of gaussian hills. It is very quick to compute (2) using Discrete FFT. If you use *R*, things can be speeded up by constructing the integrand in C++ using *Rcpp* before passing it to *fft*. This is very fast even for realistic landscapes.

1 |
R. Smith & I. Barstad, <em>A linear theory of orographic precipitation</em>, J. Atmos. Sci., 61, 1377–1391, (2004) |

## 2 Comments

Thanks for the post, really interesting… I would like to try implementing it in a landscape evolution model that I am developing.

I was just wondering if you could send me a bit more details on how to set up the fft in R based on your Rcpp implementation. For example what are the definitions of the following parameters in the cpp file:

– L,

– H_a,

– ntau1, and

– ntau2

Thanks

Tristan

Hi Tristan,

L, H_a, ntau1 and ntau2 are dimensionless parameters describing the form factor g(k) of Smith & Barstad’s model.

In terms of a (the lattice spacing of the discretised landscape), L= scorer*a, H_a = vertical scale in units of a, ntau = U/a*tau where tau are timescales defined in Smith and Barstad. U is the wind speed.

the mountain wave dynamics is controlled by the scorer parameter (Brunt–Väisälä frequency of the stable atmosphere divided by U).

The R implementation consists of

(1) fft on the gradient of the landscape matrix S(k,l)

(2) multiply by form factor transMatC_Re + i*transMatC_Im

(3) inverse fft