Gridpp 0.4.2
A post-processing library for gridded weather forecasts
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
gridpp.h File Reference
#include <vector>
#include <string>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point.hpp>
#include <boost/geometry/geometries/box.hpp>
#include <boost/geometry/index/rtree.hpp>

Go to the source code of this file.

Classes

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

Namespaces

 gridpp
 
 gridpp::util
 Helper functions.
 

Macros

#define __version__   GRIDPP_VERSION
 
#define GRIDPP_VERSION   "0.4.2"
 

Typedefs

typedef std::vector< double > dvec
 
typedef std::vector< dvecdvec2
 
typedef std::vector< int > ivec
 
typedef std::vector< ivecivec2
 
typedef std::vector< float > vec
 
typedef std::vector< vecvec2
 
typedef std::vector< vec2vec3
 

Enumerations

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

Functions

vec2 gridpp::bilinear (const Grid &igrid, const Grid &ogrid, const vec2 ivalues)
 Bilinear downscaling grid to grid. More...
 
vec gridpp::bilinear (const Grid &igrid, const Points &opoints, const vec2 ivalues)
 Bilinear downscaling grid to points. More...
 
vec gridpp::util::calc_even_quantiles (const vec &values, int num)
 Get reasonably spaced quantiles from a vector of values, ignoring duplicate values but including the first number after duplicated values. More...
 
float gridpp::util::calc_quantile (const vec &array, float quantile)
 
vec gridpp::util::calc_quantile (const vec2 &array, float quantile=gridpp::MV)
 
float gridpp::util::calc_statistic (const vec &array, Statistic statistic)
 
vec gridpp::util::calc_statistic (const vec2 &array, Statistic statistic)
 
double gridpp::util::clock ()
 
bool gridpp::util::compatible_size (const Grid &grid, const vec2 &v)
 Check if the grid is the same size as the 2D vector. More...
 
bool gridpp::util::compatible_size (const Grid &grid, const vec3 &v)
 
void gridpp::util::debug (std::string string)
 
float gridpp::dewpoint (float temperature, float relative_humidity)
 Calculate dewpoint temperature from temperature and relative humidity. More...
 
vec gridpp::dewpoint (const vec &temperature, const vec &relative_humidity)
 Vector version of dewpoint calculation. More...
 
void gridpp::util::error (std::string string)
 
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. More...
 
int gridpp::util::get_lower_index (float iX, const std::vector< float > &iValues)
 Find the index in a vector that is equal or just below a value. More...
 
vec gridpp::get_neighbourhood_thresholds (const vec2 &input, int num_thresholds)
 Calculate appropriate approximation thresholds for neighbourhood quantile. More...
 
vec gridpp::get_neighbourhood_thresholds (const vec3 &input, int num_thresholds)
 Calculate appropriate approximation thresholds for neighbourhood quantile. More...
 
Statistic gridpp::get_statistic (std::string name)
 Convert name of a statistic enum. More...
 
int gridpp::util::get_upper_index (float iX, const std::vector< float > &iValues)
 Find the index in a vector that is equal or just above a value. More...
 
vec2 gridpp::util::init_vec2 (int Y, int X, float value=gridpp::MV)
 Initialize a vector of size Y, X, with a given value. More...
 
void gridpp::initialize_omp ()
 Sets the number of OpenMP threads to 1 if OMP_NUM_THREADS undefined. More...
 
float gridpp::util::interpolate (float x, const std::vector< float > &iX, const std::vector< float > &iY)
 Piecewise linear interpolation.o If x is outside the range of iX, then the min/max value of iY is used. More...
 
bool gridpp::util::is_valid (float value)
 
vec2 gridpp::nearest (const Grid &igrid, const Grid &ogrid, const vec2 ivalues)
 Nearest neighbour dowscaling grid to grid. More...
 
vec gridpp::nearest (const Grid &igrid, const Points &opoints, const vec2 ivalues)
 Nearest neighbour dowscaling grid to point. More...
 
vec2 gridpp::nearest (const Grid &igrid, const Points &opoints, const vec3 ivalues)
 
vec2 gridpp::neighbourhood (const vec2 &input, int radius, Statistic statistic)
 Spatial neighbourhood filter. More...
 
vec2 gridpp::neighbourhood_brute_force (const vec2 &input, int radius, Statistic statistic)
 Spatial neighbourhood filter without any shortcuts. More...
 
