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
D14class 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.ArtsPSDImplementation 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_eqcontaining the computed values of the PSD. The first dimensions ofdNdD_eqcorrespond to the shape of then0parameter 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_namesand 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.D14NImplementation 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_eqcontaining the computed values of the PSD. The first dimensions ofdNdD_eqcorrespond to the shape of then0parameter 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_namesand 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.ArtsPSDImplementation 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_eqcontaining the computed values of the PSD. The first dimensions ofdNdD_eqcorrespond to the shape of then0parameter 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_parameterargument 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_namesand 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
xis 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_eqcontaining the computed values of the PSD. The first dimensions ofdNdD_eqcorrespond to the shape of then0parameter and the last dimension to the size parameter.