ARTS  2.4.0(git:4fb77825)
m_transmitter.cc File Reference

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
 

Detailed Description

Workspace functions related to transmitters and radiative transfer for transmitted signals.

Author
Patrick Eriksson patri.nosp@m.ck.e.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2012-10-31

Definition in file m_transmitter.cc.

Function Documentation

◆ iy_transmitterMultiplePol()

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].

Author
Patrick Eriksson
Parameters
[out]iyWS Output
[in]stokes_dimWS Input
[in]f_gridWS Input
[in]instrument_polWS Input

Definition at line 1039 of file m_transmitter.cc.

References ARTS::Var::f_grid(), ARTS::Var::instrument_pol(), ARTS::Var::iy(), joker, stokes2pol(), and ARTS::Var::stokes_dim().

Referenced by iy_transmitterMultiplePol_g().

◆ iy_transmitterSinglePol()

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].

Author
Patrick Eriksson
Parameters
[out]iyWS Output
[in]stokes_dimWS Input
[in]f_gridWS Input
[in]instrument_polWS Input

Definition at line 1059 of file m_transmitter.cc.

References ARTS::Var::f_grid(), ARTS::Var::instrument_pol(), ARTS::Var::iy(), joker, stokes2pol(), and ARTS::Var::stokes_dim().

Referenced by iy_transmitterSinglePol_g().

◆ iyTransmissionStandard()

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.

Author
Patrick Eriksson
Richard Larsson
Parameters
[in,out]wsWorkspace
[out]iyWS Output
[out]iy_auxWS Output
[in,out]diy_dxWS Input/Output
[out]ppvar_pWS Output
[out]ppvar_tWS Output
[out]ppvar_nlteWS Output
[out]ppvar_vmrWS Output
[out]ppvar_windWS Output
[out]ppvar_magWS Output
[out]ppvar_pndWS Output
[out]ppvar_fWS Output
[out]ppvar_iyWS Output
[out]ppvar_trans_cumulatWS Output
[in]stokes_dimWS Input
[in]f_gridWS Input
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]t_fieldWS Input
[in]nlte_fieldWS Input
[in]vmr_fieldWS Input
[in]abs_speciesWS Input
[in]wind_u_fieldWS Input
[in]wind_v_fieldWS Input
[in]wind_w_fieldWS Input
[in]mag_u_fieldWS Input
[in]mag_v_fieldWS Input
[in]mag_w_fieldWS Input
[in]cloudbox_onWS Input
[in]cloudbox_limitsWS Input
[in]pnd_fieldWS Input
[in]dpnd_field_dxWS Input
[in]scat_speciesWS Input
[in]scat_dataWS Input
[in]iy_aux_varsWS Input
[in]jacobian_doWS Input
[in]jacobian_quantitiesWS Input
[in]ppathWS Input
[in]propmat_clearsky_agendaWS Input
[in]water_p_eq_agendaWS Input
[in]iy_transmitter_agendaWS Input
[in]iy_agenda_call1WS Input
[in]iy_transmissionWS Input
[in]rte_alonglos_vWS Input

Definition at line 655 of file m_transmitter.cc.

References ARTS::Var::abs_species(), adapt_stepwise_partial_derivatives(), ARTS::Var::atmosphere_dim(), ARTS::Var::cloudbox_limits(), ARTS::Var::cloudbox_on(), cumulative_transmission(), ARTS::Var::diy_dx(), ARTS::Var::dpnd_field_dx(), ARTS::Var::f_grid(), FOR_ANALYTICAL_JACOBIANS_DO, get_ppath_atmvars(), get_ppath_cloudvars(), get_ppath_f(), get_stepwise_clearsky_propmat(), get_stepwise_scattersky_propmat(), ARTS::Var::iy(), ARTS::Var::iy_agenda_call1(), ARTS::Var::iy_aux(), ARTS::Var::iy_aux_vars(), ARTS::Var::iy_transmission(), ARTS::Var::iy_transmitter_agenda(), iy_transmitter_agendaExecute(), ARTS::Var::jacobian_do(), ARTS::Var::jacobian_quantities(), joker, ARTS::Var::mag_u_field(), ARTS::Var::mag_v_field(), ARTS::Var::mag_w_field(), min, Array< base >::nelem(), ARTS::Var::nlte_field(), ns, ARTS::Var::p_grid(), ARTS::Var::pnd_field(), ARTS::Var::Ppath::pos(), ARTS::Var::ppath(), ppath_what_background(), ARTS::Var::ppvar_f(), ARTS::Var::ppvar_iy(), ARTS::Var::ppvar_mag(), ARTS::Var::ppvar_nlte(), ARTS::Var::ppvar_p(), ARTS::Var::ppvar_pnd(), ARTS::Var::ppvar_t(), ARTS::Var::ppvar_trans_cumulat(), ARTS::Var::ppvar_vmr(), ARTS::Var::ppvar_wind(), ARTS::Var::propmat_clearsky_agenda(), Vector::resize(), ARTS::Var::rte_alonglos_v(), rtmethods_jacobian_finalisation(), rtmethods_jacobian_init(), ARTS::Var::scat_data(), ARTS::Var::scat_species(), stepwise_transmission(), ARTS::Var::stokes_dim(), swap(), ARTS::Var::t_field(), update_radiation_vector(), ARTS::Var::vmr_field(), ARTS::Var::water_p_eq_agenda(), ARTS::Var::wind_u_field(), ARTS::Var::wind_v_field(), and ARTS::Var::wind_w_field().

Referenced by ARTS::Agenda::iy_main_agenda_transmission(), and iyTransmissionStandard_g().

Variable Documentation

◆ DEG2RAD

const Numeric DEG2RAD
extern

◆ PI

const Numeric PI
extern

◆ RAD2DEG

const Numeric RAD2DEG
extern

◆ SPEED_OF_LIGHT

const Numeric SPEED_OF_LIGHT
extern