Gridpp 0.4.2
A post-processing library for gridded weather forecasts
Functions | Enumerations | Classes | Namespaces | Variables
gridpp Namespace Reference

Functions

vec2 bilinear (const Grid &igrid, const Grid &ogrid, const vec2 ivalues)
 Bilinear downscaling grid to grid. More...
 
vec bilinear (const Grid &igrid, const Points &opoints, const vec2 ivalues)
 Bilinear downscaling grid to points. More...
 
float dewpoint (float temperature, float relative_humidity)
 Calculate dewpoint temperature from temperature and relative humidity. More...
 
vec dewpoint (const vec &temperature, const vec &relative_humidity)
 Vector version of dewpoint calculation. More...
 
vec2 fill (const Grid &igrid, const vec2 &input, const Points &points, const vec &radii, float value, bool outside)
 Fill in values inside or outside a set of circles. More...
 
vec get_neighbourhood_thresholds (const vec2 &input, int num_thresholds)
 Calculate appropriate approximation thresholds for neighbourhood quantile. More...
 
vec get_neighbourhood_thresholds (const vec3 &input, int num_thresholds)
 Calculate appropriate approximation thresholds for neighbourhood quantile. More...
 
Statistic get_statistic (std::string name)
 Convert name of a statistic enum. More...
 
void initialize_omp ()
 Sets the number of OpenMP threads to 1 if OMP_NUM_THREADS undefined. More...
 
vec2 nearest (const Grid &igrid, const Grid &ogrid, const vec2 ivalues)
 Nearest neighbour dowscaling grid to grid. More...
 
vec nearest (const Grid &igrid, const Points &opoints, const vec2 ivalues)
 Nearest neighbour dowscaling grid to point. More...
 
vec2 nearest (const Grid &igrid, const Points &opoints, const vec3 ivalues)
 
vec2 neighbourhood (const vec2 &input, int radius, Statistic statistic)
 Spatial neighbourhood filter. More...
 
vec2 neighbourhood_brute_force (const vec2 &input, int radius, Statistic statistic)
 Spatial neighbourhood filter without any shortcuts. More...
 
vec2 neighbourhood_ens (const vec3 &input, int radius, Statistic statistic)
 Neighbourhood filter in space and across ensemble members. More...
 
vec2 neighbourhood_quantile (const vec2 &input, float quantile, int radius)
 Spatial neighbourhood filter. More...
 
vec2 neighbourhood_quantile_ens (const vec3 &input, float quantile, int radius)
 Neighbourhood filter in space and across ensemble members. More...
 
vec2 neighbourhood_quantile_ens_fast (const vec3 &input, float quantile, int radius, const vec &thresholds)
 Approximate neighbourhood filter space and across members for quantile operation. More...
 
vec2 neighbourhood_quantile_fast (const vec2 &input, float quantile, int radius, const vec &thresholds)
 Approximate spatial neighbourhood filter for quantile operation. More...
 
vec2 optimal_interpolation (const gridpp::Grid &bgrid, const vec2 &background, const gridpp::Points &points, const vec &pobs, const vec &pratios, const vec &pbackground, const gridpp::StructureFunction &structure, int max_points)
 Optimal interpolation for a deterministic field. More...
 
vec3 optimal_interpolation_ensi (const gridpp::Grid &bgrid, const vec3 &input, const gridpp::Points &points, const vec &pobs, const vec &psigmas, const vec2 &pbackground, const gridpp::StructureFunction &structure, int max_points)
 Optimal interpolation using a structure function based on an ensemble See Lussana et al 2019 (DOI: 10.1002/qj.3646) More...
 
vec2 optimal_interpolation_transform (const gridpp::Grid &bgrid, const vec2 &background, float bsigma, const gridpp::Points &points, const vec &pobs, const vec &psigma, const vec &pbackground, const gridpp::StructureFunction &structure, int max_points, const gridpp::Transform &transform)
 
float pressure (float ielev, float oelev, float ipressure, float itemperature=288.15)
 Calculate pressure at a new elevation. More...
 
float qnh (float pressure, float altitude)
 Diagnose QNH from pressure and altitude. More...
 
vec qnh (const vec &pressure, const vec &altitude)
 Vector version of QNH calculation. More...
 
vec2 quantile_mapping (const vec2 &input, const vec &x, const vec &y, gridpp::Extrapolation policy)
 Quantile mapping of 2D grid using a constant quantile map. More...
 
vec quantile_mapping (const vec &input, const vec &x, const vec &y, gridpp::Extrapolation policy)
 Quantile mapping of a vector of value. More...
 
float quantile_mapping (float input, const vec &ref, const vec &fcst, gridpp::Extrapolation policy)
 Quantile mapping of a single value. More...
 
float relative_humidity (float temperature, float dewpoint)
 Calculate relative humidity from temperature and dewpoint temperature. More...
 
