ARTS 2.5.0 (git: 9ee3ac6c)
rte.h
Go to the documentation of this file.
1/* Copyright (C) 2002-2012
2 Patrick Eriksson <Patrick.Eriksson@chalmers.se>
3 Stefan Buehler <sbuehler@ltu.se>
4
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2, or (at your option) any
8 later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18 USA. */
19
20/*===========================================================================
21 === File description
22 ===========================================================================*/
23
32#ifndef rte_h
33#define rte_h
34
35/*===========================================================================
36 === External declarations
37 ===========================================================================*/
38
39#include "agenda_class.h"
40#include "arts.h"
41#include "auto_md.h"
42#include "jacobian.h"
43#include "matpackI.h"
44#include "matpackII.h"
45#include "matpackIII.h"
46#include "matpack_complex.h"
47#include "optproperties.h"
48#include "ppath.h"
49
50/*===========================================================================
51 === Functions in rte.cc
52 ===========================================================================*/
53
78 const ArrayOfRetrievalQuantity& jacobian_quantities,
79 const ConstVectorView& ppath_f_grid,
80 const ConstVectorView& ppath_line_of_sight,
81 const Index& lte,
82 const Index& atmosphere_dim,
83 const bool& jacobian_do);
84
101void adjust_los(VectorView los, const Index& atmosphere_dim);
102
120 const String& iy_unit,
121 const ConstVectorView& f_grid,
122 const Numeric& n,
123 const ArrayOfIndex& i_pol);
124
143 const ConstMatrixView& iy,
144 const String& iy_unit,
145 const ConstVectorView& f_grid,
146 const Numeric& n,
147 const ArrayOfIndex& i_pol);
148
168void bending_angle1d(Numeric& alpha, const Ppath& ppath);
169
203 Numeric& dlf,
204 const Agenda& ppath_step_agenda,
205 const Index& atmosphere_dim,
206 const ConstVectorView& p_grid,
207 const ConstVectorView& lat_grid,
208 const ConstVectorView& lon_grid,
209 const ConstTensor3View& z_field,
210 const ConstVectorView& f_grid,
211 const ConstVectorView& refellipsoid,
212 const ConstMatrixView& z_surface,
213 const Ppath& ppath,
214 const Numeric& ppath_lmax,
215 const Numeric& ppath_lraytrace,
216 const Numeric& dza,
217 const Verbosity& verbosity);
218
250 Numeric& dlf,
251 const Agenda& ppath_step_agenda,
252 const Index& atmosphere_dim,
253 const ConstVectorView& p_grid,
254 const ConstVectorView& lat_grid,
255 const ConstVectorView& lon_grid,
256 const ConstTensor3View& z_field,
257 const ConstVectorView& f_grid,
258 const ConstVectorView& refellipsoid,
259 const ConstMatrixView& z_surface,
260 const Ppath& ppath,
261 const Numeric& ppath_lmax,
262 const Numeric& ppath_lraytrace,
263 const Numeric& dza,
264 const Verbosity& verbosity);
265
287 const Numeric& u,
288 const Numeric& v,
289 const Numeric& w,
290 const Index& atmosphere_dim);
291
311void get_iy(Workspace& ws,
312 Matrix& iy,
313 const Index& cloudbox_on,
314 const ConstVectorView& f_grid,
315 const EnergyLevelMap& nlte_field,
316 const ConstVectorView& rte_pos,
317 const ConstVectorView& rte_los,
318 const ConstVectorView& rte_pos2,
319 const String& iy_unit,
320 const Agenda& iy_main_agenda);
321
353 Matrix& iy,
354 ArrayOfTensor3& diy_dx,
355 const ConstTensor3View& iy_transmittance,
356 const Index& iy_id,
357 const Index& jacobian_do,
358 const ArrayOfRetrievalQuantity& jacobian_quantities,
359 const Ppath& ppath,
360 const ConstVectorView& rte_pos2,
361 const Index& atmosphere_dim,
362 const EnergyLevelMap& nlte_field,
363 const Index& cloudbox_on,
364 const Index& stokes_dim,
365 const ConstVectorView& f_grid,
366 const String& iy_unit,
367 const ConstTensor3View& surface_props_data,
368 const Agenda& iy_main_agenda,
369 const Agenda& iy_space_agenda,
370 const Agenda& iy_surface_agenda,
371 const Agenda& iy_cloudbox_agenda,
372 const Index& iy_agenda_call1,
373 const Verbosity& verbosity);
374
403void get_ppath_atmvars(Vector& ppath_p,
404 Vector& ppath_t,
405 EnergyLevelMap& ppath_nlte,
406 Matrix& ppath_vmr,
407 Matrix& ppath_wind,
408 Matrix& ppath_mag,
409 const Ppath& ppath,
410 const Index& atmosphere_dim,
411 const ConstVectorView& p_grid,
412 const ConstTensor3View& t_field,
413 const EnergyLevelMap& nlte_field,
414 const ConstTensor4View& vmr_field,
415 const ConstTensor3View& wind_u_field,
416 const ConstTensor3View& wind_v_field,
417 const ConstTensor3View& wind_w_field,
418 const ConstTensor3View& mag_u_field,
419 const ConstTensor3View& mag_v_field,
420 const ConstTensor3View& mag_w_field);
421
437void get_ppath_cloudvars(ArrayOfIndex& clear2cloudy,
438 Matrix& ppath_pnd,
439 ArrayOfMatrix& ppath_dpnd_dx,
440 const Ppath& ppath,
441 const Index& atmosphere_dim,
442 const ArrayOfIndex& cloudbox_limits,
443 const Tensor4& pnd_field,
444 const ArrayOfTensor4& dpnd_field_dx);
445
460void get_ppath_f(Matrix& ppath_f,
461 const Ppath& ppath,
462 const ConstVectorView& f_grid,
463 const Index& atmosphere_dim,
464 const Numeric& rte_alonglos_v,
465 const ConstMatrixView& ppath_wind);
466
477Range get_rowindex_for_mblock(const Sparse& sensor_response,
478 const Index& imblock);
479
492 VectorView dB_dT,
493 const ConstVectorView& ppath_f_grid,
494 const Numeric& ppath_temperature,
495 const bool& do_temperature_derivative);
496
522 Workspace& ws,
524 StokesVector& S,
525 Index& lte,
527 ArrayOfStokesVector& dS_dx,
528 const Agenda& propmat_clearsky_agenda,
529 const ArrayOfRetrievalQuantity& jacobian_quantities,
530 const ConstVectorView& ppath_f_grid,
531 const ConstVectorView& ppath_magnetic_field,
532 const ConstVectorView& ppath_line_of_sight,
533 const EnergyLevelMap& ppath_nlte,
534 const ConstVectorView& ppath_vmrs,
535 const Numeric& ppath_temperature,
536 const Numeric& ppath_pressure,
537 const bool& jacobian_do);
538
570 MatrixView J,
571 Tensor3View dJ_dx,
572 const PropagationMatrix& K,
573 const StokesVector& a,
574 const StokesVector& S,
575 const ArrayOfPropagationMatrix& dK_dx,
576 const ArrayOfStokesVector& da_dx,
577 const ArrayOfStokesVector& dS_dx,
578 const ConstVectorView& B,
579 const ConstVectorView& dB_dT,
580 const ArrayOfRetrievalQuantity& jacobian_quantities,
581 const bool& jacobian_do);
582
598 const ConstVectorView& f_grid,
599 const ConstVectorView& ppath_wind,
600 const ConstVectorView& ppath_line_of_sight,
601 const Numeric& rte_alonglos_v,
602 const Index& atmosphere_dim);
603
616Vector get_stepwise_f_partials(const ConstVectorView& ppath_line_of_sight,
617 const ConstVectorView& f_grid,
618 const Jacobian::Atm wind_type,
619 const Index& atmosphere_dim);
620
639 StokesVector& ap,
641 ArrayOfStokesVector& dap_dx,
643 const ArrayOfRetrievalQuantity& jacobian_quantities,
644 const ConstMatrixView& ppath_1p_pnd, // the ppath_pnd at this ppath point
645 const ArrayOfMatrix&
646 ppath_dpnd_dx, // the full ppath_dpnd_dx, ie all ppath points
647 const Index ppath_1p_id,
648 const ArrayOfArrayOfSingleScatteringData& scat_data,
649 const ConstVectorView& ppath_line_of_sight,
650 const ConstVectorView& ppath_temperature,
651 const Index& atmosphere_dim,
652 const bool& jacobian_do);
653
667 StokesVector& Sp,
668 ArrayOfStokesVector& dSp_dx,
669 const ArrayOfRetrievalQuantity& jacobian_quantities,
670 const ConstVectorView& ppath_1p_pnd,
671 const ArrayOfMatrix& ppath_dpnd_dx,
672 const Index ppath_1p_id,
673 const ArrayOfArrayOfSingleScatteringData& scat_data,
674 const ConstTensor7View& cloudbox_field,
675 const ConstVectorView& za_grid,
676 const ConstVectorView& aa_grid,
677 const ConstMatrixView& ppath_line_of_sight,
678 const GridPos& ppath_pressure,
679 const Vector& temperature,
680 const Index& atmosphere_dim,
681 const bool& jacobian_do,
682 const Index& t_interp_order = 1);
683
708 Tensor3View T,
709 Tensor4View dT_dx_close,
710 Tensor4View dT_dx_far,
711 const ConstTensor3View& cumulative_transmission_close,
712 const PropagationMatrix& K_close,
713 const PropagationMatrix& K_far,
714 const ArrayOfPropagationMatrix& dK_close_dx,
715 const ArrayOfPropagationMatrix& dK_far_dx,
716 const Numeric& ppath_distance,
717 const bool& first_level,
718 const Numeric& dr_dT_close = 0,
719 const Numeric& dr_dT_far = 0,
720 const Index& it = -1);
721
728void iyb_calc(Workspace& ws,
729 Vector& iyb,
730 ArrayOfVector& iyb_aux,
731 ArrayOfMatrix& diyb_dx,
732 Matrix& geo_pos_matrix,
733 const Index& imblock,
734 const Index& atmosphere_dim,
735 const EnergyLevelMap& nlte_field,
736 const Index& cloudbox_on,
737 const Index& stokes_dim,
738 const ConstVectorView& f_grid,
739 const ConstMatrixView& sensor_pos,
740 const ConstMatrixView& sensor_los,
741 const ConstMatrixView& transmitter_pos,
742 const ConstMatrixView& mblock_dlos_grid,
743 const String& iy_unit,
744 const Agenda& iy_main_agenda,
745 const Agenda& geo_pos_agenda,
746 const Index& j_analytical_do,
747 const ArrayOfRetrievalQuantity& jacobian_quantities,
748 const ArrayOfArrayOfIndex& jacobian_indices,
749 const ArrayOfString& iy_aux_vars,
750 const Verbosity& verbosity);
751
775void iy_transmittance_mult(Tensor3& iy_trans_total,
776 const ConstTensor3View& iy_trans_old,
777 const ConstTensor3View& iy_trans_new);
778
797void iy_transmittance_mult(Matrix& iy_new,
798 const ConstTensor3View& iy_trans,
799 const ConstMatrixView& iy_old);
800
816void mirror_los(Vector& los_mirrored,
817 const ConstVectorView& los,
818 const Index& atmosphere_dim);
819
836void pos2true_latlon(Numeric& lat,
837 Numeric& lon,
838 const Index& atmosphere_dim,
839 const ConstVectorView& lat_grid,
840 const ConstVectorView& lat_true,
841 const ConstVectorView& lon_true,
842 const ConstVectorView& pos);
843
854 Workspace& ws,
855 ArrayOfTensor3& diy_dx,
856 ArrayOfTensor3& diy_dpath,
857 const Index& ns,
858 const Index& nf,
859 const Index& np,
860 const Index& atmosphere_dim,
861 const Ppath& ppath,
862 const Vector& ppvar_p,
863 const Vector& ppvar_t,
864 const Matrix& ppvar_vmr,
865 const Index& iy_agenda_call1,
866 const Tensor3& iy_transmittance,
867 const Agenda& water_p_eq_agenda,
868 const ArrayOfRetrievalQuantity& jacobian_quantities,
869 const ArrayOfIndex& jac_species_i);
870
882 Matrix& iy,
883 ArrayOfTensor3& diy_dx,
884 Tensor3& ppvar_iy,
885 const Index& ns,
886 const Index& np,
887 const Vector& f_grid,
888 const Ppath& ppath,
889 const ArrayOfRetrievalQuantity& jacobian_quantities,
890 const Index& j_analytical_do,
891 const String& iy_unit);
892
897void yCalc_mblock_loop_body(bool& failed,
898 String& fail_msg,
899 ArrayOfArrayOfVector& iyb_aux_array,
900 Workspace& ws,
901 Vector& y,
902 Vector& y_f,
903 ArrayOfIndex& y_pol,
904 Matrix& y_pos,
905 Matrix& y_los,
906 Matrix& y_geo,
907 Matrix& jacobian,
908 const Index& atmosphere_dim,
909 const EnergyLevelMap& nlte_field,
910 const Index& cloudbox_on,
911 const Index& stokes_dim,
912 const Vector& f_grid,
913 const Matrix& sensor_pos,
914 const Matrix& sensor_los,
915 const Matrix& transmitter_pos,
916 const Matrix& mblock_dlos_grid,
917 const Sparse& sensor_response,
918 const Vector& sensor_response_f,
919 const ArrayOfIndex& sensor_response_pol,
920 const Matrix& sensor_response_dlos,
921 const String& iy_unit,
922 const Agenda& iy_main_agenda,
923 const Agenda& geo_pos_agenda,
924 const Agenda& jacobian_agenda,
925 const Index& jacobian_do,
926 const ArrayOfRetrievalQuantity& jacobian_quantities,
927 const ArrayOfArrayOfIndex& jacobian_indices,
928 const ArrayOfString& iy_aux_vars,
929 const Verbosity& verbosity,
930 const Index& mblock_index,
931 const Index& n1y,
932 const Index& j_analytical_do);
933
950void ze_cfac(Vector& fac,
951 const Vector& f_grid,
952 const Numeric& ze_tref,
953 const Numeric& k2);
954
955#endif // rte_h
Declarations for agendas.
The global header file for ARTS.
The Agenda class.
Definition: agenda_class.h:44
This can be used to make arrays out of anything.
Definition: array.h:107
A constant view of a Matrix.
Definition: matpackI.h:1014
A constant view of a Tensor3.
Definition: matpackIII.h:132
A constant view of a Tensor4.
Definition: matpackIV.h:133
A constant view of a Tensor7.
Definition: matpackVII.h:147
A constant view of a Vector.
Definition: matpackI.h:489
The MatrixView class.
Definition: matpackI.h:1125
The Matrix class.
Definition: matpackI.h:1225
The range class.
Definition: matpackI.h:165
The Sparse class.
Definition: matpackII.h:67
Stokes vector is as Propagation matrix but only has 4 possible values.
The Tensor3View class.
Definition: matpackIII.h:239
The Tensor3 class.
Definition: matpackIII.h:339
The Tensor4View class.
Definition: matpackIV.h:284
The Tensor4 class.
Definition: matpackIV.h:421
The VectorView class.
Definition: matpackI.h:626
The Vector class.
Definition: matpackI.h:876
Workspace class.
Definition: workspace_ng.h:40
Routines for setting up the jacobian.
#define ns
Numeric fac(const Index n)
fac
Definition: math_funcs.cc:63
Header file for sparse matrices.
Implementation of Matrix, Vector, and such stuff.
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Scattering database structure and functions.
Propagation path structure and functions.
#define u
#define v
#define w
#define a
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.
Definition: rte.cc:1316
void ze_cfac(Vector &fac, const Vector &f_grid, const Numeric &ze_tref, const Numeric &k2)
Calculates factor to convert back-scattering to Ze.
Definition: rte.cc:2389
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 ConstVectorView &ppath_f_grid, const ConstVectorView &ppath_magnetic_field, const ConstVectorView &ppath_line_of_sight, const EnergyLevelMap &ppath_nlte, const ConstVectorView &ppath_vmrs, const Numeric &ppath_temperature, const Numeric &ppath_pressure, const bool &jacobian_do)
Gets the clearsky propgation matrix and NLTE contributions.
Definition: rte.cc:1131
void get_iy_of_background(Workspace &ws, Matrix &iy, ArrayOfTensor3 &diy_dx, const ConstTensor3View &iy_transmittance, const Index &iy_id, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const Ppath &ppath, const ConstVectorView &rte_pos2, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, const ConstVectorView &f_grid, const String &iy_unit, const ConstTensor3View &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.
Definition: rte.cc:728
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.
Definition: rte.cc:843
void get_stepwise_frequency_grid(VectorView ppath_f_grid, const ConstVectorView &f_grid, const ConstVectorView &ppath_wind, const ConstVectorView &ppath_line_of_sight, const Numeric &rte_alonglos_v, const Index &atmosphere_dim)
Inverse of get_stepwise_f_partials.
Definition: rte.cc:1262
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".
Definition: rte.cc:2034
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.
Definition: rte.cc:668
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.
Definition: rte.cc:179
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_grid, 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 &geo_pos_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.
Definition: rte.cc:2248
void iy_transmittance_mult(Tensor3 &iy_trans_total, const ConstTensor3View &iy_trans_old, const ConstTensor3View &iy_trans_new)
Multiplicates iy_transmittance with transmissions.
Definition: rte.cc:1973
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 ...
Definition: rte.cc:106
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 ConstVectorView &f_grid, const ConstMatrixView &sensor_pos, const ConstMatrixView &sensor_los, const ConstMatrixView &transmitter_pos, const ConstMatrixView &mblock_dlos_grid, const String &iy_unit, const Agenda &iy_main_agenda, const Agenda &geo_pos_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.
Definition: rte.cc:1773
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.
Definition: rte.cc:83
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.
Definition: rte.cc:1601
void defocusing_general(Workspace &ws, Numeric &dlf, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, const ConstVectorView &p_grid, const ConstVectorView &lat_grid, const ConstVectorView &lon_grid, const ConstTensor3View &z_field, const ConstVectorView &f_grid, const ConstVectorView &refellipsoid, const ConstMatrixView &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)
Definition: rte.cc:433
void defocusing_sat2sat(Workspace &ws, Numeric &dlf, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, const ConstVectorView &p_grid, const ConstVectorView &lat_grid, const ConstVectorView &lon_grid, const ConstTensor3View &z_field, const ConstVectorView &f_grid, const ConstVectorView &refellipsoid, const ConstMatrixView &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.
Definition: rte.cc:552
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.
Definition: rte.cc:1066
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.
Definition: rte.cc:1433
void get_iy(Workspace &ws, Matrix &iy, const Index &cloudbox_on, const ConstVectorView &f_grid, const EnergyLevelMap &nlte_field, const ConstVectorView &rte_pos, const ConstVectorView &rte_los, const ConstVectorView &rte_pos2, const String &iy_unit, const Agenda &iy_main_agenda)
Basic call of iy_main_agenda.
Definition: rte.cc:689
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.
Definition: rte.cc:2206
void bending_angle1d(Numeric &alpha, const Ppath &ppath)
Calculates the bending angle for a 1D atmosphere.
Definition: rte.cc:266
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 co...
Definition: rte.cc:1282
void get_stepwise_effective_source(MatrixView J, Tensor3View dJ_dx, const PropagationMatrix &K, const StokesVector &a, const StokesVector &S, const ArrayOfPropagationMatrix &dK_dx, const ArrayOfStokesVector &da_dx, const ArrayOfStokesVector &dS_dx, const ConstVectorView &B, const ConstVectorView &dB_dT, const ArrayOfRetrievalQuantity &jacobian_quantities, const bool &jacobian_do)
Gets the effective source at propagation path point.
Definition: rte.cc:1168
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.
Definition: rte.cc:2068
void mirror_los(Vector &los_mirrored, const ConstVectorView &los, const Index &atmosphere_dim)
Determines the backward direction for a given line-of-sight.
Definition: rte.cc:2010
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.
Definition: rte.cc:55
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.
Definition: rte.cc:1116
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.
Definition: rte.cc:962
Range get_rowindex_for_mblock(const Sparse &sensor_response, const Index &imblock)
Returns the "range" of y corresponding to a measurement block.
Definition: rte.cc:1110
Structure to store a grid position.
Definition: interpolation.h:73
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:48
ArrayOfTransmissionMatrix cumulative_transmission(const ArrayOfTransmissionMatrix &T, const CumulativeTransmission type)
Accumulate the transmission matrix over all layers.