RT4Calc
- Workspace.RT4Calc(self: pyarts.arts._Workspace, cloudbox_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor7 | None = self.cloudbox_field, za_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.za_grid, aa_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.aa_grid, atmfields_checked: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.atmfields_checked, atmgeom_checked: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.atmgeom_checked, scat_data_checked: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.scat_data_checked, cloudbox_checked: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.cloudbox_checked, cloudbox_on: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.cloudbox_on, cloudbox_limits: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfIndex | None = self.cloudbox_limits, propmat_clearsky_agenda: pyarts.arts.WorkspaceVariable | pyarts.arts.Agenda | None = self.propmat_clearsky_agenda, surface_rtprop_agenda: pyarts.arts.WorkspaceVariable | pyarts.arts.Agenda | None = self.surface_rtprop_agenda, atmosphere_dim: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.atmosphere_dim, pnd_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor4 | None = self.pnd_field, t_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.t_field, z_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.z_field, vmr_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor4 | None = self.vmr_field, p_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.p_grid, scat_data: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfArrayOfSingleScatteringData | None = self.scat_data, f_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.f_grid, stokes_dim: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.stokes_dim, z_surface: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.z_surface, nstreams: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 16, pfct_method: pyarts.arts.WorkspaceVariable | pyarts.arts.String | None = 'median', quad_type: pyarts.arts.WorkspaceVariable | pyarts.arts.String | None = 'D', add_straight_angles: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 1, pfct_aa_grid_size: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 19, auto_inc_nstreams: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 0, robust: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 0, za_interp_order: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 1, cos_za_interp: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 0, max_delta_tau: pyarts.arts.WorkspaceVariable | pyarts.arts.Numeric | None = 1e-6, verbosity: pyarts.arts.WorkspaceVariable | pyarts.arts.Verbosity | None = self.verbosity) None
Interface to the PolRadTran RT4 scattering solver (by F. Evans).
RT4 provides the radiation field (
cloudbox_field
) from a vector 1D scattering solution assuming a plane-parallel atmosphere (flat Earth). It calculates up to two Stokes parameters (stokes_dim
<= 2), i.e., all azimuthally randomly oriented particles are allowed (this also includes macroscopically isotropic particles). Refraction is not taken into account.The scattering solution is internally obtained over the full (plane-parallel) atmosphere, i.e. not confined to the cloudbox. However, the radiation field output is limited to the cloudbox. This allows to consider clearsky RT through a non-spherical atmosphere outside the cloudbox improving the RT solution for non-plane-parallel media compared to the plain RT4 output.
nstreams
is the number of polar angles taken into account internally in the scattering solution. That is,nstreams
determines the angular resolution, hence the accuracy, of the scattering solution. The more anisotropic the bulk scattering matrix, the more streams are required. The computational burden increases approximately with the third power ofnstreams
. The default value (nstreams
= 16) was found to be sufficient for most microwave scattering calculations. It is likely insufficient for IR calculations involving ice clouds, though.Here,
za_grid
is NOT an input parameter, but output, and its size equalsnstreams
ornstreams
+ 2 (Gauss-Legendre and Double Gauss quadratures in caseadd_straight_angles
= 1) (the reason is that the computational burden is high for additional angles, regardless whether they are quadrature angles or not; hence the quadrature angles supplemented with 0 and 180deg are considered to provide the best radiation field for a given effort).The
auto_inc_nstreams
feature can be used to increase the number of streams used internally in the scattering solution when found necessary. NOTE: this number-of-streams increase is only internally - the angular dimension of the outputcloudbox_field
is fixed to thenstreams
given as input to this WSM.Quadrature methods available are: ‘L’obatto, ‘G’auss-Legendre and ‘D’ouble Gauss quadrature.
This WSM applies
surface_rtprop_agenda
to derive reflection matrix and surface emission vector that are directly feed into RT4’s core solver (instead of their RT4-internal calculation as used byRT4CalcWithRT4Surface()
).Known issues of ARTS implementation:
TOA incoming radiation is so far assumed as blackbody cosmic background (temperature taken from the ARTS-internal constant).
The keyword
pfct_method
allows to choose how to extract the scattering matrix, by chosing one specific temperature grid point from the single scattering data: ‘low’ choses the lowest T-point, ‘high’ the highest T-point, and ‘median’ the median T-point. As different scattering elements can have different temperature grids, the actual temperature value used can differ between the scattering elements. Note that this keyword solely affects the scattering matrix; extinction matrix and absorption vector are always interpolated to the actual temperature.Author(s): Jana Mendrok
- Parameters:
cloudbox_field (Tensor7, optional) – The spectral radiance field inside the cloudbx. See
cloudbox_field
, defaults toself.cloudbox_field
[OUT]za_grid (Vector, optional) – Zenith angle grid. See
za_grid
, defaults toself.za_grid
[OUT]aa_grid (Vector, optional) – Azimuthal angle grid. See
aa_grid
, defaults toself.aa_grid
[OUT]atmfields_checked (Index, optional) – OK-flag for atmospheric grids and (physical) fields. See
atmfields_checked
, defaults toself.atmfields_checked
[IN]atmgeom_checked (Index, optional) – OK-flag for the geometry of the model atmosphere. See
atmgeom_checked
, defaults toself.atmgeom_checked
[IN]scat_data_checked (Index, optional) – OK-flag for
scat_data
. Seescat_data_checked
, defaults toself.scat_data_checked
[IN]cloudbox_checked (Index, optional) – OK-flag for variables associated with the cloudbox. See
cloudbox_checked
, defaults toself.cloudbox_checked
[IN]cloudbox_on (Index, optional) – Flag to activate the cloud box. See
cloudbox_on
, defaults toself.cloudbox_on
[IN]cloudbox_limits (ArrayOfIndex, optional) – The limits of the cloud box. See
cloudbox_limits
, defaults toself.cloudbox_limits
[IN]propmat_clearsky_agenda (Agenda, optional) – Calculate the absorption coefficient matrix. See
propmat_clearsky_agenda
, defaults toself.propmat_clearsky_agenda
[IN]surface_rtprop_agenda (Agenda, optional) – Provides radiative properties of the surface. . See
surface_rtprop_agenda
, defaults toself.surface_rtprop_agenda
[IN]atmosphere_dim (Index, optional) – The atmospheric dimensionality (1-3). See
atmosphere_dim
, defaults toself.atmosphere_dim
[IN]pnd_field (Tensor4, optional) – Particle number density field. See
pnd_field
, defaults toself.pnd_field
[IN]t_field (Tensor3, optional) – The field of atmospheric temperatures. See
t_field
, defaults toself.t_field
[IN]z_field (Tensor3, optional) – The field of geometrical altitudes. See
z_field
, defaults toself.z_field
[IN]vmr_field (Tensor4, optional) – VMR field. See
vmr_field
, defaults toself.vmr_field
[IN]p_grid (Vector, optional) – The pressure grid. See
p_grid
, defaults toself.p_grid
[IN]scat_data (ArrayOfArrayOfSingleScatteringData, optional) – Array of single scattering data. See
scat_data
, defaults toself.scat_data
[IN]f_grid (Vector, optional) – The frequency grid for monochromatic pencil beam calculations. See
f_grid
, defaults toself.f_grid
[IN]stokes_dim (Index, optional) – The dimensionality of the Stokes vector (1-4). See
stokes_dim
, defaults toself.stokes_dim
[IN]z_surface (Matrix, optional) – The surface altitude. See
z_surface
, defaults toself.z_surface
[IN]nstreams (Index, optional) – Number of polar angle directions (streams) in RT4 solution (must be an even number). Defaults to
16
[IN]pfct_method (String, optional) – Flag which method to apply to derive phase function (for available options see above). Defaults to
"median"
[IN]quad_type (String, optional) – Flag which quadrature to apply in RT4 solution (for available options see above). Defaults to
"D"
[IN]add_straight_angles (Index, optional) – Flag whether to include nadir and zenith as explicit directions (only effective for quad_type G and D). Defaults to
1
[IN]pfct_aa_grid_size (Index, optional) – Number of azimuthal angle grid points to consider in Fourier series decomposition of scattering matrix (only applied for randomly oriented scattering elements). Defaults to
19
[IN]auto_inc_nstreams (Index, optional) – Flag whether to internally increase nstreams (individually per frequency) if norm of (bulk) scattering matrix is not preserved properly. If 0, no adaptation is done. Else
auto_inc_nstreams
gives the maximum number of streams to increase to. Note that the outputcloudbox_field
remains with angular dimension ofnstreams
, only the internal solution is adapted (and then interpolated to the lower-resolution output angular grid). Defaults to0
[IN]robust (Index, optional) – For
auto_inc_nstreams
>0, flag whether to not fail even if scattering matrix norm is not preserved when maximum stream number is reached. Internal RT4 calculations is then performed with nstreams=``auto_inc_nstreams``. Defaults to0
[IN]za_interp_order (Index, optional) – For
auto_inc_nstreams
>0, polar angle interpolation order for interpolation from internal increased stream to originally requested nstreams-ifield. Defaults to1
[IN]cos_za_interp (Index, optional) – For
auto_inc_nstreams
>0, flag whether to do polar angle interpolation in cosine (=’mu’) space. Defaults to0
[IN]max_delta_tau (Numeric, optional) – Maximum optical depth of infinitesimal layer (where single scattering approximation is assumed to apply). Defaults to
1e-6
[IN]verbosity (Verbosity) – ARTS verbosity. See
verbosity
, defaults toself.verbosity
[IN]