void set_omp_threads (int num)
 Set the number of OpenMP threads to use. More...
 
vec2 simple_gradient (const Grid &igrid, const Grid &ogrid, const vec2 ivalues, float elev_gradient)
 
vec simple_gradient (const Grid &igrid, const Points &opoints, const vec2 ivalues, float elev_gradient)
 
std::string version ()
 The gridpp version. More...
 
float wetbulb (float temperature, float pressure, float relative_humidity)
 Calculate wetbulb temperature from temperature, pressure, and relative humidity. More...
 
float wind_speed (float xwind, float ywind)
 Diagnose wind speed from its components. More...
 
vec wind_speed (const vec &xwind, const vec &ywind)
 
vec2 wind_speed (const vec2 &xwind, const vec2 &ywind)
 

Enumerations

enum  Extrapolation { OneToOne = 0, MeanSlope = 10, NearestSlope = 20, Zero = 30 }
 Methods for extrapolating outside a curve. More...
 
enum  Statistic {
  Mean = 0, Min = 10, Median = 20, Max = 30,
  Quantile = 40, Std = 50, Variance = 60, Sum = 70,
  Unknown = -1
}
 Statistical operations to reduce a vector to a scalar. More...
 

Classes

class  BarnesStructure
 Simple structure function based on distance, elevation, and land area fraction. More...
 
class  BoxCox
 
class  CressmanStructure
 Simple structure function based on distance, elevation, and land area fraction. More...
 
class  CrossValidation
 
class  Grid
 Represents a 2D grid of locations and their metadata. More...
 
class  Identity
 
class  KDTree
 Helper class for Grid and Points. More...
 
class  Log
 
class  Point
 
class  Points
 Represents a vector of locations and their metadata. More...
 
class  StructureFunction
 Covariance structure function. More...
 
class  Transform
 

Namespaces

 util
 Helper functions.
 

Variables

static const float MV = NAN
 
static const float MV_CML = -999
 
static const float pi = 3.14159265
 
static double radius_earth = 6.37e6
 

Enumeration Type Documentation

◆ Extrapolation

Methods for extrapolating outside a curve.

Enumerator
OneToOne 

Continue past the end-points using a slope of 1.

MeanSlope 

Continue past the end-points using the mean slope of the curve.

NearestSlope 

Continue past the end-points using the slope of the two lowermost or uppermost points in the curve.

Zero 

Continue past the end-points using a slope of 0.

◆ Statistic

Statistical operations to reduce a vector to a scalar.

Enumerator
Mean 

Mean of values.

Min 

Minimum of values.

Median 

Mean of values.

Max 

Maximum of values.

Quantile 

A quantile from values.

Std 

Standard deviation of values.

Variance 

Population variance of values.

Sum 

Sum of values.

Unknown 

Unknown statistic.

Function Documentation

◆ bilinear() [1/2]

vec2 gridpp::bilinear ( const Grid igrid,
const Grid ogrid,
const vec2  ivalues 
)

Bilinear downscaling grid to grid.

Parameters
igridInput grid
ogridOutput grid to downscale to
ivalues2D vector of values on the input grid
Returns
Values on the output grid

◆ bilinear() [2/2]

vec gridpp::bilinear ( const Grid igrid,
const Points opoints,
const vec2  ivalues 
)

Bilinear downscaling grid to points.

Parameters
igridInput grid
ogridOutput points to downscale to
ivalues2D vector of values on the input grid
Returns
Values for the output points

◆ dewpoint() [1/2]

float gridpp::dewpoint ( float  temperature,
float  relative_humidity 
)

Calculate dewpoint temperature from temperature and relative humidity.

Parameters
temperatureTemperature [K]
relative_humidityRelative humidity [1]
Returns
Dewpoint temperature [K]

◆ dewpoint() [2/2]

vec gridpp::dewpoint ( const vec temperature,
const vec relative_humidity 
)

Vector version of dewpoint calculation.

Parameters
temperatureTemperatures [K]
relative_humidityRelative humidities [1]
Returns
Dewpoint temperatures [K]

◆ fill()

vec2 gridpp::fill ( const Grid igrid,
const vec2 input,
const Points points,
const vec radii,
float  value,
bool  outside 
)

Fill in values inside or outside a set of circles.

Parameters
inputDeterministic values with dimensions Y, X
radiiiCircle radii for each point
valueFill in this value
outsideif True, fill outside circles, if False, fill inside circles

◆ get_neighbourhood_thresholds() [1/2]

vec gridpp::get_neighbourhood_thresholds ( const vec2 input,
int  num_thresholds 
)

Calculate appropriate approximation thresholds for neighbourhood quantile.

Parameters
input2D grid of values
num_thresholdsNumber of thresholds

