A simple two-dimensional parameterisation for Flux Footprint Prediction ( FFP )

Flux footprint models are often used for interpretation of flux tower measurements, to estimate position and size of surface source areas, and the relative contribution of passive scalar sources to measured fluxes. Accurate knowledge of footprints is of crucial importance for any upscaling exercises from single site flux measurements to local or regional scale. Hence, footprint models are ultimately also of considerable importance for improved greenhouse gas budgeting. With increasing numbers of flux towers within large monitoring networks such as FluxNet, ICOS (Integrated Carbon Observation System), NEON (National Ecological Observatory Network), or AmeriFlux, and with increasing temporal range of observations from such towers (of the order of decades) and availability of airborne flux measurements, there has been an increasing demand for reliable footprint estimation. Even though several sophisticated footprint models have been developed in recent years, most are still not suitable for application to long time series, due to their high computational demands. Existing fast footprint models, on the other hand, are based on surface layer theory and hence are of restricted validity for real-case applications. To remedy such shortcomings, we present the twodimensional parameterisation for Flux Footprint Prediction (FFP), based on a novel scaling approach for the crosswind distribution of the flux footprint and on an improved version of the footprint parameterisation of Kljun et al. (2004b). Compared to the latter, FFP now provides not only the extent but also the width and shape of footprint estimates, and explicit consideration of the effects of the surface roughness length. The footprint parameterisation has been developed and evaluated using simulations of the backward Lagrangian stochastic particle dispersion model LPDM-B (Kljun et al., 2002). Like LPDM-B, the parameterisation is valid for a broad range of boundary layer conditions and measurement heights over the entire planetary boundary layer. Thus, it can provide footprint estimates for a wide range of real-case applications. The new footprint parameterisation requires input that can be easily determined from, for example, flux tower measurements or airborne flux data. FFP can be applied to data of long-term monitoring programmes as well as be used for quick footprint estimates in the field, or for designing new sites.

Please acknowledge the source of your footprint estimates by citing the above article. Thanks!

How to use FFP R code
The FFP function is not meant to be a stand-alone function, but a function that can be called from within your own data processing code. For example, FFP can be called from within a loop of your own R function to calculate a series of footprints for a selected time series of your flux data.

1) Single footprint
To calculate a single FFP flux footprint, call calc_footprint_FFP as described below. To rotate a single flux footprint into the main wind direction, call calc_footprint_FFP with an optional input value for the wind direction. To derive the source area of R% of the flux footprint, call calc_footprint_FFP with an optional additional single value of R (e.g., 80 or 0.8 for 80%), or with an array of Rs (e.g.,c(20,40,60,80) or seq(10, 80, 10)).
FFP z0,umean,h,ol,sigmav,ustar)  Optional input: wind_dir = Wind direction in degrees (of 360) for rotation of the footprint r = Percentage of source area, i.e. a value between 10% and 90%. Can be either a single value (e.g., "80") or an array of increasing percentage values (e.g., " seq(10, 80, 10)") Expressed either in percentages ("80") or in fractions of 1 ("0.8") Default is [10:10:80]. Set to "NaN" for no output of percentages nx = Integer scalar defining the number of grid elements of the scaled footprint. Large nx results in higher spatial resolution and higher computing time. Default is 1000, nx must be >=600.

2) Single footprint within a given, fixed domain
In some cases it may be useful to derive a footprint for a pre-set given domain. For such a case, use calc_footprint_FFP_climatology with a single set of input parameters. For details of input and output parameters, see Section 3 below.

3) Footprint climatology
A footprint climatology is an aggregation of footprints over several time steps. To calculate a footprint climatology with FFP, call calc_footprint_FFP_climatology as described below. Again, optional input parameters can be provided to rotate each single flux footprint of the footprint climatology into the wind direction of the corresponding time step. To derive the source area of R% of the flux footprint climatology, call calc_footprint_FFP_climatology with an optional additional single value of R (e.g., 80 for 80%), or with an array of Rs (e.g.,c(20,40,60,80) or seq(10, 80, 10)). This function calculates footprints within a fixed physical domain (either default area or user input). For determining the optimal extent of the domain (large enough to include the footprints) use the function calc_footprint_FFP as described in Section 1.
Important: to run calc_footprint_FFP_climatology, the "spatialfil" and "EBImages" packages need to be installed. See information at the end of this file on how to install EBImages.

FFP Input
All vectors need to be of equal length ( Small dx,dy result in higher spatial resolution and higher computing time Default is dx = dy = 2 m (if neither domain nor nx and ny are given). If only dx is given, dx=dy. nx, ny = Two integer scalars defining the number of grid elements in x and y Large nx and ny result in higher spatial resolution and higher computing time Default is nx = ny = 1000. If only nx is given, nx=ny If dx,dy and nx,ny are given, dx,dy is given priority r = Percentage of source area, i.e. a value between 10% and 90%. Can be either a single value (e.g., "80") or an array of increasing percentage values (e.g., " seq(10, 80, 10)") Expressed either in percentages ("80") or in fractions of 1 ("0.8") Default is [10:10:80]. Set to "NaN" for no output of percentages rslayer = Calculate footprint even if zm within roughness sublayer: set rslayer = 1. Note that this only gives a rough estimate of the footprint as the model is not valid within the roughness sublayer. Default is 0 (i.e. no footprint for within RS). z0 is needed for estimation of the RS. smooth_data = Apply convolution filter to smooth footprint climatology if smooth_data=1 (default) crop = Crop output area to size of the 80% footprint or the largest r given if crop=1 pulse = Display progress of footprint calculations every pulse-th footprint (e.g., "100") Three-dimensional footprint surface (using the plot3D package) surf3D(ffp$x.2d, ffp$y.2d,ffp$f.2d)

FFP output
For the footprint climatology, f_2d above needs to be replaced by fclim_2d.