pops-core  0.9
PoPS (Pest or Pathogen Spread) Model Core C++ library
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
pops::RadialDispersalKernel< IntegerRaster > Class Template Reference

Dispersal kernel providing all the radial kernels. More...

#include <radial_kernel.hpp>

Collaboration diagram for pops::RadialDispersalKernel< IntegerRaster >:
Collaboration graph
[legend]

Public Member Functions

 RadialDispersalKernel (double ew_res, double ns_res, DispersalKernelType dispersal_kernel, double distance_scale, Direction dispersal_direction=Direction::None, double dispersal_direction_kappa=0, double shape=1)
 
template<typename Generator >
std::tuple< int, int > operator() (Generator &generator, int row, int col)
 Generates a new position for the spread. More...
 

Static Public Member Functions

static bool supports_kernel (const DispersalKernelType type)
 Returns true if the kernel class support a given kernel type. More...
 

Protected Attributes

double east_west_resolution
 
double north_south_resolution
 
DispersalKernelType dispersal_kernel_type_
 
CauchyKernel cauchy_distribution
 
ExponentialKernel exponential_distribution
 
WeibullKernel weibull_distribution
 
NormalKernel normal_distribution
 
LogNormalKernel lognormal_distribution
 
PowerLawKernel power_law_distribution
 
HyperbolicSecantKernel hyperbolic_secant_distribution
 
GammaKernel gamma_distribution
 
ExponentialPowerKernel exponential_power_distribution
 
LogisticKernel logistic_distribution
 
VonMisesDistribution von_mises
 

Detailed Description

template<typename IntegerRaster>
class pops::RadialDispersalKernel< IntegerRaster >

Dispersal kernel providing all the radial kernels.

We understand a radial kernel to be a kernel which has parameters which translate into a distance and direction.

To add new kernel which fits with the other kernels supported by this class, add new member, its initialization from parameters, its implementation in the function call operator, and extend the supports_kernel() function.

Definition at line 94 of file radial_kernel.hpp.

Constructor & Destructor Documentation

◆ RadialDispersalKernel()

template<typename IntegerRaster >
pops::RadialDispersalKernel< IntegerRaster >::RadialDispersalKernel ( double  ew_res,
double  ns_res,
DispersalKernelType  dispersal_kernel,
double  distance_scale,
Direction  dispersal_direction = Direction::None,
double  dispersal_direction_kappa = 0,
double  shape = 1 
)
inline

Definition at line 115 of file radial_kernel.hpp.

Member Function Documentation

◆ operator()()

template<typename IntegerRaster >
template<typename Generator >
std::tuple<int, int> pops::RadialDispersalKernel< IntegerRaster >::operator() ( Generator &  generator,
int  row,
int  col 
)
inline

Generates a new position for the spread.

The randomness is based on the generator. The result may depend on previous calls of this operator (see e.g. std::cauchy_distribution<RealType>::reset()). Parameters row and col are row and column position of the current disperser. The generated position will be relative to it.

Definition at line 157 of file radial_kernel.hpp.

Here is the call graph for this function:

◆ supports_kernel()

template<typename IntegerRaster >
static bool pops::RadialDispersalKernel< IntegerRaster >::supports_kernel ( const DispersalKernelType  type)
inlinestatic

Returns true if the kernel class support a given kernel type.

Warning
This function is experimental and may be removed or changed at any time.

Definition at line 212 of file radial_kernel.hpp.

Here is the caller graph for this function:

Member Data Documentation

◆ cauchy_distribution

template<typename IntegerRaster >
CauchyKernel pops::RadialDispersalKernel< IntegerRaster >::cauchy_distribution
protected

Definition at line 102 of file radial_kernel.hpp.

◆ dispersal_kernel_type_

template<typename IntegerRaster >
DispersalKernelType pops::RadialDispersalKernel< IntegerRaster >::dispersal_kernel_type_
protected

Definition at line 101 of file radial_kernel.hpp.

◆ east_west_resolution

template<typename IntegerRaster >
double pops::RadialDispersalKernel< IntegerRaster >::east_west_resolution
protected

Definition at line 98 of file radial_kernel.hpp.

◆ exponential_distribution

template<typename IntegerRaster >
ExponentialKernel pops::RadialDispersalKernel< IntegerRaster >::exponential_distribution
protected

Definition at line 103 of file radial_kernel.hpp.

◆ exponential_power_distribution

template<typename IntegerRaster >
ExponentialPowerKernel pops::RadialDispersalKernel< IntegerRaster >::exponential_power_distribution
protected

Definition at line 110 of file radial_kernel.hpp.

◆ gamma_distribution

template<typename IntegerRaster >
GammaKernel pops::RadialDispersalKernel< IntegerRaster >::gamma_distribution
protected

Definition at line 109 of file radial_kernel.hpp.

◆ hyperbolic_secant_distribution

template<typename IntegerRaster >
HyperbolicSecantKernel pops::RadialDispersalKernel< IntegerRaster >::hyperbolic_secant_distribution
protected

Definition at line 108 of file radial_kernel.hpp.

◆ logistic_distribution

template<typename IntegerRaster >
LogisticKernel pops::RadialDispersalKernel< IntegerRaster >::logistic_distribution
protected

Definition at line 111 of file radial_kernel.hpp.

◆ lognormal_distribution

template<typename IntegerRaster >
LogNormalKernel pops::RadialDispersalKernel< IntegerRaster >::lognormal_distribution
protected

Definition at line 106 of file radial_kernel.hpp.

◆ normal_distribution

template<typename IntegerRaster >
NormalKernel pops::RadialDispersalKernel< IntegerRaster >::normal_distribution
protected

Definition at line 105 of file radial_kernel.hpp.

◆ north_south_resolution

template<typename IntegerRaster >
double pops::RadialDispersalKernel< IntegerRaster >::north_south_resolution
protected

Definition at line 100 of file radial_kernel.hpp.

◆ power_law_distribution

template<typename IntegerRaster >
PowerLawKernel pops::RadialDispersalKernel< IntegerRaster >::power_law_distribution
protected

Definition at line 107 of file radial_kernel.hpp.

◆ von_mises

template<typename IntegerRaster >
VonMisesDistribution pops::RadialDispersalKernel< IntegerRaster >::von_mises
protected

Definition at line 112 of file radial_kernel.hpp.

◆ weibull_distribution

template<typename IntegerRaster >
WeibullKernel pops::RadialDispersalKernel< IntegerRaster >::weibull_distribution
protected

Definition at line 104 of file radial_kernel.hpp.


The documentation for this class was generated from the following file: