ARTS 2.5.9 (git: 825fa5f2)
m_transmitter.cc File Reference

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. More...
 
void iy_transmitterMultiplePol (Matrix &iy_transmitter, const Index &stokes_dim, const Vector &f_grid, const ArrayOfIndex &instrument_pol, const Verbosity &)
 WORKSPACE METHOD: iy_transmitterMultiplePol. More...
 
void iy_transmitterSinglePol (Matrix &iy_transmitter, const Index &stokes_dim, const Vector &f_grid, const ArrayOfIndex &instrument_pol, const Verbosity &)
 WORKSPACE METHOD: iy_transmitterSinglePol. More...
 

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
 

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

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

Definition at line 1078 of file m_transmitter.cc.

References joker, Array< base >::nelem(), ConstVectorView::nelem(), Matrix::resize(), and stokes2pol().

Referenced by iy_transmitterMultiplePol_g().

◆ iy_transmitterSinglePol()

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

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

Definition at line 1098 of file m_transmitter.cc.

References 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,
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.

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
[out]ppvar_trans_partialWS 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]gas_scattering_doWS 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]iy_transmitterWS Input
[in]propmat_clearsky_agendaWS Input
[in]water_p_eq_agendaWS Input
[in]gas_scattering_agendaWS Input
[in]iy_agenda_call1WS Input
[in]iy_transmittanceWS Input
[in]rte_alonglos_vWS Input

Definition at line 657 of file m_transmitter.cc.

References a, adapt_stepwise_partial_derivatives(), ARTS_USER_ERROR_IF, cumulative_transmission(), ConstTensor3View::empty(), 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(), joker, Ppath::los, Ppath::lstep, min(), ConstMatrixView::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), Ppath::np, ConstMatrixView::nrows(), ppath_what_background(), Tensor4::resize(), Vector::resize(), Tensor3::resize(), Matrix::resize(), rtmethods_jacobian_finalisation(), stepwise_transmission(), swap(), Transmission, and update_radiation_vector().

Referenced by get_direct_radiation(), iyTransmissionStandard_g(), and surface_get_incoming_direct().

Variable Documentation

◆ DEG2RAD

constexpr Numeric DEG2RAD =Conversion::deg2rad(1)
inlineconstexpr

Definition at line 53 of file m_transmitter.cc.

◆ PI

constexpr Numeric PI =Constant::pi
inlineconstexpr

Definition at line 54 of file m_transmitter.cc.

◆ RAD2DEG

constexpr Numeric RAD2DEG =Conversion::rad2deg(1)
inlineconstexpr

Definition at line 55 of file m_transmitter.cc.

◆ SPEED_OF_LIGHT

constexpr Numeric SPEED_OF_LIGHT =Constant::speed_of_light
inlineconstexpr

Definition at line 56 of file m_transmitter.cc.