◆ get_neighbourhood_thresholds() [2/2]

vec gridpp::get_neighbourhood_thresholds ( const vec3 input,
int  num_thresholds 
)

Calculate appropriate approximation thresholds for neighbourhood quantile.

Parameters
input3D grid of values
num_thresholdsNumber of thresholds

◆ get_statistic()

gridpp::Statistic gridpp::get_statistic ( std::string  name)

Convert name of a statistic enum.

◆ initialize_omp()

void gridpp::initialize_omp ( )

Sets the number of OpenMP threads to 1 if OMP_NUM_THREADS undefined.

◆ nearest() [1/3]

vec2 gridpp::nearest ( const Grid igrid,
const Grid ogrid,
const vec2  ivalues 
)

Nearest neighbour dowscaling grid to grid.

Parameters
igridInput grid
ogridOutput grid to downscale to
ivalues2D vector of values on the input grid
Returns
Values on the output grid

◆ nearest() [2/3]

vec gridpp::nearest ( const Grid igrid,
const Points opoints,
const vec2  ivalues 
)

Nearest neighbour dowscaling grid to point.

Parameters
igridInput grid
ogridOutput points to downscale to
ivalues2D vector of values on the input grid
Returns
Values for the output points

◆ nearest() [3/3]

vec2 gridpp::nearest ( const Grid igrid,
const Points opoints,
const vec3  ivalues 
)

◆ neighbourhood()

vec2 gridpp::neighbourhood ( const vec2 input,
int  radius,
gridpp::Statistic  statistic 
)

Spatial neighbourhood filter.

Parameters
input2D grid of values
radiusFilter radius in number of gridpoints
statisticStatistic to compute

◆ neighbourhood_brute_force()

vec2 gridpp::neighbourhood_brute_force ( const vec2 input,
int  radius,
gridpp::Statistic  statistic 
)

Spatial neighbourhood filter without any shortcuts.

This is quite slow and is only useful for testing.

Parameters
input2D grid of values
radiusFilter radius in number of gridpoints
operationone of min, mean, median, max

◆ neighbourhood_ens()

vec2 gridpp::neighbourhood_ens ( const vec3 input,
int  radius,
gridpp::Statistic  statistic 
)

Neighbourhood filter in space and across ensemble members.

Parameters
input3D vector with dimensions (Y, X, ensemble)
radiusFilter radius in number of gridpoints
statisticStatistic to compute

◆ neighbourhood_quantile()

vec2 gridpp::neighbourhood_quantile ( const vec2 input,
float  quantile,
int  radius 
)

Spatial neighbourhood filter.

An exact but slow algorithm.

Parameters
input2D grid of values
radiusFilter radius in number of gridpoints
quantileQuantile to calculate for (between 0 and 1)

◆ neighbourhood_quantile_ens()

vec2 gridpp::neighbourhood_quantile_ens ( const vec3 input,
float  quantile,
int  radius 
)

Neighbourhood filter in space and across ensemble members.

An exampt but slow algorithm.

Parameters
input3D grid of values
radiusFilter radius in number of gridpoints
quantileQuantile to calculate for (between 0 and 1)

◆ neighbourhood_quantile_ens_fast()

vec2 gridpp::neighbourhood_quantile_ens_fast ( const vec3 input,
float  quantile,
int  radius,
const vec thresholds 
)

Approximate neighbourhood filter space and across members for quantile operation.

Parameters
input3D vector with dimensions (Y, X, ensemble)
quantileQuantile to compute (between 0 and 1)
radiusFilter radius in number of gridpoints
thresholdsVector of thresholds to use to approximate value

◆ neighbourhood_quantile_fast()

vec2 gridpp::neighbourhood_quantile_fast ( const vec2 input,
float  quantile,
int  radius,
const vec thresholds 
)

Approximate spatial neighbourhood filter for quantile operation.

Parameters
input2D grid of values
quantileQuantile to compute (between 0 and 1)
radiusFilter radius in number of gridpoints
thresholdsVector of thresholds to use to approximate value

◆ optimal_interpolation()

vec2 gridpp::optimal_interpolation ( const gridpp::Grid bgrid,
const vec2 background,
const gridpp::Points points,
const vec pobs,
const vec pratios,
const vec pbackground,
const gridpp::StructureFunction structure,
int  max_points 
)

Optimal interpolation for a deterministic field.

Parameters
bgridGrid of background field
background2D field of background values
pointsPoints of observations
pobsVector of observations
pratiosVector of ratio of observation error variance to background variance
pbackgroundBackground with observation operator
structureStructure function
max_pointsMaximum number of observations to use inside localization zone; Use 0 to disable

◆ optimal_interpolation_ensi()

