ARTS 2.5.11 (git: 6827797f)
|
Workspace functions related to transmitters and radiative transfer for transmitted signals. More...
#include "arts.h"
#include "arts_constants.h"
#include "arts_conversions.h"
#include "auto_md.h"
#include "geodetic.h"
#include "jacobian.h"
#include "lin_alg.h"
#include "logic.h"
#include "math_funcs.h"
#include "matpack_complex.h"
#include "messages.h"
#include "rte.h"
#include "sensor.h"
#include <cmath>
#include <stdexcept>
Go to the source code of this file.
Functions | |
void | iyTransmissionStandard (Workspace &ws, Matrix &iy, ArrayOfMatrix &iy_aux, ArrayOfTensor3 &diy_dx, Vector &ppvar_p, Vector &ppvar_t, EnergyLevelMap &ppvar_nlte, Matrix &ppvar_vmr, Matrix &ppvar_wind, Matrix &ppvar_mag, Matrix &ppvar_pnd, Matrix &ppvar_f, Tensor3 &ppvar_iy, Tensor4 &ppvar_trans_cumulat, Tensor4 &ppvar_trans_partial, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &t_field, const EnergyLevelMap &nlte_field, const Tensor4 &vmr_field, const ArrayOfArrayOfSpeciesTag &abs_species, const Tensor3 &wind_u_field, const Tensor3 &wind_v_field, const Tensor3 &wind_w_field, const Tensor3 &mag_u_field, const Tensor3 &mag_v_field, const Tensor3 &mag_w_field, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Index &gas_scattering_do, const Tensor4 &pnd_field, const ArrayOfTensor4 &dpnd_field_dx, const ArrayOfString &scat_species, const ArrayOfArrayOfSingleScatteringData &scat_data, const ArrayOfString &iy_aux_vars, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const Ppath &ppath, const Matrix &iy_transmitter, const Agenda &propmat_clearsky_agenda, const Agenda &water_p_eq_agenda, const Agenda &gas_scattering_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmittance, const Numeric &rte_alonglos_v, const Verbosity &) |
WORKSPACE METHOD: iyTransmissionStandard. | |
void | iy_transmitterMultiplePol (Matrix &iy_transmitter, const Index &stokes_dim, const Vector &f_grid, const ArrayOfIndex &instrument_pol, const Verbosity &) |
WORKSPACE METHOD: iy_transmitterMultiplePol. | |
void | iy_transmitterSinglePol (Matrix &iy_transmitter, const Index &stokes_dim, const Vector &f_grid, const ArrayOfIndex &instrument_pol, const Verbosity &) |
WORKSPACE METHOD: iy_transmitterSinglePol. | |
Variables | |
constexpr Numeric | DEG2RAD =Conversion::deg2rad(1) |
constexpr Numeric | PI =Constant::pi |
constexpr Numeric | RAD2DEG =Conversion::rad2deg(1) |
constexpr Numeric | SPEED_OF_LIGHT =Constant::speed_of_light |
Workspace functions related to transmitters and radiative transfer for transmitted signals.
Definition in file m_transmitter.cc.
void iy_transmitterMultiplePol | ( | Matrix & | iy_transmitter, |
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const ArrayOfIndex & | instrument_pol, | ||
const Verbosity & | verbosity | ||
) |
WORKSPACE METHOD: iy_transmitterMultiplePol.
Transmitted signal having multiple polarisations.
The method is intended to be used as possible input of iyTransmissionStandard. It sets *iy_transmitter to describe the transmitted signal/pulses. <br> The polarisation state is taken from instrument_pol, where instrument_pol* must contain an element for each frequency in f_grid. The transmitted signal/pulses are set to be of unit magnitude, such as [1,1,0,0].
[out] | iy_transmitter | WS Output |
[in] | stokes_dim | WS Input |
[in] | f_grid | WS Input |
[in] | instrument_pol | WS Input |
Definition at line 1059 of file m_transmitter.cc.
References Array< base >::nelem(), and stokes2pol().
Referenced by iy_transmitterMultiplePol_g().
void iy_transmitterSinglePol | ( | Matrix & | iy_transmitter, |
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const ArrayOfIndex & | instrument_pol, | ||
const Verbosity & | verbosity | ||
) |
WORKSPACE METHOD: iy_transmitterSinglePol.
Transmitted signal having a single polarisations.
The method is intended to be used as possible input of iyTransmissionStandard. It sets *iy_transmitter to describe the transmitted signal/pulses. <br> The polarisation state is taken from instrument_pol, where instrument_pol* must contain a single value. This polarisation state is applied for all frequencies. The transmitted pulses/signals are set to be of unit magnitude, such as [1,1,0,0].
[out] | iy_transmitter | WS Output |
[in] | stokes_dim | WS Input |
[in] | f_grid | WS Input |
[in] | instrument_pol | WS Input |
Definition at line 1079 of file m_transmitter.cc.
References Array< base >::nelem(), and stokes2pol().
Referenced by iy_transmitterSinglePol_g().
void iyTransmissionStandard | ( | Workspace & | ws, |
Matrix & | iy, | ||
ArrayOfMatrix & | iy_aux, | ||
ArrayOfTensor3 & | diy_dx, | ||
Vector & | ppvar_p, | ||
Vector & | ppvar_t, | ||
EnergyLevelMap & | ppvar_nlte, | ||
Matrix & | ppvar_vmr, | ||
Matrix & | ppvar_wind, | ||
Matrix & | ppvar_mag, | ||
Matrix & | ppvar_pnd, | ||
Matrix & | ppvar_f, | ||
Tensor3 & | ppvar_iy, | ||
Tensor4 & | ppvar_trans_cumulat, | ||
Tensor4 & | ppvar_trans_partial, | ||
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const Index & | atmosphere_dim, | ||
const Vector & | p_grid, | ||
const Tensor3 & | t_field, | ||
const EnergyLevelMap & | nlte_field, | ||
const Tensor4 & | vmr_field, | ||
const ArrayOfArrayOfSpeciesTag & | abs_species, | ||
const Tensor3 & | wind_u_field, | ||
const Tensor3 & | wind_v_field, | ||
const Tensor3 & | wind_w_field, | ||
const Tensor3 & | mag_u_field, | ||
const Tensor3 & | mag_v_field, | ||
const Tensor3 & | mag_w_field, | ||
const Index & | cloudbox_on, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Index & | gas_scattering_do, | ||
const Tensor4 & | pnd_field, | ||
const ArrayOfTensor4 & | dpnd_field_dx, | ||
const ArrayOfString & | scat_species, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const ArrayOfString & | iy_aux_vars, | ||
const Index & | jacobian_do, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const Ppath & | ppath, | ||
const Matrix & | iy_transmitter, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Agenda & | water_p_eq_agenda, | ||
const Agenda & | gas_scattering_agenda, | ||
const Index & | iy_agenda_call1, | ||
const Tensor3 & | iy_transmittance, | ||
const Numeric & | rte_alonglos_v, | ||
const Verbosity & | verbosity | ||
) |
WORKSPACE METHOD: iyTransmissionStandard.
Standard method for handling transmission measurements.
Designed to be part of iy_main_agenda. Treatment of the cloudbox is incorporated (that is, no need to define iy_cloudbox_agenda).
The transmitter is assumed to be placed at the end of provided ppath. The transmitted signal is taken from iy_transmitter. This signal is propagated along the path, considering attenuation alone. That is, the result of the method (iy) is the output of iy_transmitter* multiplied with the transmittance along the propagation path.
As mentioned, the given ppath determines the position of the transmitter. For clear-sky and no modification of ppath, this means that the transitter will either be found at the surface or at the top-of-the-atmosphere. If you want to maintain this even with an active cloudbox, calculate ppath as <br> ppathCalc( cloudbox_on=0 ) Without setting cloudbox_on=0, the transmitter will end up inside or at the boundary of the cloudbox.
Some auxiliary radiative transfer quantities can be obtained. Auxiliary quantities are selected by iy_aux_vars and returned by iy_aux. Valid choices for auxiliary data are: <br> "Radiative background": Index value flagging the radiative <br> background. The following coding is used: 0=space, 1=surface <br> and 2=cloudbox. The value is added to each column. <br> "Optical depth": Scalar optical depth between the observation point <br> and the end of the present propagation path. Calculated based on <br> the (1,1)-element of the transmittance matrix (1-based indexing), <br> i.e. only fully valid for scalar RT. The value is added to each <br> column.
IMPORTANT: No jacobian calculation is supported when gas scattering is <br> included! This will be implemented in a future version.
[in,out] | ws | Workspace |
[out] | iy | WS Output |
[out] | iy_aux | WS Output |
[in,out] | diy_dx | WS Input/Output |
[out] | ppvar_p | WS Output |
[out] | ppvar_t | WS Output |
[out] | ppvar_nlte | WS Output |
[out] | ppvar_vmr | WS Output |
[out] | ppvar_wind | WS Output |
[out] | ppvar_mag | WS Output |
[out] | ppvar_pnd | WS Output |
[out] | ppvar_f | WS Output |
[out] | ppvar_iy | WS Output |
[out] | ppvar_trans_cumulat | WS Output |
[out] | ppvar_trans_partial | WS Output |
[in] | stokes_dim | WS Input |
[in] | f_grid | WS Input |
[in] | atmosphere_dim | WS Input |
[in] | p_grid | WS Input |
[in] | t_field | WS Input |
[in] | nlte_field | WS Input |
[in] | vmr_field | WS Input |
[in] | abs_species | WS Input |
[in] | wind_u_field | WS Input |
[in] | wind_v_field | WS Input |
[in] | wind_w_field | WS Input |
[in] | mag_u_field | WS Input |
[in] | mag_v_field | WS Input |
[in] | mag_w_field | WS Input |
[in] | cloudbox_on | WS Input |
[in] | cloudbox_limits | WS Input |
[in] | gas_scattering_do | WS Input |
[in] | pnd_field | WS Input |
[in] | dpnd_field_dx | WS Input |
[in] | scat_species | WS Input |
[in] | scat_data | WS Input |
[in] | iy_aux_vars | WS Input |
[in] | jacobian_do | WS Input |
[in] | jacobian_quantities | WS Input |
[in] | ppath | WS Input |
[in] | iy_transmitter | WS Input |
[in] | propmat_clearsky_agenda | WS Input |
[in] | water_p_eq_agenda | WS Input |
[in] | gas_scattering_agenda | WS Input |
[in] | iy_agenda_call1 | WS Input |
[in] | iy_transmittance | WS Input |
[in] | rte_alonglos_v | WS Input |
Definition at line 638 of file m_transmitter.cc.
References a, adapt_stepwise_partial_derivatives(), ARTS_USER_ERROR_IF, cumulative_transmission(), FOR_ANALYTICAL_JACOBIANS_DO, Forward, gas_scattering_agendaExecute(), get_pointers_for_analytical_species(), get_pointers_for_scat_species(), get_ppath_atmvars(), get_ppath_cloudvars(), get_ppath_f(), get_standard_diy_dpath(), get_standard_starting_diy_dx(), get_stepwise_clearsky_propmat(), get_stepwise_scattersky_propmat(), Ppath::los, Ppath::lstep, min(), Array< base >::nelem(), Ppath::np, ppath_what_background(), rtmethods_jacobian_finalisation(), stepwise_transmission(), Transmission, and update_radiation_vector().
Referenced by get_direct_radiation(), iyTransmissionStandard_g(), and surface_get_incoming_direct().
|
inlineconstexpr |
Definition at line 34 of file m_transmitter.cc.
|
inlineconstexpr |
Definition at line 35 of file m_transmitter.cc.
|
inlineconstexpr |
Definition at line 36 of file m_transmitter.cc.
|
inlineconstexpr |
Definition at line 37 of file m_transmitter.cc.