ARTS 2.5.11 (git: 6827797f)
|
Declaration of functions in rte.cc. More...
#include "agenda_class.h"
#include "arts.h"
#include "jacobian.h"
#include "matpack_data.h"
#include "matpack_complex.h"
#include "optproperties.h"
#include "ppath.h"
Go to the source code of this file.
Functions | |
void | adapt_stepwise_partial_derivatives (ArrayOfPropagationMatrix &dK_dx, ArrayOfStokesVector &dS_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, const ConstVectorView &ppath_f_grid, const ConstVectorView &ppath_line_of_sight, const Index <e, const Index &atmosphere_dim, const bool &jacobian_do) |
Adapts clearsky partial derivatives. | |
void | adjust_los (VectorView los, const Index &atmosphere_dim) |
Ensures that the zenith and azimuth angles of a line-of-sight vector are inside defined ranges. | |
void | apply_iy_unit (MatrixView iy, const String &iy_unit, const ConstVectorView &f_grid, const Numeric &n, const ArrayOfIndex &i_pol) |
Performs conversion from radiance to other units, as well as applies refractive index to fulfill the n2-law of radiance. | |
void | apply_iy_unit2 (Tensor3View J, const ConstMatrixView &iy, const String &iy_unit, const ConstVectorView &f_grid, const Numeric &n, const ArrayOfIndex &i_pol) |
Largely as apply_iy_unit but operates on jacobian data. | |
void | bending_angle1d (Numeric &alpha, const Ppath &ppath) |
Calculates the bending angle for a 1D atmosphere. | |
void | defocusing_general (Workspace &ws, Numeric &dlf, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &f_grid, const Vector &refellipsoid, const Matrix &z_surface, const Ppath &ppath, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Numeric &dza, const Verbosity &verbosity) |
Defocusing for arbitrary geometry (zenith angle part only) | |
void | defocusing_sat2sat (Workspace &ws, Numeric &dlf, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, const Vector &p_grid, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &z_field, const Vector &f_grid, const Vector &refellipsoid, const Matrix &z_surface, const Ppath &ppath, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Numeric &dza, const Verbosity &verbosity) |
Calculates defocusing for limb measurements between two satellites. | |
Numeric | dotprod_with_los (const ConstVectorView &los, const Numeric &u, const Numeric &v, const Numeric &w, const Index &atmosphere_dim) |
Calculates the dot product between a field and a LOS. | |
void | get_iy (Workspace &ws, Matrix &iy, const Index &cloudbox_on, const Vector &f_grid, const EnergyLevelMap &nlte_field, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const String &iy_unit, const Agenda &iy_main_agenda) |
Basic call of iy_main_agenda. | |
void | get_iy_of_background (Workspace &ws, Matrix &iy, ArrayOfTensor3 &diy_dx, const Tensor3 &iy_transmittance, const Index &iy_id, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const Ppath &ppath, const Vector &rte_pos2, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, const Vector &f_grid, const String &iy_unit, const Tensor3 &surface_props_data, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Agenda &iy_cloudbox_agenda, const Index &iy_agenda_call1, const Verbosity &verbosity) |
Determines iy of the "background" of a propgation path. | |
void | get_ppath_atmvars (Vector &ppath_p, Vector &ppath_t, EnergyLevelMap &ppath_nlte, Matrix &ppath_vmr, Matrix &ppath_wind, Matrix &ppath_mag, const Ppath &ppath, const Index &atmosphere_dim, const ConstVectorView &p_grid, const ConstTensor3View &t_field, const EnergyLevelMap &nlte_field, const ConstTensor4View &vmr_field, const ConstTensor3View &wind_u_field, const ConstTensor3View &wind_v_field, const ConstTensor3View &wind_w_field, const ConstTensor3View &mag_u_field, const ConstTensor3View &mag_v_field, const ConstTensor3View &mag_w_field) |
Determines pressure, temperature, VMR, winds and magnetic field for each propgataion path point. | |
void | get_ppath_cloudvars (ArrayOfIndex &clear2cloudy, Matrix &ppath_pnd, ArrayOfMatrix &ppath_dpnd_dx, const Ppath &ppath, const Index &atmosphere_dim, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const ArrayOfTensor4 &dpnd_field_dx) |
Determines the particle fields along a propagation path. | |
void | get_ppath_f (Matrix &ppath_f, const Ppath &ppath, const ConstVectorView &f_grid, const Index &atmosphere_dim, const Numeric &rte_alonglos_v, const ConstMatrixView &ppath_wind) |
Determines the Doppler shifted frequencies along the propagation path. | |
Range | get_rowindex_for_mblock (const Sparse &sensor_response, const Index &imblock) |
Returns the "range" of y corresponding to a measurement block. | |
void | get_stepwise_blackbody_radiation (VectorView B, VectorView dB_dT, const ConstVectorView &ppath_f_grid, const Numeric &ppath_temperature, const bool &do_temperature_derivative) |
Get the blackbody radiation at propagation path point. | |
void | get_stepwise_clearsky_propmat (Workspace &ws, PropagationMatrix &K, StokesVector &S, Index <e, ArrayOfPropagationMatrix &dK_dx, ArrayOfStokesVector &dS_dx, const Agenda &propmat_clearsky_agenda, const ArrayOfRetrievalQuantity &jacobian_quantities, const Vector &ppath_f_grid, const Vector &ppath_magnetic_field, const Vector &ppath_line_of_sight, const EnergyLevelMap &ppath_nlte, const Vector &ppath_vmrs, const Numeric &ppath_temperature, const Numeric &ppath_pressure, const bool &jacobian_do) |
Gets the clearsky propgation matrix and NLTE contributions. | |
Vector | get_stepwise_f_partials (const ConstVectorView &ppath_line_of_sight, const ConstVectorView &f_grid, const Jacobian::Atm wind_type, const Index &atmosphere_dim) |
Computes the ratio that a partial derivative with regards to frequency relates to the wind of come component. | |
void | get_stepwise_scattersky_propmat (StokesVector &ap, PropagationMatrix &Kp, ArrayOfStokesVector &dap_dx, ArrayOfPropagationMatrix &dKp_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, const ConstMatrixView &ppath_1p_pnd, const ArrayOfMatrix &ppath_dpnd_dx, const Index ppath_1p_id, const ArrayOfArrayOfSingleScatteringData &scat_data, const ConstVectorView &ppath_line_of_sight, const ConstVectorView &ppath_temperature, const Index &atmosphere_dim, const bool &jacobian_do) |
Computes the contribution by scattering at propagation path point. | |
void | get_stepwise_scattersky_source (StokesVector &Sp, ArrayOfStokesVector &dSp_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, const ConstVectorView &ppath_1p_pnd, const ArrayOfMatrix &ppath_dpnd_dx, const Index ppath_1p_id, const ArrayOfArrayOfSingleScatteringData &scat_data, const ConstTensor7View &cloudbox_field, const ConstVectorView &za_grid, const ConstVectorView &aa_grid, const ConstMatrixView &ppath_line_of_sight, const GridPos &ppath_pressure, const Vector &temperature, const Index &atmosphere_dim, const bool &jacobian_do, const Index &t_interp_order=1) |
Calculates the stepwise scattering source terms. | |
void | get_stepwise_transmission_matrix (Tensor3View cumulative_transmission, Tensor3View T, Tensor4View dT_dx_close, Tensor4View dT_dx_far, const ConstTensor3View &cumulative_transmission_close, const PropagationMatrix &K_close, const PropagationMatrix &K_far, const ArrayOfPropagationMatrix &dK_close_dx, const ArrayOfPropagationMatrix &dK_far_dx, const Numeric &ppath_distance, const bool &first_level, const Numeric &dr_dT_close=0, const Numeric &dr_dT_far=0, const Index &it=-1) |
Computes layer transmission matrix and cumulative transmission. | |
void | iyb_calc (Workspace &ws, Vector &iyb, ArrayOfVector &iyb_aux, ArrayOfMatrix &diyb_dx, Matrix &geo_pos_matrix, const Index &imblock, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, const Vector &f_grid, const Matrix &sensor_pos, const Matrix &sensor_los, const Matrix &transmitter_pos, const Matrix &mblock_dlos, const String &iy_unit, const Agenda &iy_main_agenda, const Index &j_analytical_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfIndex &jacobian_indices, const ArrayOfString &iy_aux_vars, const Verbosity &verbosity) |
Performs calculations for one measurement block, on iy-level. | |
void | iy_transmittance_mult (Tensor3 &iy_trans_total, const ConstTensor3View &iy_trans_old, const ConstTensor3View &iy_trans_new) |
Multiplicates iy_transmittance with transmissions. | |
void | iy_transmittance_mult (Matrix &iy_new, const ConstTensor3View &iy_trans, const ConstMatrixView &iy_old) |
Multiplicates iy_transmittance with iy-variable. | |
void | mirror_los (Vector &los_mirrored, const ConstVectorView &los, const Index &atmosphere_dim) |
Determines the backward direction for a given line-of-sight. | |
void | muellersparse_rotation (Sparse &H, const Index &stokes_dim, const Numeric &rotangle) |
muellersparse_rotation | |
void | mueller_modif2stokes (Matrix &Cs, const Index &stokes_dim) |
mueller_modif2stokes | |
void | mueller_rotation (Matrix &L, const Index &stokes_dim, const Numeric &rotangle) |
mueller_rotation | |
void | mueller_stokes2modif (Matrix &Cm, const Index &stokes_dim) |
mueller_stokes2modif | |
void | pos2true_latlon (Numeric &lat, Numeric &lon, const Index &atmosphere_dim, const ConstVectorView &lat_grid, const ConstVectorView &lat_true, const ConstVectorView &lon_true, const ConstVectorView &pos) |
Determines the true alt and lon for an "ARTS position". | |
void | rtmethods_jacobian_finalisation (Workspace &ws, ArrayOfTensor3 &diy_dx, ArrayOfTensor3 &diy_dpath, const Index &ns, const Index &nf, const Index &np, const Index &atmosphere_dim, const Ppath &ppath, const Vector &ppvar_p, const Vector &ppvar_t, const Matrix &ppvar_vmr, const Index &iy_agenda_call1, const Tensor3 &iy_transmittance, const Agenda &water_p_eq_agenda, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfIndex &jac_species_i) |
This function fixes the last steps to made on the Jacobian in some radiative transfer WSMs. | |
void | rtmethods_unit_conversion (Matrix &iy, ArrayOfTensor3 &diy_dx, Tensor3 &ppvar_iy, const Index &ns, const Index &np, const Vector &f_grid, const Ppath &ppath, const ArrayOfRetrievalQuantity &jacobian_quantities, const Index &j_analytical_do, const String &iy_unit) |
This function handles the unit conversion to be done at the end of some radiative transfer WSMs. | |
void | yCalc_mblock_loop_body (bool &failed, String &fail_msg, ArrayOfArrayOfVector &iyb_aux_array, Workspace &ws, Vector &y, Vector &y_f, ArrayOfIndex &y_pol, Matrix &y_pos, Matrix &y_los, Matrix &y_geo, Matrix &jacobian, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, const Vector &f_grid, const Matrix &sensor_pos, const Matrix &sensor_los, const Matrix &transmitter_pos, const Matrix &mblock_dlos, const Sparse &sensor_response, const Vector &sensor_response_f, const ArrayOfIndex &sensor_response_pol, const Matrix &sensor_response_dlos, const String &iy_unit, const Agenda &iy_main_agenda, const Agenda &jacobian_agenda, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfIndex &jacobian_indices, const ArrayOfString &iy_aux_vars, const Verbosity &verbosity, const Index &mblock_index, const Index &n1y, const Index &j_analytical_do) |
Performs calculations for one measurement block, on y-level. | |
void | ze_cfac (Vector &fac, const Vector &f_grid, const Numeric &ze_tref, const Numeric &k2) |
Calculates factor to convert back-scattering to Ze. | |
void adapt_stepwise_partial_derivatives | ( | ArrayOfPropagationMatrix & | dK_dx, |
ArrayOfStokesVector & | dS_dx, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const ConstVectorView & | ppath_f_grid, | ||
const ConstVectorView & | ppath_line_of_sight, | ||
const Index & | lte, | ||
const Index & | atmosphere_dim, | ||
const bool & | jacobian_do | ||
) |
Adapts clearsky partial derivatives.
The following fields:
Wind VMR
Adaptation means changing unit by user input
[in,out] | dK_dx | Propagation matrix derivatives at propagation path point, adapted for wind and VMR units |
[in,out] | dS_dx | NLTE source adjustment derivatives at propagation path point, adapted for wind and VMR units |
[in] | jacobian_quantities | as WSV |
[in] | ppath_f_grid | Wind-adjusted frequency grid at propagation path point |
[in] | ppath_line_of_sight | Line of sight at propagation path point |
[in] | lte | Boolean index for whether or not the atmosphere is in LTE at propagation path point |
[in] | atmosphere_dim | As WSV |
[in] | jacobian_do | As WSV |
Definition at line 38 of file rte.cc.
References a, get_stepwise_f_partials(), and Array< base >::nelem().
Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().
void adjust_los | ( | VectorView | los, |
const Index & | atmosphere_dim | ||
) |
Ensures that the zenith and azimuth angles of a line-of-sight vector are inside defined ranges.
This function should not be used blindly, just when you know that the out-of-bounds values are obtained by an OK operation. As when making a disturbance calculation where e.g. the zenith angle is shifted with a small value. This function then handles the case when the original zenith angle is 0 or 180 and the disturbance then moves the angle outside the defined range.
[in,out] | los | LOS vector, defined as e.g. rte_los. |
[in] | atmosphere_dim | As the WSV. |
Definition at line 66 of file rte.cc.
References cart2zaaa(), and zaaa2cart().
Referenced by defocusing_general_sub(), defocusing_sat2sat(), iyb_calc_body(), and raytrace_3d_linear_basic().
void apply_iy_unit | ( | MatrixView | iy, |
const String & | iy_unit, | ||
const ConstVectorView & | f_grid, | ||
const Numeric & | n, | ||
const ArrayOfIndex & | i_pol | ||
) |
Performs conversion from radiance to other units, as well as applies refractive index to fulfill the n2-law of radiance.
Use apply_iy_unit2 for conversion of jacobian data.
[in,out] | iy | Tensor3 with data to be converted, where column dimension corresponds to Stokes dimensionality and row dimension corresponds to frequency. |
[in] | iy_unit | As the WSV. |
[in] | f_grid | As the WSV. |
[in] | n | Refractive index at the observation position. |
[in] | i_pol | Polarisation indexes. See documentation of y_pol. |
Definition at line 89 of file rte.cc.
References ARTS_ASSERT, ARTS_USER_ERROR, invplanck(), invrayjean(), Array< base >::nelem(), and SPEED_OF_LIGHT.
Referenced by iyApplyUnit(), rtmethods_unit_conversion(), and yApplyUnit().
void apply_iy_unit2 | ( | Tensor3View | J, |
const ConstMatrixView & | iy, | ||
const String & | iy_unit, | ||
const ConstVectorView & | f_grid, | ||
const Numeric & | n, | ||
const ArrayOfIndex & | i_pol | ||
) |
Largely as apply_iy_unit but operates on jacobian data.
The associated spectrum data iy must be in radiance. That is, the spectrum can only be converted to Tb after the jacobian data.
[in,out] | J | Tensor3 with data to be converted, where column dimension corresponds to Stokes dimensionality and row dimension corresponds to frequency. |
[in] | iy | Associated radiance data. |
[in] | iy_unit | As the WSV. |
[in] | f_grid | As the WSV. |
[in] | n | Refractive index at the observation position. |
[in] | i_pol | Polarisation indexes. See documentation of y_pol. |
Definition at line 162 of file rte.cc.
References ARTS_ASSERT, ARTS_USER_ERROR, dinvplanckdI(), invrayjean(), Array< base >::nelem(), and SPEED_OF_LIGHT.
Referenced by rtmethods_unit_conversion(), and yApplyUnit().
void bending_angle1d | ( | Numeric & | alpha, |
const Ppath & | ppath | ||
) |
Calculates the bending angle for a 1D atmosphere.
The expression used assumes a 1D atmosphere, that allows the bending angle to be calculated by start and end LOS. This is an approximation for 2D and 3D, but a very small one and the function should in general be OK also for 2D and 3D.
The expression is taken from Kursinski et al., The GPS radio occultation technique, TAO, 2000.
FIXMEDOC@Patrick, if this function only returns a numeric, have it defined as "Numeric bending_angle1d(ppath)" since this is better code.
[in] | ppath | Propagation path. |
Definition at line 249 of file rte.cc.
References Ppath::dim, Ppath::end_los, Ppath::end_pos, sphdist(), Ppath::start_los, and Ppath::start_pos.
Referenced by defocusing_sat2sat().
void defocusing_general | ( | Workspace & | ws, |
Numeric & | dlf, | ||
const Agenda & | ppath_step_agenda, | ||
const Index & | atmosphere_dim, | ||
const Vector & | p_grid, | ||
const Vector & | lat_grid, | ||
const Vector & | lon_grid, | ||
const Tensor3 & | z_field, | ||
const Vector & | f_grid, | ||
const Vector & | refellipsoid, | ||
const Matrix & | z_surface, | ||
const Ppath & | ppath, | ||
const Numeric & | ppath_lmax, | ||
const Numeric & | ppath_lraytrace, | ||
const Numeric & | dza, | ||
const Verbosity & | verbosity | ||
) |
Defocusing for arbitrary geometry (zenith angle part only)
Estimates the defocusing loss factor by calculating two paths with zenith angle off-sets. The distance between the two path at the optical path length between the transmitter and the receiver, divided with the corresponding distance for free space propagation, gives the defocusing loss.
The azimuth (gain) factor is not calculated. The path calculations are here done starting from the transmitter, which is the reversed direction compared to the ordinary path calculations starting at the receiver.
[in,out] | ws | The workspace. |
[out] | dlf | Defocusing loss factor (1 for no loss) |
[in] | ppath_step_agenda | As the WSV with the same name. |
[in] | atmosphere_dim | As the WSV with the same name. |
[in] | p_grid | As the WSV with the same name. |
[in] | lat_grid | As the WSV with the same name. |
[in] | lon_grid | As the WSV with the same name. |
[in] | z_field | As the WSV with the same name. |
[in] | f_grid | As the WSV with the same name. |
[in] | refellipsoid | As the WSV with the same name. |
[in] | z_surface | As the WSV with the same name. |
[in] | ppath | As the WSV with the same name. |
[in] | ppath_lmax | As the WSV with the same name. |
[in] | ppath_lraytrace | As the WSV with the same name. |
[in] | dza | Size of angular shift to apply. |
[in] | verbosity | As the WSV with the same name. |
Definition at line 416 of file rte.cc.
References defocusing_general_sub(), Conversion::deg2rad(), distance2D(), distance3D(), Ppath::end_lstep, Ppath::end_pos, Ppath::lstep, max(), mirror_los(), Ppath::np, Ppath::nreal, refell2r(), Ppath::start_los, Ppath::start_lstep, and Ppath::start_pos.
void defocusing_sat2sat | ( | Workspace & | ws, |
Numeric & | dlf, | ||
const Agenda & | ppath_step_agenda, | ||
const Index & | atmosphere_dim, | ||
const Vector & | p_grid, | ||
const Vector & | lat_grid, | ||
const Vector & | lon_grid, | ||
const Tensor3 & | z_field, | ||
const Vector & | f_grid, | ||
const Vector & | refellipsoid, | ||
const Matrix & | z_surface, | ||
const Ppath & | ppath, | ||
const Numeric & | ppath_lmax, | ||
const Numeric & | ppath_lraytrace, | ||
const Numeric & | dza, | ||
const Verbosity & | verbosity | ||
) |
Calculates defocusing for limb measurements between two satellites.
The expressions used assume a 1D atmosphere, and can only be applied on limb sounding geometry. The function works for 2D and 3D and should give OK estimates. Both the zenith angle (loss) and azimuth angle (gain) terms are considered.
The expressions is taken from Kursinski et al., The GPS radio occultation technique, TAO, 2000.
[in,out] | ws | The workspace. |
[out] | dlf | Defocusing loss factor (1 for no loss) |
[in] | ppath_step_agenda | As the WSV with the same name. |
[in] | atmosphere_dim | As the WSV with the same name. |
[in] | p_grid | As the WSV with the same name. |
[in] | lat_grid | As the WSV with the same name. |
[in] | lon_grid | As the WSV with the same name. |
[in] | z_field | As the WSV with the same name. |
[in] | f_grid | As the WSV with the same name. |
[in] | refellipsoid | As the WSV with the same name. |
[in] | z_surface | As the WSV with the same name. |
[in] | ppath | As the WSV with the same name. |
[in] | ppath_lmax | As the WSV with the same name. |
[in] | ppath_lraytrace | As the WSV with the same name. |
[in] | dza | Size of angular shift to apply. |
[in] | verbosity | As the WSV with the same name. |
Definition at line 535 of file rte.cc.
References adjust_los(), ARTS_ASSERT, ARTS_USER_ERROR_IF, bending_angle1d(), Ppath::constant, Conversion::deg2rad(), Ppath::end_los, Ppath::end_lstep, Ppath::end_pos, find_tanpoint(), Ppath::lstep, Ppath::np, ppath_calc(), ppath_what_background(), Ppath::start_los, and Ppath::start_lstep.
Numeric dotprod_with_los | ( | const ConstVectorView & | los, |
const Numeric & | u, | ||
const Numeric & | v, | ||
const Numeric & | w, | ||
const Index & | atmosphere_dim | ||
) |
Calculates the dot product between a field and a LOS.
The line-of-sight shall be given as in the ppath structure (i.e. the viewing direction), but the dot product is calculated for the photon direction. The field is specified by its three components.
The returned value can be written as |f|*cos(theta), where |f| is the field strength, and theta the angle between the field and photon vectors.
[in] | los | Pppath line-of-sight. |
[in] | u | U-component of field. |
[in] | v | V-component of field. |
[in] | w | W-component of field. |
[in] | atmosphere_dim | As the WSV. |
Definition at line 651 of file rte.cc.
References Conversion::deg2rad(), mirror_los(), u, v, and w.
Referenced by get_ppath_f(), get_stepwise_f_partials(), and propmat_clearskyAddFaraday().
void get_iy | ( | Workspace & | ws, |
Matrix & | iy, | ||
const Index & | cloudbox_on, | ||
const Vector & | f_grid, | ||
const EnergyLevelMap & | nlte_field, | ||
const Vector & | rte_pos, | ||
const Vector & | rte_los, | ||
const Vector & | rte_pos2, | ||
const String & | iy_unit, | ||
const Agenda & | iy_main_agenda | ||
) |
Basic call of iy_main_agenda.
This function is an interface to iy_main_agenda that can be used when only iy is of interest. That is, jacobian and auxilary parts are deactivated/ignored.
[in,out] | ws | The workspace |
[out] | iy | As the WSV. |
[in] | cloudbox_on | As the WSV. |
[in] | f_grid | As the WSV. |
[in] | nlte_field | As the WSV. |
[in] | rte_pos | As the WSV. |
[in] | rte_los | As the WSV. |
[in] | iy_unit | As the WSV. |
[in] | iy_main_agenda | As the WSV. |
Definition at line 672 of file rte.cc.
References iy_main_agendaExecute().
void get_iy_of_background | ( | Workspace & | ws, |
Matrix & | iy, | ||
ArrayOfTensor3 & | diy_dx, | ||
const Tensor3 & | iy_transmittance, | ||
const Index & | iy_id, | ||
const Index & | jacobian_do, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const Ppath & | ppath, | ||
const Vector & | rte_pos2, | ||
const Index & | atmosphere_dim, | ||
const EnergyLevelMap & | nlte_field, | ||
const Index & | cloudbox_on, | ||
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const String & | iy_unit, | ||
const Tensor3 & | surface_props_data, | ||
const Agenda & | iy_main_agenda, | ||
const Agenda & | iy_space_agenda, | ||
const Agenda & | iy_surface_agenda, | ||
const Agenda & | iy_cloudbox_agenda, | ||
const Index & | iy_agenda_call1, | ||
const Verbosity & | verbosity | ||
) |
Determines iy of the "background" of a propgation path.
The task is to determine iy and related variables for the background, or to continue the raditiave calculations "backwards". The details here depends on the method selected for the agendas.
Each background is handled by an agenda. Several of these agandes can involve recursive calls of iy_main_agenda.
[in,out] | ws | The workspace |
[out] | iy | As the WSV. |
[out] | diy_dx | As the WSV. |
[in] | iy_transmittance | As the WSV. |
[in] | jacobian_do | As the WSV. |
[in] | ppath | As the WSV. |
[in] | atmosphere_dim | As the WSV. |
[in] | cloudbox_on | As the WSV. |
[in] | stokes_dim | As the WSV. |
[in] | f_grid | As the WSV. |
[in] | iy_unit | As the WSV. |
[in] | surface_props_data | As the WSV. |
[in] | iy_main_agenda | As the WSV. |
[in] | iy_space_agenda | As the WSV. |
[in] | iy_surface_agenda | As the WSV. |
[in] | iy_cloudbox_agenda | As the WSV. |
Definition at line 713 of file rte.cc.
References ARTS_ASSERT, ARTS_USER_ERROR_IF, Ppath::background, chk_not_empty(), CREATE_OUT3, iy_cloudbox_agendaExecute(), iy_space_agendaExecute(), iy_surface_agendaExecute(), Ppath::los, Array< base >::nelem(), Ppath::np, Ppath::pos, and ppath_what_background().
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), and iyEmissionStandard().
void get_ppath_atmvars | ( | Vector & | ppath_p, |
Vector & | ppath_t, | ||
EnergyLevelMap & | ppath_nlte, | ||
Matrix & | ppath_vmr, | ||
Matrix & | ppath_wind, | ||
Matrix & | ppath_mag, | ||
const Ppath & | ppath, | ||
const Index & | atmosphere_dim, | ||
const ConstVectorView & | p_grid, | ||
const ConstTensor3View & | t_field, | ||
const EnergyLevelMap & | nlte_field, | ||
const ConstTensor4View & | vmr_field, | ||
const ConstTensor3View & | wind_u_field, | ||
const ConstTensor3View & | wind_v_field, | ||
const ConstTensor3View & | wind_w_field, | ||
const ConstTensor3View & | mag_u_field, | ||
const ConstTensor3View & | mag_v_field, | ||
const ConstTensor3View & | mag_w_field | ||
) |
Determines pressure, temperature, VMR, winds and magnetic field for each propgataion path point.
The output variables are sized inside the function. For VMR the dimensions are [ species, propagation path point ].
[out] | ppath_p | Pressure for each ppath point. |
[out] | ppath_t | Temperature for each ppath point. |
[out] | ppath_vmr | VMR values for each ppath point. |
[out] | ppath_wind | Wind vector for each ppath point. |
[out] | ppath_mag | Mag. field vector for each ppath point. |
[in] | ppath | As the WSV. |
[in] | atmosphere_dim | As the WSV. |
[in] | p_grid | As the WSV. |
[in] | lat_grid | As the WSV. |
[in] | lon_grid | As the WSV. |
[in] | t_field | As the WSV. |
[in] | vmr_field | As the WSV. |
[in] | wind_u_field | As the WSV. |
[in] | wind_v_field | As the WSV. |
[in] | wind_w_field | As the WSV. |
[in] | mag_u_field | As the WSV. |
[in] | mag_v_field | As the WSV. |
[in] | mag_w_field | As the WSV. |
Definition at line 828 of file rte.cc.
References Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, interp_atmfield_by_itw(), interp_atmfield_gp2itw(), EnergyLevelMap::InterpToGridPos(), interpweights(), itw2p(), and Ppath::np.
Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().
void get_ppath_cloudvars | ( | ArrayOfIndex & | clear2cloudy, |
Matrix & | ppath_pnd, | ||
ArrayOfMatrix & | ppath_dpnd_dx, | ||
const Ppath & | ppath, | ||
const Index & | atmosphere_dim, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Tensor4 & | pnd_field, | ||
const ArrayOfTensor4 & | dpnd_field_dx | ||
) |
Determines the particle fields along a propagation path.
[out] | clear2cloudy | Mapping of index. See code for details. |
[out] | ppath_pnd | The particle number density for each path point (also outside cloudbox). |
[out] | ppath_dpnd_dx | dpnd_field_dx for each path point (also outside cloudbox). |
[in] | ppath | As the WSV. |
[in] | cloubox_limits | As the WSV. |
[in] | pnd_field | As the WSV. |
[in] | dpnd_field_dx | As the WSV. |
Definition at line 947 of file rte.cc.
References Ppath::gp_lat, Ppath::gp_lon, Ppath::gp_p, gridpos_copy(), interp_atmfield_by_itw(), interp_cloudfield_gp2itw(), is_gp_inside_cloudbox(), max(), min(), and Ppath::np.
Referenced by iyEmissionHybrid(), iyRadarSingleScat(), and iyTransmissionStandard().
void get_ppath_f | ( | Matrix & | ppath_f, |
const Ppath & | ppath, | ||
const ConstVectorView & | f_grid, | ||
const Index & | atmosphere_dim, | ||
const Numeric & | rte_alonglos_v, | ||
const ConstMatrixView & | ppath_wind | ||
) |
Determines the Doppler shifted frequencies along the propagation path.
ppath_doppler[ nf,np]
[out] | ppath_f | Doppler shifted f_grid |
[in] | ppath | Propagation path. |
[in] | f_grid | Original f_grid. |
[in] | atmosphere_dim | As the WSV. |
[in] | rte_alonglos_v | As the WSV. |
[in] | ppath_wind | See get_ppath_atmvars. |
Definition at line 1051 of file rte.cc.
References a, dotprod_with_los(), Ppath::los, Ppath::np, and SPEED_OF_LIGHT.
Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().
Range get_rowindex_for_mblock | ( | const Sparse & | sensor_response, |
const Index & | imblock | ||
) |
Returns the "range" of y corresponding to a measurement block.
[in] | sensor_response | As the WSV. |
[in] | mblock_index | Index of the measurement block. |
Definition at line 1095 of file rte.cc.
Referenced by calcBaselineFit(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), jacobianCalcPointingZaRecalc(), jacobianCalcPolyfit(), jacobianCalcSinefit(), yCalc(), and yCalc_mblock_loop_body().
void get_stepwise_blackbody_radiation | ( | VectorView | B, |
VectorView | dB_dT, | ||
const ConstVectorView & | ppath_f_grid, | ||
const Numeric & | ppath_temperature, | ||
const bool & | do_temperature_derivative | ||
) |
Get the blackbody radiation at propagation path point.
[in,out] | B | Blackbody radiation at propagation path point |
[in,out] | dB_dT | Blackbody radiation temperature derivative at propagation path point |
[in] | ppath_f_grid | Wind-adjusted frequency grid at propagation path point |
[in] | ppath_temperature | Temperature of atmosphere at propagation path point |
[in] | do_temperature_derivative | Fill dB_dT? |
Definition at line 1101 of file rte.cc.
References dplanck_dt(), and planck().
Referenced by emission_from_propmat_field(), iyClearsky(), iyEmissionHybrid(), and iyEmissionStandard().
void get_stepwise_clearsky_propmat | ( | Workspace & | ws, |
PropagationMatrix & | K, | ||
StokesVector & | S, | ||
Index & | lte, | ||
ArrayOfPropagationMatrix & | dK_dx, | ||
ArrayOfStokesVector & | dS_dx, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const Vector & | ppath_f_grid, | ||
const Vector & | ppath_magnetic_field, | ||
const Vector & | ppath_line_of_sight, | ||
const EnergyLevelMap & | ppath_nlte, | ||
const Vector & | ppath_vmrs, | ||
const Numeric & | ppath_temperature, | ||
const Numeric & | ppath_pressure, | ||
const bool & | jacobian_do | ||
) |
Gets the clearsky propgation matrix and NLTE contributions.
Basically a wrapper for calls to the propagation clearsky agenda
[in] | ws | The workspace |
[in,out] | K | Propagation matrix at propagation path point |
[in,out] | S | NLTE source adjustment at propagation path point |
[in,out] | lte | Boolean index for whether or not the atmosphere is in LTE at propagation path point |
[in,out] | dK_dx | Propagation matrix derivatives at propagation path point |
[in,out] | dS_dx | NLTE source adjustment derivatives at propagation path point |
[in] | propmat_clearsky_agenda | As WSA |
[in] | jacobian_quantities | As WSV |
[in] | ppath_f_grid | Wind-adjusted frequency grid at propagation path point |
[in] | ppath_mag_field | Magnetic field at propagation path point |
[in] | ppath_line_of_sight | Line of sight at propagation path point |
[in] | ppath_nlte | NLTE distribution at propagation path point |
[in] | ppath_vmrs | Volume mixing ratio of atmospheric species at propagation path point |
[in] | ppath_temperature | Temperature of atmosphere at propagation path point |
[in] | ppath_pressure | Pressure of atmosphere at propagation path point |
[in] | jacobian_do | As WSV |
Definition at line 1116 of file rte.cc.
References propmat_clearsky_agendaExecute().
Referenced by field_of_propagation(), iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().
Vector get_stepwise_f_partials | ( | const ConstVectorView & | ppath_line_of_sight, |
const ConstVectorView & | f_grid, | ||
const Jacobian::Atm | wind_type, | ||
const Index & | atmosphere_dim | ||
) |
Computes the ratio that a partial derivative with regards to frequency relates to the wind of come component.
[in,out] | ppath_f_grid | Wind-adjusted frequency grid wind derivative at propagation path point |
[in] | ppath_line_of_sight | Line of sight at propagation path point |
[in] | f_grid | As WSV |
[in] | wind_type | The wind component |
[in] | atmosphere_dim | As WSV |
Definition at line 1154 of file rte.cc.
References ARTS_ASSERT, Constant::c, and dotprod_with_los().
Referenced by adapt_stepwise_partial_derivatives().
void get_stepwise_scattersky_propmat | ( | StokesVector & | ap, |
PropagationMatrix & | Kp, | ||
ArrayOfStokesVector & | dap_dx, | ||
ArrayOfPropagationMatrix & | dKp_dx, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const ConstMatrixView & | ppath_1p_pnd, | ||
const ArrayOfMatrix & | ppath_dpnd_dx, | ||
const Index | ppath_1p_id, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const ConstVectorView & | ppath_line_of_sight, | ||
const ConstVectorView & | ppath_temperature, | ||
const Index & | atmosphere_dim, | ||
const bool & | jacobian_do | ||
) |
Computes the contribution by scattering at propagation path point.
[in,out] | ap | Absorption vector scattersky at propagation path point |
[in,out] | Kp | Propagation matrix scattersky at propagation path point |
[in,out] | dap_dx | Absorption vector scattersky derivatives at propagation path point |
[in,out] | dKp_dx | Propagation matrix scattersky derivatives at propagation path point |
[in] | jacobian_quantities | As WSV |
[in] | ppath_1p_pnd | Particulate number density at propagation path point |
[in] | scat_data | As WSV |
[in] | ppath_line_of_sight | Line of sight at propagation path point |
[in] | ppath_temperature | Temperature at propagation path point |
[in] | atmosphere_dim | As WSV |
[in] | jacobian_do | As WSV |
Definition at line 1188 of file rte.cc.
References FOR_ANALYTICAL_JACOBIANS_DO, mirror_los(), opt_prop_Bulk(), opt_prop_NScatElems(), and opt_prop_ScatSpecBulk().
Referenced by iyEmissionHybrid(), iyRadarSingleScat(), and iyTransmissionStandard().
void get_stepwise_scattersky_source | ( | StokesVector & | Sp, |
ArrayOfStokesVector & | dSp_dx, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const ConstVectorView & | ppath_1p_pnd, | ||
const ArrayOfMatrix & | ppath_dpnd_dx, | ||
const Index | ppath_1p_id, | ||
const ArrayOfArrayOfSingleScatteringData & | scat_data, | ||
const ConstTensor7View & | cloudbox_field, | ||
const ConstVectorView & | za_grid, | ||
const ConstVectorView & | aa_grid, | ||
const ConstMatrixView & | ppath_line_of_sight, | ||
const GridPos & | ppath_pressure, | ||
const Vector & | temperature, | ||
const Index & | atmosphere_dim, | ||
const bool & | jacobian_do, | ||
const Index & | t_interp_order = 1 |
||
) |
Calculates the stepwise scattering source terms.
Uses new, unified phase matrix extraction scheme.
[in] | Sp | Out: The scattering source term |
[in] | dSp_dx | Out: The derivative of the scattering source term ... |
Definition at line 1305 of file rte.cc.
References AngIntegrate_trapezoid(), ARTS_ASSERT, ARTS_USER_ERROR_IF, FOR_ANALYTICAL_JACOBIANS_DO, gridpos_copy(), interp(), interpweights(), Array< base >::nelem(), pha_mat_1ScatElem(), and TotalNumberOfElements().
Referenced by iyEmissionHybrid().
void get_stepwise_transmission_matrix | ( | Tensor3View | cumulative_transmission, |
Tensor3View | T, | ||
Tensor4View | dT_dx_close, | ||
Tensor4View | dT_dx_far, | ||
const ConstTensor3View & | cumulative_transmission_close, | ||
const PropagationMatrix & | K_close, | ||
const PropagationMatrix & | K_far, | ||
const ArrayOfPropagationMatrix & | dK_close_dx, | ||
const ArrayOfPropagationMatrix & | dK_far_dx, | ||
const Numeric & | ppath_distance, | ||
const bool & | first_level, | ||
const Numeric & | dr_dT_close = 0 , |
||
const Numeric & | dr_dT_far = 0 , |
||
const Index & | it = -1 |
||
) |
Computes layer transmission matrix and cumulative transmission.
FIXME: This function should be removed
[in,out] | cumulative_transmission | Present accumulation of transmission for Jacobian computations |
[in,out] | T | Layer transmission |
[in,out] | dT_close_dx | Layer transmission derivative due to the close propagation path point |
[in,out] | dT_far_dx | Layer transmission derivative due to the far propagation path point |
[in] | cumulative_transmission_close | Past accumulation of transmission for Jacobian computations |
[in] | K_close | Level propagation matrix due to the close propagation path point |
[in] | K_far | Level propagation matrix due to the far propagation path point |
[in] | dK_close_dx | Level propagation matrix derivatives due to the close propagation path point |
[in] | dK_far_dx | Level propagation matrix derivatives due to the far propagation path point |
[in] | ppath_distance | Thickness of the layer |
[in] | first_level | Boolean for if this is the first level, i.e., there is no cumulative_transmission_close |
[in] | dr_dT_close | Thickness of the layer derivative due to temperature of the close propagation path point |
[in] | dr_dT_far | Thickness of the layer derivative due to temperature of the far propagation path point |
[in] | it | Index to temperature derivatives |
void iy_transmittance_mult | ( | Matrix & | iy_new, |
const ConstTensor3View & | iy_trans, | ||
const ConstMatrixView & | iy_old | ||
) |
Multiplicates iy_transmittance with iy-variable.
The operation can be written as:
iy_new = T * iy_old
where T is the transmission corresponding to iy_transmittance and iy_old is a variable matching iy.
iy_new* is sized by the function.
[out] | iy_new | Updated version of iy |
[in] | iy_trans | A variable matching iy_transmittance. |
[in] | iy_old | A variable matching iy. |
Definition at line 1775 of file rte.cc.
References ARTS_ASSERT, and mult().
void iy_transmittance_mult | ( | Tensor3 & | iy_trans_total, |
const ConstTensor3View & | iy_trans_old, | ||
const ConstTensor3View & | iy_trans_new | ||
) |
Multiplicates iy_transmittance with transmissions.
That is, a multiplication of iy_transmittance with another variable having same structure and holding transmission values.
The "new path" is assumed to be further away from the sensor than the propagtion path already included in iy_transmittance. That is, the operation can be written as:
Ttotal = Told * Tnew
where Told is the transmission corresponding to iy_transmittance and Tnew corresponds to tau.
iy_trans_new* is sized by the function.
[out] | iy_trans_total | Updated version of iy_transmittance |
[in] | iy_trans_old | A variable matching iy_transmittance. |
[in] | iy_trans_new | A variable matching iy_transmittance. |
Definition at line 1755 of file rte.cc.
References ARTS_ASSERT, and mult().
Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iySurfaceLambertian(), iySurfaceRtpropAgenda(), and iySurfaceRtpropCalc().
void iyb_calc | ( | Workspace & | ws, |
Vector & | iyb, | ||
ArrayOfVector & | iyb_aux, | ||
ArrayOfMatrix & | diyb_dx, | ||
Matrix & | geo_pos_matrix, | ||
const Index & | imblock, | ||
const Index & | atmosphere_dim, | ||
const EnergyLevelMap & | nlte_field, | ||
const Index & | cloudbox_on, | ||
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const Matrix & | sensor_pos, | ||
const Matrix & | sensor_los, | ||
const Matrix & | transmitter_pos, | ||
const Matrix & | mblock_dlos, | ||
const String & | iy_unit, | ||
const Agenda & | iy_main_agenda, | ||
const Index & | j_analytical_do, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const ArrayOfArrayOfIndex & | jacobian_indices, | ||
const ArrayOfString & | iy_aux_vars, | ||
const Verbosity & | verbosity | ||
) |
Performs calculations for one measurement block, on iy-level.
FIXMEDOC@Patrick This function lacks all documentation
The parameters mainly matches WSVs.
Definition at line 1591 of file rte.cc.
References arts_omp_get_max_threads(), ARTS_USER_ERROR_IF, CREATE_OUT3, FOR_ANALYTICAL_JACOBIANS_DO2, iyb_calc_body(), min(), and Array< base >::nelem().
Referenced by jacobianCalcPointingZaRecalc(), and yCalc_mblock_loop_body().
void mirror_los | ( | Vector & | los_mirrored, |
const ConstVectorView & | los, | ||
const Index & | atmosphere_dim | ||
) |
Determines the backward direction for a given line-of-sight.
This function can be used to get the LOS to apply for extracting single scattering properties, if the propagation path LOS is given.
A viewing direction of aa=0 is assumed for 1D. This corresponds to positive za for 2D.
[out] | los_mirrored | The line-of-sight for reversed direction. |
[in] | los | A line-of-sight |
[in] | atmosphere_dim | As the WSV. |
Definition at line 1792 of file rte.cc.
Referenced by cloudy_rt_vars_at_gp(), defocusing_general(), dotprod_with_los(), gas_scattering_matRayleigh(), get_stepwise_scattersky_propmat(), iyRadarSingleScat(), iySurfaceLambertianDirect(), MCRadar(), propmat_clearskyAddParticles(), propmat_clearskyAddZeeman(), and Sample_los().
void mueller_modif2stokes | ( | Matrix & | Cs, |
const Index & | stokes_dim | ||
) |
mueller_modif2stokes
Returns the Mueller matrix for transformation of a modified Stokes vector to its standard counterpart.
See ARTS Theory document, section "Change of the Stokes basis" for details.
Cs | Mueller matrix |
stokes_dim | Stokes dimensionality (1-4) |
Definition at line 1845 of file rte.cc.
References ARTS_ASSERT.
Referenced by surfaceMapToLinearPolarisation().
void mueller_rotation | ( | Matrix & | L, |
const Index & | stokes_dim, | ||
const Numeric & | rotangle | ||
) |
mueller_rotation
Returns the Mueller matrix for a rotation of the coordinate system defining H and V directions.
As muellersparse_rotation, besides that this function returns a matrix (not Sparse) and the matrix is sized by the function.
L | Mueller matrix |
stokes_dim | Stokes dimensionality (1-4) |
rotangle | Rotation angle. |
Definition at line 1866 of file rte.cc.
References ARTS_ASSERT, and Conversion::deg2rad().
Referenced by surfaceMapToLinearPolarisation().
void mueller_stokes2modif | ( | Matrix & | Cm, |
const Index & | stokes_dim | ||
) |
mueller_stokes2modif
Returns the Mueller matrix for transformation from Stokes to its modified counterpart.
See ARTS Theory document, section "Change of the Stokes basis" for details.
Cm | Mueller matrix |
stokes_dim | Stokes dimensionality (1-4) |
Definition at line 1893 of file rte.cc.
References ARTS_ASSERT.
Referenced by surfaceMapToLinearPolarisation().
void muellersparse_rotation | ( | Sparse & | H, |
const Index & | stokes_dim, | ||
const Numeric & | rotangle | ||
) |
muellersparse_rotation
Returns the Mueller matrix for a rotation of the coordinate system defining H and V directions.
The function follows Eq 9 in the sensor response article (Eriksson et al, Efficient forward modelling by matrix representation of sensor responses, IJRS, 2006).
The sparse matrix H is not sized by the function, in order to save time for repeated usage. Before first call of this function, size H as H.resize( stokes_dim, stokes_dim ); The H returned of this function can be used as input for later calls. That is, no need to repeat the resize command above.
H | Mueller matrix |
stokes_dim | Stokes dimensionality (1-2) |
rotangle | Rotation angle. |
Definition at line 1816 of file rte.cc.
References a, ARTS_ASSERT, b, Conversion::cosd(), and Conversion::sind().
Referenced by met_mm_polarisation_hmatrix(), and sensor_responseStokesRotation().
void pos2true_latlon | ( | Numeric & | lat, |
Numeric & | lon, | ||
const Index & | atmosphere_dim, | ||
const ConstVectorView & | lat_grid, | ||
const ConstVectorView & | lat_true, | ||
const ConstVectorView & | lon_true, | ||
const ConstVectorView & | pos | ||
) |
Determines the true alt and lon for an "ARTS position".
The function disentangles if the geographical position shall be taken from lat_grid and lon_grid, or lat_true and lon_true.
[out] | lat | True latitude. |
[out] | lon | True longitude. |
[in] | atmosphere_dim | As the WSV. |
[in] | lat_grid | As the WSV. |
[in] | lat_true | As the WSV. |
[in] | lon_true | As the WSV. |
[in] | pos | A position, as defined for rt calculations. |
Definition at line 1914 of file rte.cc.
References ARTS_ASSERT, gridpos(), interp(), and interpweights().
Referenced by InterpGriddedField2ToPosition(), InterpSurfaceTypeMask(), surface_complex_refr_indexFromGriddedField5(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), surfaceTelsem(), and telsemSurfaceTypeLandSea().
void rtmethods_jacobian_finalisation | ( | Workspace & | ws, |
ArrayOfTensor3 & | diy_dx, | ||
ArrayOfTensor3 & | diy_dpath, | ||
const Index & | ns, | ||
const Index & | nf, | ||
const Index & | np, | ||
const Index & | atmosphere_dim, | ||
const Ppath & | ppath, | ||
const Vector & | ppvar_p, | ||
const Vector & | ppvar_t, | ||
const Matrix & | ppvar_vmr, | ||
const Index & | iy_agenda_call1, | ||
const Tensor3 & | iy_transmittance, | ||
const Agenda & | water_p_eq_agenda, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const ArrayOfIndex & | jac_species_i | ||
) |
This function fixes the last steps to made on the Jacobian in some radiative transfer WSMs.
The method applies iy_transmittance, maps from ppath to the retrieval grids and applies non-standard Jacobian units.
See iyEmissonStandard for usage example.
Definition at line 1948 of file rte.cc.
References ARTS_ASSERT, diy_from_path_to_rgrids(), FOR_ANALYTICAL_JACOBIANS_DO, mult(), Array< base >::nelem(), number_density(), and water_p_eq_agendaExecute().
Referenced by iyClearsky(), iyEmissionHybrid(), iyEmissionStandard(), iyRadarSingleScat(), and iyTransmissionStandard().
void rtmethods_unit_conversion | ( | Matrix & | iy, |
ArrayOfTensor3 & | diy_dx, | ||
Tensor3 & | ppvar_iy, | ||
const Index & | ns, | ||
const Index & | np, | ||
const Vector & | f_grid, | ||
const Ppath & | ppath, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const Index & | j_analytical_do, | ||
const String & | iy_unit | ||
) |
This function handles the unit conversion to be done at the end of some radiative transfer WSMs.
The method hanldes both iy and analytical parts of the Jacobian.
See iyEmissonStandard for usage example.
Definition at line 2086 of file rte.cc.
References apply_iy_unit(), apply_iy_unit2(), Ppath::end_lstep, FOR_ANALYTICAL_JACOBIANS_DO2, Ppath::np, and Ppath::nreal.
Referenced by iyClearsky(), iyEmissionHybrid(), and iyEmissionStandard().
void yCalc_mblock_loop_body | ( | bool & | failed, |
String & | fail_msg, | ||
ArrayOfArrayOfVector & | iyb_aux_array, | ||
Workspace & | ws, | ||
Vector & | y, | ||
Vector & | y_f, | ||
ArrayOfIndex & | y_pol, | ||
Matrix & | y_pos, | ||
Matrix & | y_los, | ||
Matrix & | y_geo, | ||
Matrix & | jacobian, | ||
const Index & | atmosphere_dim, | ||
const EnergyLevelMap & | nlte_field, | ||
const Index & | cloudbox_on, | ||
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const Matrix & | sensor_pos, | ||
const Matrix & | sensor_los, | ||
const Matrix & | transmitter_pos, | ||
const Matrix & | mblock_dlos, | ||
const Sparse & | sensor_response, | ||
const Vector & | sensor_response_f, | ||
const ArrayOfIndex & | sensor_response_pol, | ||
const Matrix & | sensor_response_dlos, | ||
const String & | iy_unit, | ||
const Agenda & | iy_main_agenda, | ||
const Agenda & | jacobian_agenda, | ||
const Index & | jacobian_do, | ||
const ArrayOfRetrievalQuantity & | jacobian_quantities, | ||
const ArrayOfArrayOfIndex & | jacobian_indices, | ||
const ArrayOfString & | iy_aux_vars, | ||
const Verbosity & | verbosity, | ||
const Index & | mblock_index, | ||
const Index & | n1y, | ||
const Index & | j_analytical_do | ||
) |
Performs calculations for one measurement block, on y-level.
The parameters mainly matches WSVs.
Definition at line 2128 of file rte.cc.
References ARTS_USER_ERROR_IF, FOR_ANALYTICAL_JACOBIANS_DO2, get_rowindex_for_mblock(), iyb_calc(), jacobian_agendaExecute(), and mult().
Referenced by yCalc().
void ze_cfac | ( | Vector & | fac, |
const Vector & | f_grid, | ||
const Numeric & | ze_tref, | ||
const Numeric & | k2 | ||
) |
Calculates factor to convert back-scattering to Ze.
The vector fac shall be sized to match f_grid, before calling the function.
If k2 <= 0, the K" factor is calculated. Otherwise the input k2 is applied as "hard-coded".
[out] | fac | Vector with factors. |
[in] | f_grid | As the WSV. |
[in] | z_tref | Reference temperature for conversion to Ze. |
[in] | k2 | Reference dielectric factor. |
Definition at line 2267 of file rte.cc.
References a, ARTS_ASSERT, complex_n_water_liebe93(), fac(), Constant::pi, Math::pow4(), and SPEED_OF_LIGHT.
Referenced by MCRadar(), RadarOnionPeelingTableCalc(), and yRadar().