vec3 gridpp::optimal_interpolation_ensi ( const gridpp::Grid bgrid,
const vec3 input,
const gridpp::Points points,
const vec pobs,
const vec psigmas,
const vec2 pbackground,
const gridpp::StructureFunction structure,
int  max_points 
)

Optimal interpolation using a structure function based on an ensemble See Lussana et al 2019 (DOI: 10.1002/qj.3646)

Parameters
input3D field of background values (Y, X, E)
bgridgrid corresponding to input
pobsvector of observations
pcivector of ci values
pointsobservation points

◆ optimal_interpolation_transform()

vec2 gridpp::optimal_interpolation_transform ( const gridpp::Grid bgrid,
const vec2 background,
float  bsigma,
const gridpp::Points points,
const vec pobs,
const vec psigma,
const vec pbackground,
const gridpp::StructureFunction structure,
int  max_points,
const gridpp::Transform transform 
)

◆ pressure()

float gridpp::pressure ( float  ielev,
float  oelev,
float  ipressure,
float  itemperature = 288.15 
)

Calculate pressure at a new elevation.

Parameters
ielevElevation at start point
oelevElevation at new point
ipressurePressure at start point
itemperatureTemperature at start point
Returns
Pressure at new point

◆ qnh() [1/2]

float gridpp::qnh ( float  pressure,
float  altitude 
)

Diagnose QNH from pressure and altitude.

Parameters
pressurePressure at point [pa]
altitudeAltitude of point [m]
Returns
QNH [pa]

◆ qnh() [2/2]

vec gridpp::qnh ( const vec pressure,
const vec altitude 
)

Vector version of QNH calculation.

Parameters
pressurePressures at points [pa]
altitudeAltitudes of points [m]
Returns
QNH [pa]

◆ quantile_mapping() [1/3]

vec2 gridpp::quantile_mapping ( const vec2 input,
const vec x,
const vec y,
gridpp::Extrapolation  policy 
)

Quantile mapping of 2D grid using a constant quantile map.

Parameters
inputValues on grid
xX-axis parameters values
yY-axis parameters values
policyExtrapolation policy
Returns
Quantile-mapped values

◆ quantile_mapping() [2/3]

vec gridpp::quantile_mapping ( const vec input,
const vec x,
const vec y,
gridpp::Extrapolation  policy 
)

Quantile mapping of a vector of value.

Parameters
inputInput values
xX-axis parameters values
yY-axis parameters values
policyExtrapolation policy
Returns
Quantile-mapped output values

◆ quantile_mapping() [3/3]

float gridpp::quantile_mapping ( float  input,
const vec ref,
const vec fcst,
gridpp::Extrapolation  policy 
)

Quantile mapping of a single value.

Parameters
inputInput value
xX-axis parameters values
yY-axis parameters values
policyExtrapolation policy
Returns
Quantile-mapped output value

◆ relative_humidity()

float gridpp::relative_humidity ( float  temperature,
float  dewpoint 
)

Calculate relative humidity from temperature and dewpoint temperature.

Parameters
temperatureTemperature [K]
dewpointDewpoint temperature [K]
Returns
Relative humidity [1]

◆ set_omp_threads()

void gridpp::set_omp_threads ( int  num)

Set the number of OpenMP threads to use.

Overwrides OMP_NUM_THREAD env variable.

◆ simple_gradient() [1/2]

vec2 gridpp::simple_gradient ( const Grid igrid,
const Grid ogrid,
const vec2  ivalues,
float  elev_gradient 
)

◆ simple_gradient() [2/2]

vec gridpp::simple_gradient ( const Grid igrid,
const Points opoints,
const vec2  ivalues,
float  elev_gradient 
)

◆ version()

std::string gridpp::version ( )

The gridpp version.

Returns
The gridpp version

◆ wetbulb()

float gridpp::wetbulb ( float  temperature,
float  pressure,
float  relative_humidity 
)

Calculate wetbulb temperature from temperature, pressure, and relative humidity.

Parameters
temperatureTemperature [K]
pressureAir pressure [pa]
Relativehumidity [1]
Returns
Wetbulb temperature [K]

◆ wind_speed() [1/3]

float gridpp::wind_speed ( float  xwind,
float  ywind 
)

Diagnose wind speed from its components.

Parameters
xwindX-component of wind [any unit]
ywindY-component of wind [any unit]
Returns
Wind speed [any unit]

◆ wind_speed() [2/3]

vec gridpp::wind_speed ( const vec xwind,
const vec ywind 
)

◆ wind_speed() [3/3]

vec2 gridpp::wind_speed ( const vec2 xwind,
const vec2 ywind 
)

Variable Documentation

◆ MV

const float gridpp::MV = NAN
static

◆ MV_CML

const float gridpp::MV_CML = -999
static

◆ pi

const float gridpp::pi = 3.14159265
static

◆ radius_earth

double gridpp::radius_earth = 6.37e6
static