ARTS 2.5.11 (git: 6827797f)
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.
 
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
 

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 1059 of file m_transmitter.cc.

References Array< base >::nelem(), 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 1079 of file m_transmitter.cc.

References Array< base >::nelem(), 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 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().

Variable Documentation

◆ DEG2RAD

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

Definition at line 34 of file m_transmitter.cc.

◆ PI

constexpr Numeric PI =Constant::pi
inlineconstexpr

Definition at line 35 of file m_transmitter.cc.

◆ RAD2DEG

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

Definition at line 36 of file m_transmitter.cc.

◆ SPEED_OF_LIGHT

constexpr Numeric SPEED_OF_LIGHT =Constant::speed_of_light
inlineconstexpr

Definition at line 37 of file m_transmitter.cc.