ARTS
2.3.1285(git:92a29ea9-dirty)
|
Workspace functions related to transmitters and radiative transfer for transmitted signals. More...
#include <cmath>
#include <stdexcept>
#include "arts.h"
#include "auto_md.h"
#include "complex.h"
#include "geodetic.h"
#include "jacobian.h"
#include "lin_alg.h"
#include "logic.h"
#include "math_funcs.h"
#include "messages.h"
#include "rte.h"
#include "sensor.h"
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, 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 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 Agenda &propmat_clearsky_agenda, const Agenda &water_p_eq_agenda, const Agenda &iy_transmitter_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Numeric &rte_alonglos_v, const Verbosity &) |
WORKSPACE METHOD: iyTransmissionStandard. More... | |
void | iy_transmitterMultiplePol (Matrix &iy, const Index &stokes_dim, const Vector &f_grid, const ArrayOfIndex &instrument_pol, const Verbosity &) |
WORKSPACE METHOD: iy_transmitterMultiplePol. More... | |
void | iy_transmitterSinglePol (Matrix &iy, const Index &stokes_dim, const Vector &f_grid, const ArrayOfIndex &instrument_pol, const Verbosity &) |
WORKSPACE METHOD: iy_transmitterSinglePol. More... | |
Variables | |
const Numeric | DEG2RAD |
const Numeric | PI |
const Numeric | RAD2DEG |
const Numeric | 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, |
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 part of iy_transmitter_agenda. It sets iy to describe the transmitted signal/pulses. 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 | WS Output |
[in] | stokes_dim | WS Input |
[in] | f_grid | WS Input |
[in] | instrument_pol | WS Input |
Definition at line 1039 of file m_transmitter.cc.
References i, joker, Array< base >::nelem(), ConstVectorView::nelem(), Matrix::resize(), and stokes2pol().
Referenced by iy_transmitterMultiplePol_g().
void iy_transmitterSinglePol | ( | Matrix & | iy, |
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 part of iy_transmitter_agenda. It sets iy to describe the transmitted pulses/signal. 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 | 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 i, joker, Array< base >::nelem(), ConstVectorView::nelem(), Matrix::resize(), 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, | ||
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 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 Agenda & | propmat_clearsky_agenda, | ||
const Agenda & | water_p_eq_agenda, | ||
const Agenda & | iy_transmitter_agenda, | ||
const Index & | iy_agenda_call1, | ||
const Tensor3 & | iy_transmission, | ||
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_agenda. This signal is propagated along the path, considering attenuation alone. That is, the result of the method (iy) is the output of iy_transmitter_agenda* multiplied with the transmission 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 transmission matrix (1-based indexing), <br> i.e. only fully valid for scalar RT. The value is added to each <br> column.
[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 |
[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] | 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] | propmat_clearsky_agenda | WS Input |
[in] | water_p_eq_agenda | WS Input |
[in] | iy_transmitter_agenda | WS Input |
[in] | iy_agenda_call1 | WS Input |
[in] | iy_transmission | WS Input |
[in] | rte_alonglos_v | WS Input |
Definition at line 655 of file m_transmitter.cc.
References adapt_stepwise_partial_derivatives(), cumulative_transmission(), ConstTensor3View::empty(), FOR_ANALYTICAL_JACOBIANS_DO, Forward, get_ppath_atmvars(), get_ppath_cloudvars(), get_ppath_f(), get_stepwise_clearsky_propmat(), get_stepwise_scattersky_propmat(), i, iy_transmitter_agendaExecute(), joker, Ppath::los, Ppath::lstep, min, ConstMatrixView::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), Ppath::np, ConstMatrixView::nrows(), ns, Ppath::pos, ppath_what_background(), Tensor3::resize(), Tensor4::resize(), Vector::resize(), Matrix::resize(), rtmethods_jacobian_finalisation(), rtmethods_jacobian_init(), S, stepwise_transmission(), _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str(), swap(), Temperature, Transmission, and update_radiation_vector().
Referenced by ARTS::Agenda::iy_main_agenda_transmission(), and iyTransmissionStandard_g().
const Numeric DEG2RAD |
const Numeric PI |
const Numeric RAD2DEG |
const Numeric SPEED_OF_LIGHT |