cloudbox_fieldDisort
- Workspace.cloudbox_fieldDisort(self: pyarts.arts._Workspace, cloudbox_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor7 | None = self.cloudbox_field, disort_aux: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfMatrix | None = self.disort_aux, 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, gas_scattering_agenda: pyarts.arts.WorkspaceVariable | pyarts.arts.Agenda | None = self.gas_scattering_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, lat_true: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.lat_true, lon_true: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.lon_true, refellipsoid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.refellipsoid, scat_data: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfArrayOfSingleScatteringData | None = self.scat_data, suns: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfSun | None = self.suns, f_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.f_grid, za_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.za_grid, aa_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.aa_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, surface_skin_t: pyarts.arts.WorkspaceVariable | pyarts.arts.Numeric | None = self.surface_skin_t, surface_scalar_reflectivity: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.surface_scalar_reflectivity, gas_scattering_do: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.gas_scattering_do, suns_do: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.suns_do, disort_aux_vars: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfString | None = self.disort_aux_vars, nstreams: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 8, Npfct: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 181, only_tro: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 0, quiet: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 0, emission: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 1, intensity_correction: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 1, verbosity: pyarts.arts.WorkspaceVariable | pyarts.arts.Verbosity | None = self.verbosity) None
Interface to the DISORT scattering solver (by Stamnes et al.).
DISCLAIMER: There is a couple of known issues with the current implementation (see below). Use this WSM with care and only if these limitations/requirements are fulfilled. Results might be erroneous otherwise.
DISORT provides the radiation field (
cloudbox_field
) from a scalar 1D scattering solution assuming a plane-parallel atmosphere (flat Earth). Only totally randomly oriented particles are allowed. Refraction is not taken into account. Only Lambertian surface reflection is handled.nstreams
is the number of polar angles taken into account internally in the scattering solution,za_grid
is the polar angle grid on whichcloudbox_field
is provided.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 linearly withnstreams
. The default value (8) is sufficient for most microwave scattering calculations. It is likely insufficient for IR calculations involving ice clouds, though.Further,
za_grid
determines the resolution of the output radiation field. The size ofza_grid
has no practical impact on computation time in the case of Disort and higher resolution generally improves the interpolation results, hence largerza_grid
are recommended. To ensure sufficient interpolation accuracy, we require a (hardcoded) minimum size of 38.Different sphericity levels are emulated here by embedding DISORT in different ways and using different output. The available options (from low to high sphericity level) are:
Cloudbox extends over whole atmosphere (e.g. by setting cloudbox from
cloudboxSetFullAtm()
).Cloudbox extends over a limited part of the atmosphere only (e.g. by setting cloudbox from
cloudboxSetAutomatically()
orcloudboxSetManually()
). Internally, DISORT is run over the whole atmosphere, but only the radiation field within the cloudbox is passed on and used further in ARTS (e.g. byyCalc()
).
Some auxiliary quantities can be obtained. Auxiliary quantities are selected by
disort_aux_vars
and returned bydisort_aux
. Valid choices for auxiliary data are:"Layer optical thickness"
: Matrix [f_grid, size of p_grid - 1] layer optical thickness."Single scattering albedo"
: Matrix [f_grid, size of p_grid - 1] layer single” scattering albedo."Asymmetry parameter"
: Matrix [f_grid, size of p_grid - 1] layer asymmetry parameter."Direct beam"
: Matrix [f_grid, p_grid]. Attenuated direct at level. Zero, if no sun is present
Author(s): Claudia Emde, Jana Mendrok, Manfred Brath
- Parameters:
cloudbox_field (Tensor7, optional) – The spectral radiance field inside the cloudbx. See
cloudbox_field
, defaults toself.cloudbox_field
[OUT]disort_aux (ArrayOfMatrix, optional) – Auxilary data to the output of the cloudbox_fieldDisort-Methods. See
disort_aux
, defaults toself.disort_aux
[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]gas_scattering_agenda (Agenda, optional) – Calculation of the gas scattering extinction and phase matrix. See
gas_scattering_agenda
, defaults toself.gas_scattering_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]lat_true (Vector, optional) – Latitudinal geolocation for 1D and 2D data. See
lat_true
, defaults toself.lat_true
[IN]lon_true (Vector, optional) – Longitudinal geolocation for 1D and 2D data. See
lon_true
, defaults toself.lon_true
[IN]refellipsoid (Vector, optional) – Reference ellipsoid. See
refellipsoid
, defaults toself.refellipsoid
[IN]scat_data (ArrayOfArrayOfSingleScatteringData, optional) – Array of single scattering data. See
scat_data
, defaults toself.scat_data
[IN]suns (ArrayOfSun, optional) – Array of Sun. See
suns
, defaults toself.suns
[IN]f_grid (Vector, optional) – The frequency grid for monochromatic pencil beam calculations. See
f_grid
, defaults toself.f_grid
[IN]za_grid (Vector, optional) – Zenith angle grid. See
za_grid
, defaults toself.za_grid
[IN]aa_grid (Vector, optional) – Azimuthal angle grid. See
aa_grid
, defaults toself.aa_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]surface_skin_t (Numeric, optional) – Surface skin temperature. See
surface_skin_t
, defaults toself.surface_skin_t
[IN]surface_scalar_reflectivity (Vector, optional) – Surface reflectivity, assuming it can be described as a scalar value. See
surface_scalar_reflectivity
, defaults toself.surface_scalar_reflectivity
[IN]gas_scattering_do (Index, optional) – Flag to activate gas scattering. See
gas_scattering_do
, defaults toself.gas_scattering_do
[IN]suns_do (Index, optional) – Flag to activate the sun(s). See
suns_do
, defaults toself.suns_do
[IN]disort_aux_vars (ArrayOfString, optional) – Selection of quantities for
disort_aux
. Seedisort_aux_vars
, defaults toself.disort_aux_vars
[IN]nstreams (Index, optional) – Number of polar angle directions (streams) in DISORT solution (must be an even number). Defaults to
8
[IN]Npfct (Index, optional) – Number of angular grid points to calculate bulk phase function on (and derive Legendre polynomials from). If <0, the finest za_grid from scat_data will be used. Defaults to
181
[IN]only_tro (Index, optional) – Set to 1 if the scattering data is just of TRO type. Has effect only if Npfct > 3 or Npfct<0, but then leads to much faster calculations. Defaults to
0
[IN]quiet (Index, optional) – Silence C Disort warnings. Defaults to
0
[IN]emission (Index, optional) – Enables blackbody emission. Set to zero, if no Emission e. g. like in visible regime for earth is needed. Defaults to
1
[IN]intensity_correction (Index, optional) – Enables intensity correction. Importantant for low number of streams. Set to zero, if problems encounter or using a high number of streams (>30). Defaults to
1
[IN]verbosity (Verbosity) – ARTS verbosity. See
verbosity
, defaults toself.verbosity
[IN]