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:
The parameter X is defined as the volume equivalent sphere diameter \(D_{eq}\) normalized by the mass-weighted mean diameter:
- 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:
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:
ArraydNdD_eq
containing the computed values of the PSD. The first dimensions ofdNdD_eq
correspond to the shape of then0
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 computereference_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:
ArraydNdD_eq
containing the computed values of the PSD. The first dimensions ofdNdD_eq
correspond to the shape of then0
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:
ArraydNdD_eq
containing the computed values of the PSD. The first dimensions ofdNdD_eq
correspond to the shape of then0
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 computereference_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:
ArraydNdD_eq
containing the computed values of the PSD. The first dimensions ofdNdD_eq
correspond to the shape of then0
parameter and the last dimension to the size parameter.