ARTS  2.3.1285(git:92a29ea9-dirty)
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 i, joker, Array< base >::nelem(), ConstVectorView::nelem(), Matrix::resize(), and stokes2pol().

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 i, joker, Array< base >::nelem(), ConstVectorView::nelem(), Matrix::resize(), and stokes2pol().

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 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().

Variable Documentation

◆ DEG2RAD

const Numeric DEG2RAD

◆ PI

const Numeric PI

◆ RAD2DEG

const Numeric RAD2DEG

◆ SPEED_OF_LIGHT

const Numeric SPEED_OF_LIGHT