The Delanoë (2014) PSD

The D14 particle size distribution as proposed by Delanoë in [delanoe2014] uses a normalized form of the modified gamma distribution, parametrized as follows:

\[\frac{dN(X)}{dX} = N_0^* \beta \frac{\Gamma(4)}{4^4} \frac{\Gamma(\frac{\alpha + 5}{\beta})^{(4 + \alpha)}} {\Gamma(\frac{\alpha + 4}{\beta})^{(5 + \alpha)}} X^\alpha \exp \left \{- \left (X \frac{\Gamma(\frac{\alpha + 5}{\beta})} {\Gamma(\frac{\alpha + 4}{\beta})} \right )^\beta \right \},\]

The parameter X is defined as the volume equivalent sphere diameter \(D_{eq}\) normalized by the mass-weighted mean diameter:

\[X = \frac{D_{eq}}{D_m}\]
The PSD is thus parametrized by four parameters:
  • \(N_0^*\), here called the intercept parameter
  • \(D_m\), the mass-weighted mean diameter
  • the shape parameters \(\alpha\) and \(\beta\)

Of these, \(\alpha\) and \(\beta\) are assumed constant, while \(N_0\) and \(D_m\) are the free parameters that descibe the particles throughout the atmosphere.

The particle mass density \(\rho_m\) per bulk volume can be computed from \(N_0\) and \(D_m\) using:

\[\rho_m = \frac{\Gamma(4)}{4^4}\frac{\pi \rho}{6}N_0^*D_m^4\]

In this module, two implementations of the D14 PSD are provided:

  • the D14 class that uses the mass-density and \(D_m\) as moments of the PSD
  • the D14N :class that uses the intercept parameter \(N_0^*\) and \(D_m\) as moments of the PSD
class parts.scattering.psd.d14.D14(alpha, beta, rho=917.0, mass_density=None, mass_weighted_diameter=None)[source]

Bases: parts.scattering.psd.arts.arts_psd.ArtsPSD

Implementation of the D14 PSD that uses mass density :math:`
ho_m` and
the mass-weighted mean diamter \(D_m\) as free parameters.
evaluate(x)[source]

Compute value of the particle size distribution for given values of the size parameter.

Parameters:
x(numpy.array): Array containing the values of \(D_eq\) at which to
compute the number density.

Returns:

Array dNdD_eq containing the computed values of the PSD. The first dimensions of dNdD_eq correspond to the shape of the n0 parameter and the last dimension to the size parameter.
classmethod from_psd_data(psd, alpha, beta, rho)[source]

Create an instance of the D14 PSD from existing PSD data.

Parameters:
psd: A numeric or analytic representation of
a PSD.

alpha(numpy.ndarray): The \(alpha\) parameter of the to use for the D14 PSD.

beta(numpy.ndarray): The \(beta\) parameter of the to use for the D14 PSD.

rho(numpy.float): The density to use for the D14 PSD

get_mass_density()[source]
Returns:
Array containing the mass density for all the bulk volumes described by this PSD.
get_moment(p, reference_size_parameter=None)[source]

Computes the moments of the PSD analytically.

Parameters:

p(numpy.float): Wich moment of the PSD to compute

reference_size_parameter(SizeParameter): Size parameter with respect to which the moment should be computed.

Returns:

Array containing the \(p\) th moment of the PSD.
moment_names

List of strings that contains the names of the moments of the PSD. This is used in the ARTS particle_bulkrprop_names and as name for the data requested from the data provider.

pnd_call_agenda

The WSM call that is used to compute the PSD in ARTS.

class parts.scattering.psd.d14.D14MN(alpha, beta, rho=917.0, mass_density=None, intercept_parameter=None)[source]

Bases: parts.scattering.psd.d14.D14N

Implementation of the D14 PSD that uses mass density $m$ and intercept parameter \(N_0^*\) as free parameters.

evaluate(x)[source]

Compute value of the particle size distribution for given values of the size parameter.

Parameters:
x(numpy.array): Array containing the values of \(D_eq\) at which to
compute the number density.

Returns:

Array dNdD_eq containing the computed values of the PSD. The first dimensions of dNdD_eq correspond to the shape of the n0 parameter and the last dimension to the size parameter.
get_mass_density()[source]
Returns:
Array containing the mass density for all the bulk volumes described by this PSD.
moment_names

List of strings that contains the names of the moments of the PSD. This is used in the ARTS particle_bulkrprop_names and as name for the data requested from the data provider.

pnd_call_agenda

The WSM call that is used to compute the PSD in ARTS.

class parts.scattering.psd.d14.D14N(alpha, beta, rho=917.0, intercept_parameter=None, mass_weighted_diameter=None)[source]

Bases: parts.scattering.psd.arts.arts_psd.ArtsPSD

Implementation of the D14 PSD that uses the intercept parameter \(N_0^*\) and the mass-weighted mean diamter \(D_m\) as free parameters.

evaluate(x)[source]

Compute value of the particle size distribution for given values of the size parameter.

Parameters:
x(numpy.array): Array containing the values of \(D_eq\) at which to
compute the number density.

Returns:

Array dNdD_eq containing the computed values of the PSD. The first dimensions of dNdD_eq correspond to the shape of the n0 parameter and the last dimension to the size parameter.
classmethod from_psd_data(psd, alpha, beta, rho)[source]

Create an instance of the D14 PSD from existing PSD data.

Parameters:
psd: A numeric or analytic representation of
a PSD.

alpha(numpy.ndarray): The \(alpha\) parameter of the to use for the D14 PSD.

beta(numpy.ndarray): The \(beta\) parameter of the to use for the D14 PSD.

rho(numpy.float): The density to use for the D14 PSD

get_mass_density()[source]
Returns:
Array containing the mass density for all the bulk volumes described by this PSD.
get_moment(p, reference_size_parameter=None)[source]

Computes the moments of the PSD analytically.

The physical significance of a moment of a PSD depends on the size parameter. So in general, the moments of the same PSD given w.r.t. different size parameters differ. If the reference_size_parameter argument is given then the computed moment will correspond to the Moment of the PSD w.r.t. to the given size parameter.

Parameters:

p(numpy.float): Wich moment of the PSD to compute

reference_size_parameter(SizeParameter): Size parameter with respect to which the moment should be computed.

Returns:

Array containing the \(p\) th moment of the PSD.
moment_names

List of strings that contains the names of the moments of the PSD. This is used in the ARTS particle_bulkrprop_names and as name for the data requested from the data provider.

pnd_call_agenda

The WSM call that is used to compute the PSD in ARTS.

parts.scattering.psd.d14.evaluate_d14(x, n0, dm, alpha, beta)[source]

Compute the particle size distribution of the D14 PSD.

Parameters:

x(numpy.array): 1D array containing the values of the size parameter
\(D_{eq}\) at which to evaluate the PSD. If x is not 1D it will be flattened.
n0(numpy.array or scalar): Array containing the values of the
intercept parameter for which the PSD should be evaluated.
dm(numpy.array or scalar): Array containing the values of the mass
weighted mean diameter at which to evaluate the PSD. Must be broadcastable to the shape of n0
alpha(numpy.array or scalar): Array containing the values of the
\(alpha\) parameter a which to evaulate the PSD. Must be broadcastable to the shape of :code: n0
beta(numpy.array or scalar): Array containing the values of the
\(beta\) parameter a which to evaulate the PSD. Must be broadcastable to the shape of :code: n0

Returns:

Array dNdD_eq containing the computed values of the PSD. The first dimensions of dNdD_eq correspond to the shape of the n0 parameter and the last dimension to the size parameter.