vec2 gridpp::neighbourhood_ens (const vec3 &input, int radius, Statistic statistic)
 Neighbourhood filter in space and across ensemble members. More...
 
vec2 gridpp::neighbourhood_quantile (const vec2 &input, float quantile, int radius)
 Spatial neighbourhood filter. More...
 
vec2 gridpp::neighbourhood_quantile_ens (const vec3 &input, float quantile, int radius)
 Neighbourhood filter in space and across ensemble members. More...
 
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. More...
 
vec2 gridpp::neighbourhood_quantile_fast (const vec2 &input, float quantile, int radius, const vec &thresholds)
 Approximate spatial neighbourhood filter for quantile operation. More...
 
void gridpp::util::not_implemented_error ()
 
int gridpp::util::num_missing_values (const vec2 &iArray)
 
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. More...
 
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) More...
 
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)
 
float gridpp::pressure (float ielev, float oelev, float ipressure, float itemperature=288.15)
 Calculate pressure at a new elevation. More...
 
float gridpp::qnh (float pressure, float altitude)
 Diagnose QNH from pressure and altitude. More...
 
vec gridpp::qnh (const vec &pressure, const vec &altitude)
 Vector version of QNH calculation. More...
 
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. More...
 
vec gridpp::quantile_mapping (const vec &input, const vec &x, const vec &y, gridpp::Extrapolation policy)
 Quantile mapping of a vector of value. More...
 
float gridpp::quantile_mapping (float input, const vec &ref, const vec &fcst, gridpp::Extrapolation policy)
 Quantile mapping of a single value. More...
 
float gridpp::relative_humidity (float temperature, float dewpoint)
 Calculate relative humidity from temperature and dewpoint temperature. More...
 
void gridpp::set_omp_threads (int num)
 Set the number of OpenMP threads to use. More...
 
vec2 gridpp::simple_gradient (const Grid &igrid, const Grid &ogrid, const vec2 ivalues, float elev_gradient)
 
vec gridpp::simple_gradient (const Grid &igrid, const Points &opoints, const vec2 ivalues, float elev_gradient)
 
float * gridpp::util::test_array (float *v, int n)
 Special function whose presense is needed for SWIG. More...
 
ivec2 gridpp::util::test_ivec2_output ()
 
int gridpp::util::test_ivec_input (const ivec &input)
 Testing function for 1D input vector. More...
 
ivec gridpp::util::test_ivec_output ()
 Testing function for 1D output vector. More...
 
float gridpp::util::test_vec2_input (const vec2 &input)
 Testing function for 2D input vector. More...
 
vec2 gridpp::util::test_vec2_output ()
 Testing function for 2D output vector. More...
 
float gridpp::util::test_vec3_input (const vec3 &input)
 Testing function for 3D input vector. More...
 
vec3 gridpp::util::test_vec3_output ()
 Testing function for 3D output vector. More...
 
float gridpp::util::test_vec_input (const vec &input)
 Testing function for 1D input vector. More...
 
vec gridpp::util::test_vec_output ()
 Testing function for 1D output vector. More...
 
std::string gridpp::version ()
 The gridpp version. More...
 
void gridpp::util::warning (std::string string)
 
float gridpp::wetbulb (float temperature, float pressure, float relative_humidity)
 Calculate wetbulb temperature from temperature, pressure, and relative humidity. More...
 
float gridpp::wind_speed (float xwind, float ywind)
 Diagnose wind speed from its components. More...
 
vec gridpp::wind_speed (const vec &xwind, const vec &ywind)
 
vec2 gridpp::wind_speed (const vec2 &xwind, const vec2 &ywind)
 

Variables

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

Macro Definition Documentation

◆ __version__

#define __version__   GRIDPP_VERSION

◆ GRIDPP_VERSION

#define GRIDPP_VERSION   "0.4.2"

Typedef Documentation

◆ dvec

typedef std::vector<double> dvec

◆ dvec2

typedef std::vector<dvec> dvec2

◆ ivec

typedef std::vector<int> ivec

◆ ivec2

typedef std::vector<ivec> ivec2

◆ vec

typedef std::vector<float> vec

◆ vec2

typedef std::vector<vec> vec2

◆ vec3

typedef std::vector<vec2> vec3