ARTS  2.3.1285(git:92a29ea9-dirty)
workspace.cc
Go to the documentation of this file.
1 /* Copyright (C) 2000-2012
2  Stefan Buehler <sbuehler@ltu.se>
3  Patrick Eriksson <patrick.eriksson@chalmers.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 
32 #include "workspace_ng.h"
33 
34 // Some #defines to make the records better readable:
35 #define NAME(x) x
36 #define DESCRIPTION(x) x
37 #define GROUP(x) x
38 
40  //--------------------< Build the wsv data >--------------------
41  // Initialize to empty, just in case.
42  wsv_data.resize(0);
43 
44  /* Templace record entry:
45 
46  wsv_data.push_back
47  (WsvRecord
48  ( NAME( "workspace_variable_name" ),
49  DESCRIPTION
50  (
51  "Brief description of the variable (1 line).\n"
52  "\n"
53  "Detailed description of the variable. Don't be too short here,\n"
54  "this is the main place where your documentation should be. I\n"
55  "really recommend to edit this in a text buffer, so that you can\n"
56  "do some re-formatting until it looks nice. Only at the end put it\n"
57  "in quotes and add the line breaks.\n"
58  "\n"
59  "Use blank lines to separate paragraphs. There really should be a\n"
60  "detailed descriptions of all component of your variable, if it\n"
61  "has a complicated type. Also some detailed discussion of the\n"
62  "dimensions if necessary. Also some detailed discussion of the\n"
63  "members if your variable is a structure.\n"
64  "\n"
65  "Usage: Set by user (or "Method output.")\n"
66  "\n"
67  "Units: E.g., kg/m\n"
68  "\n"
69  "Dimensions: [ first dimension, second dimension, ... ]\n"
70  "or\n"
71  "Size: [ .., nrows, ncols ]\n"
72  "\n"
73  "Members: Here you would list the members if your\n"
74  " variable is a structure.\n"
75  "\n"
76  "Dimensions: [x, y]\n"
77  "\n"
78  "Unit: Which unit this variable uses\n"
79  "\n"
80  "Give the keywords above only if they apply, i.e., Members only\n"
81  "for a structure, Units only for a physical variable.\n"
82  "Use either Dimensions or Size, depending on what is most appropiate\n"
83  "for the variable.\n"
84  ),
85  GROUP( "VariableType" )));
86 
87 */
88 
89  /*----------------------------------------------------------------------
90  Let's put in the variables in alphabetical order. This gives a clear
91  rule for where to place a new variable and this gives a nicer
92  results when the methods are listed by "arts -w all". No
93  distinction is made between uppercase and lowercase letters. The
94  sign "_" comes after all letters.
95  Patrick Eriksson 2002-05-08
96  ----------------------------------------------------------------------*/
97 
98  wsv_data.push_back(WsvRecord(
99  NAME("aa_grid"),
100  DESCRIPTION(
101  "Azimuthal angle grid.\n"
102  "\n"
103  "The azimutal angle grid, on which the intensity field is stored. \n"
104  "This grid is used for RT calculations inside the cloudbox, \n"
105  "therefore one has to define it if the cloudbox is activated by \n"
106  "the flag *cloudbox_on*.\n"
107  "The grid must be sorted in increasing order, with no repetitions.\n"
108  "\n"
109  "Usage: Set by the user.\n"
110  "\n"
111  "Unit: degrees \n"),
112  GROUP("Vector")));
113 
114  wsv_data.push_back(WsvRecord(
115  NAME("aa_index"),
116  DESCRIPTION(
117  "Azimuth angle index for scattering calculations.\n"
118  "\n"
119  "This variable is used in methods used for computing scattering\n"
120  "properties. \n"
121  "It holds the information about the azimuth angles for which the \n"
122  "scattering calculations are done. The angles used for computing \n"
123  "scattering properties of particles can be different from that used \n"
124  "for radiative transfer calculation. \n"
125  "\n"
126  "Usage: Method output.\n"),
127  GROUP("Index")));
128 
129  wsv_data.push_back(WsvRecord(
130  NAME("abs_cia_data"),
131  DESCRIPTION(
132  "HITRAN Collision Induced Absorption (CIA) Data.\n"
133  "\n"
134  "This variable holds HITRAN CIA data (binary absorption\n"
135  "cross-sections). The data itself is described in: Richard, C. et al.\n"
136  "(2012), New section of the HITRAN database: Collision-induced\n"
137  "absorption (CIA), J. Quant. Spectrosc. Radiat. Transfer, 113,\n"
138  "1276-1285, doi:10.1016/j.jqsrt.2011.11.004.\n"
139  " \n"
140  "The binary absorption cross-sections have to be multiplied with the\n"
141  "densities of both molecules to get absorption coefficients.\n"
142  "\n"
143  "Dimensions:\n"
144  "\n"
145  "The outer array dimension in the ArrayOfArrayOfCIARecord is the same\n"
146  "as that of *abs_species*. There will be CIA data only for those\n"
147  "species that contain a CIA tag, for all other species it will be\n"
148  "empty. The inner array dimension corresponds to the number of CIA tags\n"
149  "for this species (there could be for example both N2-N2 and N2-H2) in\n"
150  "the same species.\n"
151  "\n"
152  "The CIA *abs_species* tags are described in *abs_speciesSet*.\n"
153  "\n"
154  "Each individual CIARecord holds the complete information from one\n"
155  "HITRAN CIA file. For the given pair of molecules A HITRAN CIA data\n"
156  "file can hold several datasets (data for different temperatures but\n"
157  "fixed frequency range).\n"
158  "\n"
159  "Units: \n"
160  "Frequencies: Hz\n"
161  "Binary absorption cross-sections: m^5*molecule^-2\n"),
162  GROUP("ArrayOfCIARecord")));
163 
164  wsv_data.push_back(WsvRecord(
165  NAME("abs_coef"),
166  DESCRIPTION(
167  "The matrix of total scalar absorption coefficients.\n"
168  "\n"
169  "Contains the gas absorption summed over all species as a function of\n"
170  "*f_grid* and *abs_p*, i.e., for a single atmospheric profile.\n"
171  "\n"
172  "This variable is not used explicitly in a standard calculation, where\n"
173  "absorption comes from the lookup table *abs_lookup*. However, it is\n"
174  "useful for testing the methods that actually calculate line-by-line\n"
175  "absorption, which have this variable as output. These methods are\n"
176  "called internally by the method *abs_lookupCalc*, which generates\n"
177  "the lookup table.\n"
178  "\n"
179  "Dimensions: [f_grid, abs_p]\n"
180  "\n"
181  "Unit: 1/m\n"),
182  GROUP("Matrix")));
183 
184  wsv_data.push_back(WsvRecord(
185  NAME("abs_coef_per_species"),
186  DESCRIPTION(
187  "Scalar absorption coefficients individually per tag group.\n"
188  "\n"
189  "The Array contains one matrix of absorption coefficients for each\n"
190  "tag group, where the matrix format is the same as that of *abs_coef*\n"),
191  GROUP("ArrayOfMatrix")));
192 
193  wsv_data.push_back(WsvRecord(
194  NAME("abs_cont_models"),
195  DESCRIPTION(
196  "Continuum / full model absorption model description parameter.\n"
197  "\n"
198  "See the WSV `abs_cont_names' for a detailed description\n"
199  "of the allowed continuum models. There should be one string here\n"
200  "for each entry in `abs_cont_names'.See also the online\n"
201  "documentation in arts/doc/doxygen/html/continua_cc.html.\n"),
202  GROUP("ArrayOfString")));
203 
204  wsv_data.push_back(WsvRecord(
205  NAME("abs_cont_names"),
206  DESCRIPTION(
207  "Continuum / full model absorption tag names.\n"
208  "\n"
209  "This variable should contain a list of tag names\n"
210  "of continuum and full models, respectively.\n"
211  "Associated with this WSV is the WSV\n"
212  "`abs_cont_models' which contains the specific model version of\n"
213  "each continuum / full model absorption tag and the WSV\n"
214  "`abs_cont_parameters' which should contain the continuum / full model\n"
215  "user defined parameters. The user defined parameters are only used when\n"
216  "the specified model is 'user'. See also the online documentation in\n"
217  "arts/doc/doxygen/html/continua_cc.html.\n"
218  "\n"
219  "The following full water vapor models are implemented:\n"
220  "'H2O-MPM87': absorption model (line and continuum) according to \n"
221  " H. J. Liebe,\n"
222  " A contribution to modeling atmospheric millimeter-wave properties,\n"
223  " Frequenz, 41, 1987, 31-36\n"
224  " and\n"
225  " H. J. Liebe and D. H. Layton,\n"
226  " Millimeter-wave properties of the atmosphere:\n"
227  " Laboratory studies and propagation modeling,\n"
228  " U.S. Dept. of Commerce, National Telecommunications and Information\n"
229  " Administration, Institute for Communication Sciences,\n"
230  " 325 Broadway, Boulder, CO 80303-3328, report 87224.\n"
231  "'H2O-MPM89': absorption model (line and continuum) according to \n"
232  " H. J. Liebe,\n Int. J. Infrared and Millimeter Waves, 10(6), 1989, 631\n"
233  "'H2O-MPM93': absorption model (line and continuum) according to \n"
234  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
235  " Propagation modeling of moist air and suspended water/ice\n"
236  " particles at frequencies below 1000 GHz,\n"
237  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
238  " Propagation Panel,\n Palma de Mallorca, Spain, 1993, May 17-21 \n"
239  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
240  "'H2O-CP98': absorption model (line and continuum) according to \n"
241  " S. L. Cruz-Pol et al.,\n Radio Science, 33(5), 1319, 1998"
242  " (ece.uprm.edu/~pol/Atmosphere.html)\n"
243  "'H2O-PWR98': absorption model (line and continuum) according to \n"
244  " P. W. Rosenkranz,\n "
245  " Radio Science, 33(4), 919, 1998, Radio Science, 34(4), 1025, 1999\n"
246  " (ftp: mesa.mit.edu/phil/lbl_rt).\n"
247  "\n"
248  "The following full oxygen models are implemented:\n"
249  "'O2-MPM93': absorption model (line and continuum) according to\n"
250  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
251  " Propagation modeling of moist air and suspended water/ice\n"
252  " particles at frequencies below 1000 GHz,\n"
253  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
254  " Propagation Panel,\n Palma de Mallorca, Spain, 1993, May 17-21\n"
255  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
256  "'O2-PWR93': absorption model (line and continuum) according to \n"
257  " P. W. Rosenkranz,\n Chapter 2, in M. A. Janssen, \n"
258  " Atmospheric Remote Sensing by Microwave Radiometry\n"
259  " John Wiley & Sons, Inc., 1993 (mesa.mit.edu/phil/lbl_rt)\n"
260  "\n"
261  "The following continuum parameterizations are implemented:\n"
262  "H2O-H2O ('H2O-SelfContStandardType'):\n"
263  " P. W. Rosenkranz, \n"
264  " Radio Science, Vol. 33, No 4, Pages 919-928, 1998 and \n"
265  " Radio Science, Vol. 34, No 4, Page 1025, 1999 (mesa.mit.edu/phil/lbl_rt)\n"
266  "H2O-air ('H2O-ForeignContStandardType'): \n"
267  " P. W. Rosenkranz, \n"
268  " Radio Science, Vol. 33, No 4, Pages 919-928, 1998 and \n"
269  " Radio Science, Vol. 34, No 4, Page 1025, 1999 (mesa.mit.edu/phil/lbl_rt)\n"
270  "H2O-air ('H2O-ContMPM93'): \n"
271  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
272  " Propagation modeling of moist air and suspended water/ice\n"
273  " particles at frequencies below 1000 GHz,\n"
274  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
275  " Propagation Panel,\n Palma de Mallorca, Spain, 1993, May 17-21\n"
276  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
277  "O2-air ('O2-SelfContStandardType'):\n"
278  " P. W. Rosenkranz,\n"
279  " Chapter 2, in M. A. Janssen,\n"
280  " Atmospheric Remote Sensing by Microwave Radiometry,\n"
281  " John Wiley & Sons, Inc., 1993\n"
282  " (mesa.mit.edu/phil/lbl_rt)\n"
283  " and also described in \n"
284  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
285  " Propagation modeling of moist air and suspended water/ice\n"
286  " particles at frequencies below 1000 GHz,\n"
287  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
288  " Propagation Panel,\n Palma de Mallorca, Spain, 1993, May 17-21\n"
289  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
290  "N2-N2 ('N2-SelfContStandardType'):\n"
291  " The functional form of Rosenkranz but with more input parameters.\n"
292  " P. W. Rosenkranz,\n"
293  " Chapter 2, in M. A. Janssen,\n"
294  " Atmospheric Remote Sensing by Microwave Radiometry,\n"
295  " John Wiley & Sons, Inc., 1993 (mesa.mit.edu/phil/lbl_rt)\n"
296  "N2-N2 ('N2-SelfContMPM93'):\n"
297  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
298  " Propagation modeling of moist air and suspended water/ice\n"
299  " particles at frequencies below 1000 GHz,\n"
300  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
301  " Propagation Panel, Palma de Mallorca, Spain, 1993, May 17-21 \n"
302  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
303  "CO2-CO2 ('CO2-SelfContPWR93'):\n"
304  " P. W. Rosenkranz,\n"
305  " Chapter 2, in M. A. Janssen,\n"
306  " Atmospheric Remote Sensing by Microwave Radiometry,\n"
307  " John Wiley & Sons, Inc., 1993 (mesa.mit.edu/phil/lbl_rt)\n"
308  "CO2-N2 ('CO2-ForeignContPWR93'):\n"
309  " P. W. Rosenkranz,\n"
310  " Chapter 2, in M. A. Janssen,\n"
311  " Atmospheric Remote Sensing by Microwave Radiometry,\n"
312  " John Wiley & Sons, Inc., 1993 (mesa.mit.edu/phil/lbl_rt)\n"
313  "\n"
314  "The following cloud absorption models are implemented:\n"
315  "Suspended water droplet ('liquidcloud-MPM93') \n"
316  " absorption parameterization from the MPM93 model:\n"
317  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
318  " Propagation modeling of moist air and suspended water/ice\n"
319  " particles at frequencies below 1000 GHz,\n"
320  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
321  " Propagation Panel,\n Palma de Mallorca, Spain, 1993, May 17-21\n"
322  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
323  "Ice water droplet absorption ('icecloud-MPM93') \n"
324  " parameterization from MPM93 model:\n"
325  " H. J. Liebe and G. A. Hufford and M. G. Cotton,\n"
326  " Propagation modeling of moist air and suspended water/ice\n"
327  " particles at frequencies below 1000 GHz,\n"
328  " AGARD 52nd Specialists Meeting of the Electromagnetic Wave\n"
329  " Propagation Panel,\n Palma de Mallorca, Spain, 1993, May 17-21\n"
330  " (ftp.its.bldrdoc.gov/pub/mpm93/)\n"
331  "\n"
332  "The following rain extinction model is implemented:\n"
333  "Rain extinction parameterization ('rain-MPM93') from the\n"
334  " MPM93 model, described in:\n"
335  " H. J. Liebe,\n"
336  " MPM - An Atmospheric Millimeter-Wave Propagation Model,\n"
337  " Int. J. Infrared and Millimeter Waves, vol. 10(6),\n"
338  " pp. 631-650, 1989;\n"
339  " and based on:\n"
340  " Olsen, R.L., D.V. Rogers, and D. B. Hodge,\n"
341  " The aR^b relation in the calculation of rain attenuation,\n"
342  " IEEE Trans. Antennas Propagat., vol. AP-26, pp. 318-329, 1978.\n"
343  " IMPORTANT NOTE: rain-MPM93 parameterizes the EXTINCTION by rain,\n"
344  " not just the absorption. Therefore it is not suitable for \n"
345  " calculating thermal emission by rain!\n"
346  " Please use rain-MPM93 only for calculation of attenuation.\n"),
347  GROUP("ArrayOfString")));
348 
349  wsv_data.push_back(WsvRecord(
350  NAME("abs_cont_parameters"),
351  DESCRIPTION(
352  "Continuum model parameters. See the WSV *abs_cont_names*\n"
353  "\n"
354  "for a detailed description of the allowed continuum models. There\n"
355  "should be one parameter vector here for each entry in\n"
356  "*abs_cont_names*. See also the online documentation in\n"
357  "arts/doc/doxygen/html/continua_cc.html.\n"),
358  GROUP("ArrayOfVector")));
359 
360  wsv_data.push_back(WsvRecord(
361  NAME("abs_f_interp_order"),
362  DESCRIPTION(
363  "Frequency interpolation order for absorption lookup table.\n"
364  "\n"
365  "The interpolation order to use when interpolating the absorption\n"
366  "lookup table in frequency. This is in particular needed for\n"
367  "calculations with Doppler shift, so that absorption is interpolated to\n"
368  "the shifted frequency grid. One is linear interpolation, two\n"
369  "quadratic, and so on.\n"
370  "\n"
371  "As a special case, order 0 in this particular case means no\n"
372  "interpolation. In that case f_grid must match exactly the grid inside\n"
373  "the lookup table. This is the global default value, set in\n"
374  "general.arts.\n"),
375  GROUP("Index")));
376 
377 
378  wsv_data.push_back(WsvRecord(
379  NAME("abs_hitran_relmat_data"),
380  DESCRIPTION(
381  "HITRAN line mixing data to compute the relaxation matrix.\n"
382  "\n"
383  "This variable holds HITRAN line mixing data\n"
384  "as per J. Lamouroux, L. Realia, X. Thomas, et al., J.Q.S.R.T. 151 (2015), 88-96\n"),
385  GROUP("HitranRelaxationMatrixData")));
386 
387  wsv_data.push_back(WsvRecord(NAME("abs_lines"),
388  DESCRIPTION("A list of spectral line data.\n"),
389  GROUP("ArrayOfAbsorptionLines")));
390 
391  wsv_data.push_back(WsvRecord(
392  NAME("abs_lines_per_species"),
393  DESCRIPTION(
394  "A list of spectral line data for each tag.\n"
395  "\n"
396  "Dimensions: [*abs_species*.nelem()][Depends on how many bands there are in *abs_lines*]\n"),
397  GROUP("ArrayOfArrayOfAbsorptionLines")));
398 
399  wsv_data.push_back(WsvRecord(
400  NAME("abs_lookup"),
401  DESCRIPTION(
402  "An absorption lookup table.\n"
403  "\n"
404  "It holds an absorption lookup table, as well as all information that\n"
405  "is necessary to use the table to extract absorption. Extraction\n"
406  "routines are implemented as member functions. \n"
407  "\n"
408  "It has quite a complicated structure. For details see the Arts User\n"
409  "Guide section \"The gas absorption lookup table\" or the source code\n"
410  "documentation in gas_abs_lookup.h.\n"),
411  GROUP("GasAbsLookup")));
412 
413  wsv_data.push_back(WsvRecord(
414  NAME("abs_nls"),
415  DESCRIPTION(
416  "Nonlinear species for absorption lookup table generation.\n"
417  "\n"
418  "A list of absorption species that should be treated non-linearly.\n"
419  "This means that the H2O VMR should be varied when calculating the\n"
420  "lookup table for those species.\n"
421  "\n"
422  "A typical example is for this to containt the Rosenkranz full\n"
423  "absorption model species for water vapor and oxygen \n"
424  "([\"H2O-PWR98\", \"O2-PWR93\"]).\n"
425  "\n"
426  "See user guide and online documentation of *abs_lookupCalc*\n"
427  "for more details and usage examples.\n"),
428  GROUP("ArrayOfArrayOfSpeciesTag")));
429 
430  wsv_data.push_back(WsvRecord(
431  NAME("abs_nls_pert"),
432  DESCRIPTION(
433  "Fractional perturbations for the nonlinear species in the absorption\n"
434  "lookup table.\n"
435  "\n"
436  "This is a vector of fractional perturbations that should contain 1\n"
437  "(the unperturbed reference profile). A value of 0 may lead to error\n"
438  "messages from some absorption routines, so a possible content for this\n"
439  "variable is: [1e-24, 1, 2].\n"
440  "(This is similar to *abs_t_pert*, but multiplicative, not additive.)\n"),
441  GROUP("Vector")));
442 
443  wsv_data.push_back(WsvRecord(
444  NAME("abs_nls_interp_order"),
445  DESCRIPTION(
446  "The interpolation order to use when interpolating absorption between\n"
447  "the H2O values given by *abs_nls_pert*.\n"
448  "\n"
449  "This is used by methods extracting absorption coefficients\n"
450  "from the lookup table, and by methods setting up\n"
451  "parameters for lookup table generation. Has a\n"
452  "default value, which is set in general.arts.\n"
453  "\n"
454  "Note that the number of points used in the interpolation scheme is\n"
455  "interpolation order + 1 (e.g., two for first order interpolation).\n"),
456  GROUP("Index")));
457 
458  wsv_data.push_back(WsvRecord(
459  NAME("abs_p_interp_order"),
460  DESCRIPTION(
461  "The interpolation order to use when interpolating absorption\n"
462  "between pressure levels.\n"
463  "\n"
464  "This is used by methods extracting absorption coefficients\n"
465  "from the lookup table, and by methods\n"
466  "setting up parameters for lookup table generation. Has a\n"
467  "default value, which is set in general.arts.\n"
468  "\n"
469  "Note that the number of points used in the interpolation scheme is\n"
470  "interpolation order + 1 (e.g., two for first order interpolation).\n"),
471  GROUP("Index")));
472 
473  wsv_data.push_back(WsvRecord(
474  NAME("abs_t_pert"),
475  DESCRIPTION(
476  "Temperature perturbations for the absorption lookup table.\n"
477  "\n"
478  "This is a vector containing temperature perturbations (in Kelvin) that\n"
479  "should be added to the reference temperature profile. (Similar to\n"
480  "*abs_nls_pert*, but additive, not multiplicative.) Should normally\n"
481  "contain 0, to include the reference profile itself. Example content:\n"
482  "[-5, 0, 5].\n"),
483  GROUP("Vector")));
484 
485  wsv_data.push_back(WsvRecord(
486  NAME("abs_t_interp_order"),
487  DESCRIPTION(
488  "The interpolation order to use when interpolating absorption between\n"
489  "the temperature values given by *abs_t_pert*.\n"
490  "\n"
491  "This is used by methods\n"
492  "extracting absorption coefficients from the lookup table, and by\n"
493  "methods setting up parameters for lookup table generation. Has a\n"
494  "default value, which is set in general.arts.\n"
495  "\n"
496  "Note that the number of points used in the interpolation scheme is\n"
497  "interpolation order + 1 (e.g., two for first order interpolation).\n"),
498  GROUP("Index")));
499 
500  wsv_data.push_back(WsvRecord(
501  NAME("abs_lookup_is_adapted"),
502  DESCRIPTION(
503  "Flag to indicate whether *abs_lookupAdapt* has already been\n"
504  "called.\n"
505  "\n"
506  "Values: 0=false, 1=true.\n"),
507  GROUP("Index")));
508 
509  wsv_data.push_back(WsvRecord(
510  NAME("abs_p"),
511  DESCRIPTION(
512  "List of pressures to be used for the calculation of absorption\n"
513  "coefficients.\n"
514  "\n"
515  "This can be copied from the global *p_grid*, but could also be\n"
516  "different.\n"
517  "\n"
518  "Any absorption method should check that the length of this vector\n"
519  "is the same as that of *abs_t*\n"
520  "\n"
521  "Dimension: [p_grid]\n"
522  "\n"
523  "Unit: Pa\n"),
524  GROUP("Vector")));
525 
526  wsv_data.push_back(WsvRecord(
527  NAME("abs_species"),
528  DESCRIPTION(
529  "Tag groups for gas absorption.\n"
530  "\n"
531  "This is an array of arrays of SpeciesTag tag definitions. It defines the\n"
532  "available tag groups for the calculation of scalar gas absorption\n"
533  "coefficients. See online documentation of method *abs_speciesSet* for\n"
534  "more detailed information how tag groups work and some examples.\n"),
535  GROUP("ArrayOfArrayOfSpeciesTag")));
536 
537  wsv_data.push_back(WsvRecord(
538  NAME("abs_species_active"),
539  DESCRIPTION(
540  "Indices of active absorption species.\n"
541  "\n"
542  "This variable selects, which absorption species are active in\n"
543  "*abs_xsec_agenda*.\n"
544  "\n"
545  "Dimension: A vector with one element for every active species, at max\n"
546  " same number of elements as abs_species.\n"),
547  GROUP("ArrayOfIndex")));
548 
549  wsv_data.push_back(WsvRecord(
550  NAME("abs_t"),
551  DESCRIPTION(
552  "List of temperatures to be used for the calculation of absorption\n"
553  "coefficients.\n"
554  "\n"
555  "In contrast to the global *t_field*, this is just a vector. Any\n"
556  "absorption method should check that the length of this vector is the\n"
557  "same as that of *abs_p*\n"
558  "\n"
559  "Dimension: [p_grid]\n"
560  "\n"
561  "Unit: K\n"),
562  GROUP("Vector")));
563 
564  wsv_data.push_back(WsvRecord(
565  NAME("abs_nlte"),
566  DESCRIPTION(
567  "NLTE temperatures or ratios to be used for the calculation of\n"
568  "absorption coefficients.\n"
569  "\n"
570  "In contrast to the global *nlte_field*, this is just a matrix. Any\n"
571  "absorption method should check that the columns of this vector is the\n"
572  "same as that of *abs_p*\n"
573  "\n"
574  "Dimension: [nltes, 1, 1, p_grid] or [ 0, 0, 0, 0 ]\n"
575  "\n"
576  "Unit: K\n"),
577  GROUP("EnergyLevelMap")));
578 
579  wsv_data.push_back(WsvRecord(
580  NAME("abs_vec"),
581  DESCRIPTION(
582  "Total absorption vector.\n"
583  "\n"
584  "This variable contains the absorption coefficient vector which\n"
585  "is used in the RTE calculation. It is the physical absorption which\n"
586  "includes particle absorption for all considered scattering elements as\n"
587  "well as gaseous absorption for all selected gaseous species.\n"
588  "The vector is calculated by *opt_prop_bulkCalc*\n"
589  "The dimension of the variable adapts to *stokes_dim*.\n"
590  "\n"
591  "See ARTS user guide (AUG) for further information. Use the index to find\n"
592  "where this variable is discussed. The variable is listed as a subentry\n"
593  "to \"workspace variables\".\n"
594  "\n"
595  "Usage: Output of *opt_prop_bulkCalc* \n"
596  "\n"
597  "Unit: m^2\n" //FIXME: really m2? not 1/m?
598  "\n"
599  "Dimensions: [f_grid, stokes_dim]\n"),
600  GROUP("StokesVector")));
601 
602  wsv_data.push_back(WsvRecord(
603  NAME("abs_vec_spt"),
604  DESCRIPTION(
605  "Absorption vectors of the scattering elements.\n"
606  "\n"
607  "This variable contains the elements of the absorption vector of the\n"
608  "individual scattering elements. It is calculated in the agenda \n"
609  "*spt_calc_agenda*.\n"
610  "\n"
611  "See ARTS user guide (AUG) for further information.\n"
612  "\n"
613  "Usage: Input and Output of the method abs_vec_sptCalc\n"
614  "\n"
615  "Unit: m^2\n" //FIXME: really m2? not 1/m?
616  "\n"
617  "Dimensions: [number of scattering elements, stokes_dim]\n"),
618  GROUP("ArrayOfStokesVector")));
619 
620  wsv_data.push_back(WsvRecord(
621  NAME("abs_vmrs"),
622  DESCRIPTION("The VMRs (unit: absolute number) on the abs_p grid.\n"
623  "\n"
624  "Dimensions: [tag_groups.nelem(), abs_p.nelem()]\n"),
625  GROUP("Matrix")));
626 
627  wsv_data.push_back(
628  WsvRecord(NAME("abs_xsec_agenda_checked"),
629  DESCRIPTION("OK-flag for *abs_xsec_agenda*.\n"
630  "\n"
631  "Set by *abs_xsec_agenda_checkedCalc*.\n"),
632  GROUP("Index")));
633 
634  wsv_data.push_back(WsvRecord(
635  NAME("abs_xsec_agenda"),
636  DESCRIPTION(
637  "Agenda to calculate scalar gas absorption cross sections.\n"),
638  GROUP("Agenda")));
639 
640  wsv_data.push_back(WsvRecord(
641  NAME("abs_xsec_per_species"),
642  DESCRIPTION(
643  "Absorption cross sections for the attenuation.\n"
644  "\n"
645  "This variable contains absorption cross section xsec individually for\n"
646  "each tag group. The Array contains one matrix for each tag group, the\n"
647  "matrix format is the same as that of abs_coef.\n"
648  "\n"
649  "Dimensions: [abs_species](f_grid, abs_p)\n"
650  "\n"
651  "Unit: m^2 (alpha = xsec * n * VMR),\n"
652  " where n is total density.\n"),
653  GROUP("ArrayOfMatrix")));
654 
655  wsv_data.push_back(WsvRecord(
656  NAME("agenda_array_index"),
657  DESCRIPTION(
658  "Index of the current agenda in *ArrayOfAgenda*.\n"
659  "\n"
660  "This is set during the execution of an agenda from an *ArrayOfAgenda*.\n"
661  "It indicates the index of the current agenda inside the array.\n"
662  "\n"
663  "Unit: Integer value.\n"),
664  GROUP("Index")));
665 
666  wsv_data.push_back(WsvRecord(
667  NAME("antenna_dim"),
668  DESCRIPTION(
669  "The dimensionality of the antenna pattern (1-2).\n"
670  "\n"
671  "A dimensionality of 1 means that only the respons variation in the\n"
672  "zenith direction is considered. The provided respons shall then be the\n"
673  "integrated in the azimuth direction. For 2D, the respons of the\n"
674  "antenna has both a zenith and azimuth variation.\n"
675  "\n"
676  "Usage: Set by the user.\n"
677  "\n"
678  "Unit: Integer value [1-2].\n"),
679  GROUP("Index")));
680 
681  wsv_data.push_back(WsvRecord(
682  NAME("antenna_dlos"),
683  DESCRIPTION(
684  "The relative line-of-sight of each antenna pattern.\n"
685  "\n"
686  "This variable describes the line-of-sight of the individual antennae\n"
687  "relative to *sensor_los*. If each measurement block corresponds to\n"
688  "a single antenna pattern, the normal choice is to set the angle(s) of\n"
689  "this variable to zero.\n"
690  "\n"
691  "The first column holds the relative zenith angle. This column is\n"
692  "mandatory for all atmospheric dimensionalities. For 3D, there can\n"
693  "also be a second column, giving relative azimuth angles. If this\n"
694  "column is not present (for 3D) zero azimuth off-sets are assumed.\n"
695  "\n"
696  "See further the ARTS user guide (AUG). Use the index to find where\n"
697  "this variable is discussed. The variable is listed as a subentry to\n"
698  "\"workspace variables\".\n"
699  "\n"
700  "Usage: Set by the user.\n"
701  "\n"
702  "Unit: [ degrees, degrees ]\n"
703  "\n"
704  "Size: [ number of antennae, 1 or 2 ]\n"),
705  GROUP("Matrix")));
706 
707  wsv_data.push_back(WsvRecord(
708  NAME("antenna_response"),
709  DESCRIPTION(
710  "The antenna pattern/response.\n"
711  "\n"
712  "This WSV describes the antenna response as a function of polarisation\n"
713  "(pol), frequencue (f), zenith angle (za) and azimuth angle (aa).\n"
714  "\n"
715  "Polarisation dimension: If this dimension has size 1, the data are\n"
716  "applied for all polarisations of concern. The data are otherwise used\n"
717  "in sequential order. This signifies that, in general, the first\n"
718  "polarisation \"layer\" corresponds to the first stokes dimension\n"
719  "etc. An exception is if a polarisation rotation has been applied. In\n"
720  "any case, it is up to the user to ensure that polarisations are\n"
721  "consistently defined.\n"
722  "\n"
723  "Frequency dimension: If this dimension has size 1, the data are\n"
724  "applied for all frequencies of concern. The given frequency must be\n"
725  "inside the frequency range of concern. A linear interpolation is\n"
726  "otherwise applied.\n"
727  "\n"
728  "Zenith angle dimension: This dimension must always have a size >= 2\n"
729  "The response outside covered grid range is treated as zero. If\n"
730  "*antenna_dim* equals 1, the data should correspond to the response\n"
731  "integrated in the azimuthal direction.\n"
732  "\n"
733  "Azimuth angle dimension: If *antenna_dim* equals 1, this dimension\n"
734  "must have size 1. A size >= 2 is otherwise required. The response\n"
735  "outside covered grid range is treated as zero.\n"
736  "\n"
737  "Usage: Set by the user.\n"
738  "\n"
739  "Dimensions: \n"
740  " GriddedField4:\n"
741  " ArrayOfString field_names[N_pol]\n"
742  " Vector f_grid[N_f]\n"
743  " Vector za_grid[N_za]\n"
744  " Vector aa_grid[N_aa]\n"
745  " Tensor4 data[N_pol][N_f][N_za][N_aa]\n"),
746  GROUP("GriddedField4")));
747 
748  wsv_data.push_back(WsvRecord(
749  NAME("atmosphere_dim"),
750  DESCRIPTION(
751  "The atmospheric dimensionality (1-3).\n"
752  "\n"
753  "This variable defines the complexity of the atmospheric structure.\n"
754  "The dimensionality is given by an integer between 1 and 3, where 1\n"
755  "means 1D etc. This is the master variable for the atmospheric\n"
756  "dimensionality, variables which size changes with the dimensionality\n"
757  "are checked to match this variable. \n"
758  "\n"
759  "Methods adapt automatically to this variable. That is, it should\n"
760  "not be needed to change any methods if the dimensionality is\n"
761  "changed. However, not all methods are working for higher dimensions.\n"
762  "\n"
763  "Usage: Set by the user.\n"
764  "\n"
765  "Unit: Integer value.\n"),
766  GROUP("Index")));
767 
768  wsv_data.push_back(WsvRecord(
769  NAME("atmfields_checked"),
770  DESCRIPTION(
771  "OK-flag for atmospheric grids and (physical) fields.\n"
772  "\n"
773  "The variable flags that clear-sky part of the atmosphere is\n"
774  "defined in formally correct way. Example on problems captured\n"
775  "include that the size of an atmospheric fields does not match the\n"
776  "length of the atmospheric grids, and physically incorrect data such\n"
777  "as negative temperatures.\n"
778  "\n"
779  "Note that *z_field* is not covered by this variable, it is instead\n"
780  "treated to be part of the geometrical considerations where the ok-flag\n"
781  "is denoted as *atmgeom_checked*. The cloudbox is covered by\n"
782  "*cloudbox_checked*.\n"
783  "\n"
784  "Shall be set by *atmfields_checkedCalc*. See that WSMs for treated\n"
785  "WSVs. Only the value 1 is taken as OK.\n"),
786  GROUP("Index")));
787 
788  wsv_data.push_back(WsvRecord(
789  NAME("atmgeom_checked"),
790  DESCRIPTION(
791  "OK-flag for the geometry of the model atmosphere.\n"
792  "\n"
793  "The variable flags that reference ellipsoid, the surface and *z_field*\n"
794  "contain formally correct values. Includes for example, that *z_field*\n"
795  "holds strictly increasing values at each geographical position.\n"
796  "\n"
797  "See also *atmfields_checked*.\n"
798  "\n"
799  "Shall be set by *atmgeom_checkedCalc*. Only the value 1 is taken\n"
800  "as OK.\n"),
801  GROUP("Index")));
802 
803  wsv_data.push_back(WsvRecord(
804  NAME("atm_fields_compact"),
805  DESCRIPTION(
806  "A compact set of atmospheric fields on a common set of grids.\n"
807  "\n"
808  "Data is supposed to contain basic atmsopheric fields for a RT\n"
809  "calculation, i.e., temperature, altitude, and gas VMRs. It can\n"
810  "furthermore contain fields describing scattering species like mass\n"
811  "content, mass flux, number density of diverse scattering species.\n"
812  "\n"
813  "VMR fields are unitless, scattering species fields are supposed to be\n"
814  "in SI units (i.e. kg/m3 for mass contents, kg/m2/s for mass flux,\n"
815  "1/m3 for number densities).\n"
816  "\n"
817  "The data are stored in a *GriddedField4*.\n"
818  "\n"
819  "The first field in the matrix (i.e., first matrix column) has to be\n"
820  "atmospheric pressure. Apart from this, the order of the fields is\n"
821  "free. Field content (apart from pressure) is identified by their\n"
822  "given field name tag. Furthermore, absorption species (e.g. VMR)\n"
823  "fields and scattering species fields are related to *abs_species*\n"
824  "and *scat_species* entries, respectively, by their field name tags.\n"
825  "The tags must exhibit the following structure:\n"
826  "\n"
827  "0) species identifier:\n"
828  " Fields, supposed to be sorted into *vmr_field*, must be headed the\n"
829  " tag 'abs_species'. Names of scattering species fields likewise must\n"
830  " be headed by the 'scat_species' tag. Temperature and altitude\n"
831  " fields do not hold any heading tag.\n"
832  "1) species name:\n"
833  " The (core) name of the field: 'T' for temperature, 'z' for\n"
834  " altitude, the absorption species name (e.g. 'H2O, 'O3', etc.) for\n"
835  " absorption species, the scattering species name (e.g. 'IWC') for\n"
836  " scattering species. For scattering species, this part is matched\n"
837  " against the scattering species name part of the *scat_species*\n"
838  " tags.\n"
839  "2) field type:\n"
840  " This has to be given for scattering species only, indicating the\n"
841  " type of the scattering species fields, i.e. 'mass_density',\n"
842  " 'mass_flux', 'number_density', 'mean_mass'.\n"
843  "Dashes ('-') serve as delimiter, separating the elements of each\n"
844  "field name tag.\n"
845  "\n"
846  "Usage: Used inside batch calculations, to hold successive atmospheric\n"
847  " states from an *ArrayOfGriddedField4*.\n"
848  "\n"
849  "Dimensions: \n"
850  " GriddedField4:\n"
851  " ArrayOfString field_names[N_fields]\n"
852  " Vector p_grid[N_p]\n"
853  " Vector lat_grid[N_lat]\n"
854  " Vector lon_grid[N_lon]\n"
855  " Tensor4 data[N_fields][N_p][N_lat][N_lon]\n"),
856  GROUP("GriddedField4")));
857 
858  wsv_data.push_back(WsvRecord(
859  NAME("avk"),
860  DESCRIPTION(
861  "Averaging kernel matrix.\n"
862  "\n"
863  "This matrix is the partial derivative of the retrieved state vector\n"
864  "with respect to the measurement vector (*y*).\n"
865  "\n"
866  "Usage: Used and set by inversion methods. \n"),
867  GROUP("Matrix")));
868 
869  wsv_data.push_back(WsvRecord(
870  NAME("backend_channel_response"),
871  DESCRIPTION(
872  "The response of each backend channel.\n"
873  "\n"
874  "The response is given as an *ArrayOfGriddedField1*. The grid consists of\n"
875  "relative frequencies. These relative frequencies are added to \n"
876  "*f_backend* to obtain the absolute frequency for each response value.\n"
877  "The actual data are the response at each frequency grid point.\n"
878  "\n"
879  "There are here two options. If the array has length 1, the same\n"
880  "response is applied for all channels. Accordingly, this assumes that\n"
881  "all channels have the same response function. The second option is to\n"
882  "specify the response for each channel seperately. This signifies that\n"
883  "the *backend_channel_response* array has either 1 or n elements, where\n"
884  "n is the length of *f_backend*\n"
885  "\n"
886  "Usage: Set by the user.\n"
887  "\n"
888  "Size: Array[N_ch]\n"
889  " GriddedField1 \n "
890  " [N_f] \n"
891  " [N_f] \n"),
892  GROUP("ArrayOfGriddedField1")));
893 
894  wsv_data.push_back(WsvRecord(
895  NAME("backend_channel_response_multi"),
896  DESCRIPTION(
897  "As *backend_channel_response* but describes an instrument with\n"
898  "muliple mixer/receiver chains.\n"
899  "\n"
900  "See *f_backend_multi* for when to use this variable and size\n"
901  "constraints.\n"
902  "\n"
903  "Usage: Set by the user.\n "),
904  GROUP("ArrayOfArrayOfGriddedField1")));
905 
906  wsv_data.push_back(WsvRecord(
907  NAME("batch_atm_fields_compact"),
908  DESCRIPTION(
909  "An array of compact atmospheric states.\n"
910  "\n"
911  "This is used to hold a set of *atm_fields_compact* for batch\n"
912  "calculations. For further information see *atm_fields_compact*.\n"),
913  GROUP("ArrayOfGriddedField4")));
914 
915  wsv_data.push_back(WsvRecord(
916  NAME("band_identifiers"),
917  DESCRIPTION(
918  "An array of identifiers for bands.\n"
919  "\n"
920  "Used by line mixing calculations to identify which bands to match to the\n"
921  "line database.\n"),
922  GROUP("ArrayOfQuantumIdentifier")));
923 
924  wsv_data.push_back(WsvRecord(
925  NAME("batch_cloudbox_limits"),
926  DESCRIPTION("An array of *cloudbox_limits*.\n"
927  "\n"
928  "This is used to hold a set of *cloudbox_limits* for batch\n"
929  "calculations. \n"),
930  GROUP("ArrayOfArrayOfIndex")));
931 
932  wsv_data.push_back(WsvRecord(
933  NAME("batch_pnd_fields"),
934  DESCRIPTION("An array of compact pnd states.\n"
935  "\n"
936  "This is used to hold a set of 1D *pnd_field* for batch\n"
937  "calculations. \n"),
938  GROUP("ArrayOfTensor4")));
939 
940  wsv_data.push_back(WsvRecord(
941  NAME("channel2fgrid_indexes"),
942  DESCRIPTION(
943  "Definition of backend frequency response, link to *f_grid*.\n"
944  "\n"
945  "The WSV is used to describe the frequency response of backend channels\n"
946  "together with the accompanying WSV *channel2fgrid_weights*.\n"
947  "\n"
948  "This WSV links each channel to the elements of *f_grid*. In short it\n"
949  "lists what elements of *f_grid* that are relevant for each channel.\n"
950  "\n"
951  "More precisely, the first dimension gives the number of output channels.\n"
952  "Each ArrayOfIndex gives the index of the values in *f_grid* associated\n"
953  "with the channel of concern. For a pure double-sideband receiver, where\n"
954  "there is one monochromatic frequency per passband, this argument could\n"
955  "look like: [[0,5],[1,4],[2,3],[7,8],[7,8]].\n"),
956  GROUP("ArrayOfArrayOfIndex")));
957 
958  wsv_data.push_back(WsvRecord(
959  NAME("channel2fgrid_weights"),
960  DESCRIPTION(
961  "Definition of backend frequency response, weighting of *f_grid*.\n"
962  "\n"
963  "The WSV is used to describe the frequency response of backend channels\n"
964  "together with the accompanying WSV *channel2fgrid_indexes*.\n"
965  "\n"
966  "This WSV shall have excatly the same sizes as *channel2fgrid_indexes*.\n"
967  "Each element gives the weight to be assigned to the associated\n"
968  "monochromatic frequency. \n"),
969  GROUP("ArrayOfVector")));
970 
971  wsv_data.push_back(WsvRecord(
972  NAME("cloudbox_checked"),
973  DESCRIPTION(
974  "OK-flag for variables associated with the cloudbox.\n"
975  "\n"
976  "This variable flags that cloudbox variables are defined in a formally\n"
977  "and practically correct way. For example, that there is sufficient\n"
978  "space between the cloudbox and edges of the model atmosphere (for\n"
979  "2D and 3D). Pure clear-sky variables are covered by\n"
980  "*atmfields_checked* (and *atmgeom_checked*).\n"
981  "\n"
982  "Relevant checks are performed by *cloudbox_checkedCalc. Only the\n"
983  "value 1 is taken as OK.\n"),
984  GROUP("Index")));
985 
986  wsv_data.push_back(WsvRecord(
987  NAME("cloudbox_field"),
988  DESCRIPTION(
989  "The spectral radiance field inside the cloudbx.\n"
990  "\n"
991  "This variable is used to store the radiance field inside the cloud\n"
992  "box, probably determined by a scattering solver method.\n"
993  "\n"
994  "That is, this variable matches *spectral_radiance_field* but holds\n"
995  "a field that is restricted to the cloud box.\n"
996  "\n"
997  "Unit: W / (m^2 Hz sr) for each Stokes component.\n"
998  "\n"
999  " Size: [f_grid,\n"
1000  " p_grid, \n"
1001  " lat_grid, \n"
1002  " lon_grid, \n"
1003  " za_grid,\n"
1004  " aa_grid,\n"
1005  " stokes_dim ]\n"
1006  "\n"
1007  "Note: For 1D, the size of the latitude, longitude and azimuth\n"
1008  "dimension (N_aa) are all 1.\n"),
1009  GROUP("Tensor7")));
1010 
1011  wsv_data.push_back(WsvRecord(
1012  NAME("cloudbox_field_mono"),
1013  DESCRIPTION(
1014  "Monochromatic radiation field inside the cloudbox.\n"
1015  "\n"
1016  "This variable is used to store the monochromatic radiation field \n"
1017  "inside the cloudbox which is found by an iterative solution (DOIT).\n"
1018  "Refer to AUG for further information.\n"
1019  "\n"
1020  "Usage: Method output. \n"
1021  "\n"
1022  "Unit: W / (m^2 Hz sr) for each Stokes component.\n"
1023  "\n"
1024  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
1025  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
1026  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"
1027  " N_za, N_aa, N_i ]\n"
1028  "\n"
1029  "Note: For 1D, the size of the azimuth angle dimension (N_aa) is\n"
1030  "always 1.\n"),
1031  GROUP("Tensor6")));
1032 
1033  wsv_data.push_back(WsvRecord(
1034  NAME("cloudbox_field_mono_old"),
1035  DESCRIPTION(
1036  "As *cloudbox_field_mono* but from previous iteration.\n"
1037  "\n"
1038  "This variable is used to store the intensity field inside the\n"
1039  "cloudbox while performing the iteration. One has to store the\n"
1040  "intensity field of the previous iteration to be able to do the \n"
1041  "convergence test after each iteration.\n"
1042  "Refer to AUG for more information.\n"
1043  "\n"
1044  "Usage: Method output. \n"
1045  "\n"
1046  "Unit: W / (m^2 Hz sr) for each Stokes component.\n"
1047  "\n"
1048  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
1049  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
1050  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"
1051  " N_za, N_aa, N_i ]\n"),
1052  GROUP("Tensor6")));
1053 
1054  wsv_data.push_back(WsvRecord(
1055  NAME("cloudbox_limits"),
1056  DESCRIPTION(
1057  "The limits of the cloud box.\n"
1058  "\n"
1059  "This variable defines the extension of the cloud box. The cloud box \n"
1060  "is defined to be rectangular in the used coordinate system, with \n"
1061  "limits exactly at points of the involved grids. This means, for \n"
1062  "example, that the vertical limits of the cloud box are two pressure \n"
1063  "levels. For 2D, the angular extension of the cloud box is between \n"
1064  "two points of the latitude grid, and likewise for 3D but then also \n"
1065  "with a longitude extension between two grid points. The latitude and\n"
1066  "longitude limits for the cloud box cannot be placed at the end \n"
1067  "points of the corresponding grid as it must be possible to calculate\n"
1068  "the incoming intensity field.\n"
1069  "\n"
1070  "The variable *cloudbox_limits* is an array of index value with\n"
1071  "length twice *atmosphere_dim*. For each dimension there is a lower \n"
1072  "limit and an upper limit. The order of the dimensions is as usual \n"
1073  "pressure, latitude and longitude. The upper limit index must be \n"
1074  "greater then the lower limit index. For example, \n"
1075  "*cloudbox_limits* = [0 5 4 11 4 11] means that cloud box extends\n"
1076  "between pressure levels 0 and 5, and latitude and longitude points 4\n"
1077  "and 11.\n"
1078  "\n"
1079  "If *cloudbox_on* = 0, the content of this variable is neglected, but\n"
1080  "it must be initiated to some dummy values.\n"
1081  "\n"
1082  "See further the ARTS user guide (AUG). Use the index to find where\n"
1083  "this variable is discussed. The variable is listed as a subentry to\n"
1084  "\"workspace variables\".\n"
1085  "\n"
1086  "Usage: Set by the user, either directly or using a method\n"
1087  " checking the extension of scattering particles.\n"
1088  "\n"
1089  "Unit: Index values.\n"
1090  "\n"
1091  "Size: [ 2 * atmosphere_dim ]\n"),
1092  GROUP("ArrayOfIndex")));
1093 
1094  wsv_data.push_back(WsvRecord(
1095  NAME("cloudbox_on"),
1096  DESCRIPTION(
1097  "Flag to activate the cloud box.\n"
1098  "\n"
1099  "Scattering calculations are confined to a part of the atmosphere\n"
1100  "denoted as the cloud box. The extension of the cloud box is given by\n"
1101  "*cloudbox_limits*. This variable tells methods if a cloud box is\n"
1102  "activated or not. \n"
1103  "\n"
1104  "See further the ARTS user guide (AUG). Use the index to find where\n"
1105  "this variable is discussed. The variable is listed as a subentry to\n"
1106  "\"workspace variables\".\n"
1107  "\n"
1108  "Usage: Set by the user.\n"
1109  "\n"
1110  "Unit: Boolean.\n"),
1111  GROUP("Index")));
1112 
1113  wsv_data.push_back(WsvRecord(
1114  NAME("complex_refr_index"),
1115  DESCRIPTION(
1116  "Complex refractive index (n) data.\n"
1117  "\n"
1118  "The variable works as a lookup-table of complex refractive index.\n"
1119  "The matter type (water, ice ...) is unspecified, it is up to the\n"
1120  "user to fill the variable with data for the expected matter.\n"
1121  "This variable type can be used to describe n of both the surface and\n"
1122  "atmospheric particles. For the surface, a dedicated variable exists:\n"
1123  "*surface_complex_refr_index*.\n"
1124  "\n"
1125  "The column dimension has always size 2, where the first and second\n"
1126  "column holds the real and imaginary part of n, respectively. The row\n"
1127  "dimension matches temperature, and the page dimension is frequency.\n"
1128  "Both the temperature and frequency dimensions grids are allowed to\n"
1129  "have length 1, which is interpreted as n being constant in that\n"
1130  "dimension.\n"
1131  "\n"
1132  "When mapping these data to the required frequencies and temperatures\n"
1133  "a bi-linear interpolation is applied.\n"
1134  "\n"
1135  "Unit: -\n"
1136  "\n"
1137  "Dimensions: \n"
1138  " Vector f_grid[N_f]\n"
1139  " Vector T_grid[N_T]\n"
1140  " ArrayOfString Complex[2]\n"
1141  " Tensor3 data[N_f][N_T][2]\n"),
1142  GROUP("GriddedField3")));
1143 
1144  wsv_data.push_back(WsvRecord(
1145  NAME("counts"),
1146  DESCRIPTION(
1147  "Holds a list of counts, any counts.\n"),
1148  GROUP("ArrayOfIndex")));
1149 
1150  wsv_data.push_back(WsvRecord(
1151  NAME("covmat_block"),
1152  DESCRIPTION(
1153  "Holds matrices used to set blocks in *covmat_sx* and *covmat_se*.\n"
1154  "\n"
1155  "The matrix contained in this block will be added to the blocks in\n"
1156  "in *covmat_sx* and *covmat_se* by the corresponding WSMs. Its dimensions\n"
1157  "must agree with gridpoints of the correlated retrieval quantities."
1158  "\n"
1159  "Usage: Used by the retrievalAdd functions.\n"),
1160  GROUP("Sparse")));
1161 
1162  wsv_data.push_back(WsvRecord(
1163  NAME("covmat_inv_block"),
1164  DESCRIPTION(
1165  "Holds matrices used to set the inverse blocks in *covmat_sx* and *covmat_se*.\n"
1166  "\n"
1167  "The matrix contained in this block will be used as the inverse of the matrix\n"
1168  "contained in covmat_block.\n"
1169  "\n"
1170  "Usage: Used by the retrievalAdd functions.\n"),
1171  GROUP("Sparse")));
1172 
1173  wsv_data.push_back(WsvRecord(
1174  NAME("covmat_se"),
1175  DESCRIPTION(
1176  "Covariance matrix for observation uncertainties.\n"
1177  "\n"
1178  "This matrix (Se) describes the uncertainty of the measurement vector (*y*),\n"
1179  "and can be writtenn as\n"
1180  " Se = Seps + Kb * Sb * Kb',\n"
1181  "where Seps describes direct measurement errors (such as thermal noise),\n"
1182  "Kb is Jacobian for forward model parameters, and Sb describes the uncertainty\n"
1183  "of the forwatrd model parameters.\n"
1184  "\n"
1185  "Usage: Used by inversion methods.\n"
1186  "\n"
1187  "Dimensions: \n"
1188  " [ y, y ]\n"),
1189  GROUP("CovarianceMatrix")));
1190 
1191  wsv_data.push_back(WsvRecord(
1192  NAME("covmat_sepsbatch"),
1193  DESCRIPTION(
1194  "Covariance matrix for measurement uncertainties\n"
1195  "\n"
1196  "Dimensions: \n"
1197  " [*ybatch*.nelem()][ *ybatch*[i], *ybatch*[i] ]\n"),
1198  GROUP("ArrayOfMatrix")));
1199 
1200  wsv_data.push_back(WsvRecord(
1201  NAME("covmat_sx"),
1202  DESCRIPTION(
1203  "Covariance matrix of a priori distribution\n"
1204  "\n"
1205  "This covariance matrix describes the Gaussian a priori distribution\n"
1206  "for an OEM retrieval. It is represented using a symmetric block matrix.\n"
1207  "covmat_sx can be used in two ways: Either with a block for each retrieval\n"
1208  "quantity or with a single block containing the full covariance matrix.\n"
1209  "\n"
1210  "Using a single block for each retrieval quantity has is advantageous for\n"
1211  "if the retrieval quantities are assumed to be independent. In this case,\n"
1212  "the covariance blocks can be added separately for each quantity and will\n"
1213  "allow optimizing matrix multiplications and inverses required for the OEM\n"
1214  "calculation.\n"
1215  "\n"
1216  "The other case of using a single-block covariance matrix is supported\n"
1217  "for convenience as well.\n"
1218  "\n"
1219  "Usage: Used by inversion methods.\n"
1220  "\n"
1221  "Dimensions: \n"
1222  " [ x, x ]\n"),
1223  GROUP("CovarianceMatrix")));
1224 
1225  wsv_data.push_back(WsvRecord(
1226  NAME("covmat_so"),
1227  DESCRIPTION(
1228  "Covariance matrix describing the retrieval error due to uncertainties of\n"
1229  "the observation system.\n"
1230  "\n"
1231  "That is: So = G * Se * G', where G is the gain matrix (*dxdy*).\n"
1232  "\n"
1233  "Usage: Set by the covmat_soCalc workspace method to characterize the error.\n"
1234  "of a successful OEM calculation.\n"
1235  "\n"
1236  "Dimensions:\n"
1237  " [x,x]\n"),
1238  GROUP("Matrix")));
1239 
1240  wsv_data.push_back(WsvRecord(
1241  NAME("covmat_ss"),
1242  DESCRIPTION(
1243  "Covariance matrix describing the retrieval error due to smoothing.\n"
1244  "\n"
1245  "That is: Ss = (A-I) * Sx * (A-I)', where A is the averaging kernel "
1246  "matrix (*avk*).\n"
1247  "\n"
1248  "Usage: Set by the covmat_ssCalc workspace method to characterize the.\n"
1249  "errors of a successful OEM calculation."
1250  "\n"
1251  "Dimensions:\n"
1252  " [x,x]\n"),
1253  GROUP("Matrix")));
1254 
1255  wsv_data.push_back(WsvRecord(
1256  NAME("dabs_coef_dx"),
1257  DESCRIPTION(
1258  "The partial derivatives of the matrix of total scalar absorption\n"
1259  "coefficients.\n"
1260  "\n"
1261  "Contains the derivative of the gas absorption summed over all\n"
1262  "species as a function of *f_grid* and *abs_p*, i.e., for a single\n"
1263  "atmospheric profile for some parameter.\n"
1264  "\n"
1265  "This variable is not used explicitly in a standard calculation, where\n"
1266  "absorption comes from the lookup table *abs_lookup*. However, it is\n"
1267  "useful for testing the methods that actually calculate line-by-line\n"
1268  "absorption, which have this variable as output. These methods are\n"
1269  "called internally by the method *abs_lookupCalc*, which generates\n"
1270  "the lookup table.\n"
1271  "\n"
1272  "Dimensions: [n_quantities][f_grid, abs_p]\n"
1273  "\n"
1274  "Unit: 1/m/quantity\n"),
1275  GROUP("ArrayOfMatrix")));
1276 
1277  wsv_data.push_back(WsvRecord(
1278  NAME("dabs_xsec_per_species_dx"),
1279  DESCRIPTION(
1280  "Derivative of *abs_xsec_per_species* with respect to retrieval\n"
1281  "quantities.\n"
1282  "\n"
1283  "The variable gives the derivative of *abs_xsec_per_species* with\n"
1284  "respect to some variables (but not all jacobian variables). Handled\n"
1285  "are only variables that are involved in xsec and cannot be\n"
1286  "calculated at transmission level\n"
1287  "\n"
1288  "Usage: Output of *abs_xsec_agenda*.\n"
1289  "\n"
1290  "Dimensions: \n"
1291  " [*abs_species*][n_quantities][*f_grid*, *abs_p* ]\n"),
1292  GROUP("ArrayOfArrayOfMatrix")));
1293 
1294  wsv_data.push_back(WsvRecord(
1295  NAME("dobatch_calc_agenda"),
1296  DESCRIPTION(
1297  "Agenda defining the calculations to perform for each batch case.\n"),
1298  GROUP("Agenda")));
1299 
1300  wsv_data.push_back(WsvRecord(
1301  NAME("dobatch_cloudbox_field"),
1302  DESCRIPTION(
1303  "Batch of radiation fields.\n"
1304  "\n"
1305  "Each element of *dobatch_cloudbox_field* corresponds to a radiation field.\n"
1306  "See further *DOBatchCalc*.\n"
1307  "\n"
1308  "Usage: Most commonly produced by *DOBatchCalc*.\n"
1309  "\n"
1310  "Unit: See *cloudbox_field*.\n"
1311  "\n"
1312  "Dimensions: Number of array elements equals number of batch cases.\n"),
1313  GROUP("ArrayOfTensor7")));
1314 
1315  wsv_data.push_back(WsvRecord(
1316  NAME("dobatch_radiance_field"),
1317  DESCRIPTION(
1318  "Batch of radiance fields.\n"
1319  "\n"
1320  "Each element of *dobatch_radiance_field* corresponds to a radiance field.\n"
1321  "See further *DOBatchCalc*.\n"
1322  "\n"
1323  "Usage: Most commonly produced by *DOBatchCalc*.\n"
1324  "\n"
1325  "Unit: See *radiance_field*.\n"
1326  "\n"
1327  "Dimensions: Number of array elements equals number of batch cases.\n"),
1328  GROUP("ArrayOfTensor5")));
1329 
1330  wsv_data.push_back(WsvRecord(
1331  NAME("dobatch_irradiance_field"),
1332  DESCRIPTION(
1333  "Batch of irradiance fields.\n"
1334  "\n"
1335  "Each element of *dobatch_irradiance_field* corresponds to a irradiance field.\n"
1336  "See further *DOBatchCalc*.\n"
1337  "\n"
1338  "Usage: Most commonly produced by *DOBatchCalc*.\n"
1339  "\n"
1340  "Unit: See *irradiance_field*.\n"
1341  "\n"
1342  "Dimensions: Number of array elements equals number of batch cases.\n"),
1343  GROUP("ArrayOfTensor4")));
1344 
1345  wsv_data.push_back(WsvRecord(
1346  NAME("dobatch_spectral_irradiance_field"),
1347  DESCRIPTION(
1348  "Batch of spectral irradiance fields.\n"
1349  "\n"
1350  "Each element of *dobatch_spectral_irradiance_field* corresponds to a\n"
1351  "spectral irradiance field.\n"
1352  "See further *DOBatchCalc*.\n"
1353  "\n"
1354  "Usage: Most commonly produced by *DOBatchCalc*.\n"
1355  "\n"
1356  "Unit: See *spectral_irradiance_field*.\n"
1357  "\n"
1358  "Dimensions: Number of array elements equals number of batch cases.\n"),
1359  GROUP("ArrayOfTensor5")));
1360 
1361  wsv_data.push_back(WsvRecord(
1362  NAME("dsrc_coef_dx"),
1363  DESCRIPTION(
1364  "The partial derivatives of the matrix of total scalar NLTE source term.\n"
1365  "\n"
1366  "Contains the derivative of the NLTE source term summed over all\n"
1367  "species as a function of *f_grid* and *abs_p*, i.e., for a single\n"
1368  "atmospheric profile for some parameter.\n"
1369  "\n"
1370  "This variable is not used explicitly in a standard calculation, where\n"
1371  "absorption comes from the lookup table *abs_lookup*. However, it is\n"
1372  "useful for testing the methods that actually calculate line-by-line\n"
1373  "absorption, which have this variable as output. These methods are\n"
1374  "called internally by the method *abs_lookupCalc*, which generates\n"
1375  "the lookup table.\n"
1376  "\n"
1377  "Dimensions: [n_quantities][f_grid, abs_p]\n"
1378  "\n"
1379  "Unit: 1/m/quantity\n"),
1380  GROUP("ArrayOfMatrix")));
1381 
1382  wsv_data.push_back(WsvRecord(
1383  NAME("dsrc_xsec_per_species_dx"),
1384  DESCRIPTION(
1385  "Derivative of *src_xsec_per_species* with respect to retrieval\n"
1386  "quantities.\n"
1387  "\n"
1388  "The variable gives the derivative of *src_xsec_per_species* with\n"
1389  "respect to some variables (but not all jacobian variables). Handled\n"
1390  "are only variables that are involved in xsec and cannot be\n"
1391  "calculated at transmission level\n"
1392  "\n"
1393  "Usage: Output of *abs_xsec_agenda*.\n"
1394  "\n"
1395  "Dimensions: \n"
1396  " [*abs_species*][n_quantities][*f_grid*, *abs_p* ]\n"),
1397  GROUP("ArrayOfArrayOfMatrix")));
1398 
1399  wsv_data.push_back(WsvRecord(
1400  NAME("diy_dx"),
1401  DESCRIPTION(
1402  "Derivative of *iy* with respect to retrieval quantities.\n"
1403  "\n"
1404  "The variable gives the derivative if *iy* with respect to some\n"
1405  "variables (but not all jacobian variables). Handled are only variables\n"
1406  "affecting monochromatic pencil beam radiances where an (semi-)\n"
1407  "analytical expression can be applied (and that this calculation way\n"
1408  "has been selected when the jacobian was been set-up).\n"
1409  "\n"
1410  "The values in *diy_dx* considers the retrieval unit selected (such as\n"
1411  "\"nd\"), but no transformations are applied.\n"
1412  "\n"
1413  "Usage: Output of *iy_main_agenda*.\n"
1414  "\n"
1415  "Dimensions: \n"
1416  " [n_quantities][ n_retrieval_points, f_grid, stokes_dim ]\n"),
1417  GROUP("ArrayOfTensor3")));
1418 
1419  wsv_data.push_back(WsvRecord(
1420  NAME("dpnd_data_dx"),
1421  DESCRIPTION(
1422  "Partial derivates of *pnd_data*.\n"
1423  "\n"
1424  "The variable gives the particle derivate of *pnd_data* with respect\n"
1425  "to the quantities set in *dpnd_data_dx_names*.\n"
1426  "\n"
1427  "Dimensions: [ n_quantities, n_points, n_scattering_elements ]\n"),
1428  GROUP("Tensor3")));
1429 
1430  wsv_data.push_back(WsvRecord(
1431  NAME("dpnd_data_dx_names"),
1432  DESCRIPTION(
1433  "Selection of partial derivatives of *pnd_data*.\n"
1434  "\n"
1435  "This variable tells an element in *pnd_agenda_array* for which\n"
1436  "quantities partial derivatives shall be calculated.\n"
1437  "\n"
1438  "Dimensions: [ n_quantities ]\n"),
1439  GROUP("ArrayOfString")));
1440 
1441  wsv_data.push_back(WsvRecord(
1442  NAME("dpnd_field_dx"),
1443  DESCRIPTION(
1444  "Partial derivatives of *pnd_field*.\n"
1445  "\n"
1446  "The variable gives the particle derivative of *pnd_field* with respect\n"
1447  "to scattering species variables included in *jacobian_quantities*.\n"
1448  "\n"
1449  "The length of this array shall match the size of *jacobian_quantities*.\n"
1450  "For retrieval quantities that are not scattering species, the matching\n"
1451  "Tensor4 is of no relevance and must be set to be empty.\n"
1452  "\n"
1453  "Dimensions: [n_quantities][ n_scattering_elements, n_p, n_lat, n_lon ]\n"),
1454  GROUP("ArrayOfTensor4")));
1455 
1456  wsv_data.push_back(WsvRecord(
1457  NAME("dpropmat_clearsky_dx"),
1458  DESCRIPTION(
1459  // FIXMEDOC
1460  "Partial derivative of absorption coefficients.\n"
1461  "\n"
1462  "This contains the partial derivative of absorption coefficients for\n"
1463  "one point in the atmosphere (one set of pressure, temperature, zn"
1464  "magnetic field, and VMR values) with respect to one of the input\n"
1465  "parameters.\n"
1466  "\n"
1467  "Dimension: [ n_quantities ] [naa, nza, nf, f(stokes_dim)]\n"
1468  "\n"
1469  "*jacobian_quantities* should be used to set the input variable for\n"
1470  "partial derivation\n"
1471  "\n"
1472  "Unit: 1/m/jacobian_quantity\n"),
1473  GROUP("ArrayOfPropagationMatrix")));
1474 
1475  wsv_data.push_back(WsvRecord(
1476  NAME("dpsd_data_dx"),
1477  DESCRIPTION(
1478  "Partial derivates of *psd_data*.\n"
1479  "\n"
1480  "The variable gives the particle derivate of *psd_data* with respect\n"
1481  "to the quantities set in *dpnd_data_dx_names*.\n"
1482  "\n"
1483  "Dimensions: [ n_quantities, n_points, n_scattering_elements ]\n"),
1484  GROUP("Tensor3")));
1485 
1486  wsv_data.push_back(WsvRecord(
1487  NAME("dnlte_dx_source"),
1488  DESCRIPTION(
1489  // FIXMEDOC
1490  "NLTE partial derivatives output is two parts: S*dB/dx+dS/dx*B.\n"
1491  "This should contain the latter term for one point in the atmosphere\n"
1492  "(one set of pressure, temperature, zn magnetic field, and VMR values)\n"
1493  "with respect to one of of the input parameters.\n"
1494  "\n"
1495  "Dimensions: [ quantities ] [nza, naa, nf, stokes_dim] or [0]\n"
1496  "\n"
1497  "Unit: 1/m/jacobian_quantity\n"),
1498  GROUP("ArrayOfStokesVector")));
1499 
1500  wsv_data.push_back(WsvRecord(
1501  NAME("nlte_dsource_dx"),
1502  DESCRIPTION(
1503  // FIXMEDOC
1504  "NLTE partial derivatives output is two parts: S*dB/dx+dS/dx*B.\n"
1505  "This should contain the first term for one point in the atmosphere\n"
1506  "(one set of pressure, temperature, zn magnetic field, and VMR values)\n"
1507  "with respect to one of of the input parameters.\n"
1508  "\n"
1509  "Dimensions: [ quantities ] [nza, naa, nf, stokes_dim] or [0]\n"
1510  "\n"
1511  "Unit: 1/m/jacobian_quantity\n"),
1512  GROUP("ArrayOfStokesVector")));
1513 
1514  wsv_data.push_back(WsvRecord(
1515  NAME("doit_conv_flag"),
1516  DESCRIPTION(
1517  "Flag for the convergence test.\n"
1518  "\n"
1519  "This variable is initialized with 0 inside the method \n"
1520  "*cloudbox_field_monoIterate*.\n"
1521  "If after an iteration the convergence test is fulfilled, 1 is \n"
1522  "assigned which means that the iteration is completed. \n"
1523  "\n"
1524  "Usage: Method output. \n"),
1525  GROUP("Index")));
1526 
1527  wsv_data.push_back(
1528  WsvRecord(NAME("doit_conv_test_agenda"),
1529  DESCRIPTION("Agenda executing the DOIT convergence test.\n"),
1530  GROUP("Agenda")));
1531 
1532  wsv_data.push_back(WsvRecord(
1533  NAME("doit_is_initialized"),
1534  DESCRIPTION("Flag to determine if *DoitInit* was called.\n"
1535  "\n"
1536  "This flag is checked by *DoitCalc* to make sure that\n"
1537  "*DoitInit* was called before.\n"),
1538  GROUP("Index")));
1539 
1540  wsv_data.push_back(
1541  WsvRecord(NAME("doit_iteration_counter"),
1542  DESCRIPTION("Counter for number of iterations.\n"
1543  "\n"
1544  "This variable holds the number of iterations \n"
1545  "while solving the VRTE using the DOIT method. \n"),
1546  GROUP("Index")));
1547 
1548  wsv_data.push_back(WsvRecord(
1549  NAME("doit_mono_agenda"),
1550  DESCRIPTION("Agenda performing monochromatic DOIT calculation.\n"),
1551  GROUP("Agenda")));
1552 
1553  wsv_data.push_back(WsvRecord(
1554  NAME("doit_rte_agenda"),
1555  DESCRIPTION(
1556  "Agenda performing the DOIT cloudbox radiative transfer update.\n"),
1557  GROUP("Agenda")));
1558 
1559  wsv_data.push_back(WsvRecord(
1560  NAME("doit_scat_field_agenda"),
1561  DESCRIPTION(
1562  "Agenda calculating the scattering integral field in DOIT.\n"),
1563  GROUP("Agenda")));
1564 
1565  wsv_data.push_back(WsvRecord(
1566  NAME("doit_scat_field"),
1567  DESCRIPTION(
1568  "Scattered field inside the cloudbox.\n"
1569  "\n"
1570  "This variable holds the value of the scattering integral for all\n"
1571  "points inside the cloudbox. For more information refer to AUG.\n"
1572  "\n"
1573  "Usage: Input to *cloudbox_fieldUpdate...*. \n"
1574  "\n"
1575  "Unit: W / (m^2 Hz sr) for each Stokes component.\n"
1576  "\n"
1577  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
1578  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
1579  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"
1580  " N_za, N_aa, N_i ]\n"),
1581  GROUP("Tensor6")));
1582 
1583  wsv_data.push_back(
1584  WsvRecord(NAME("doit_za_grid_opt"),
1585  DESCRIPTION("Optimized zenith angle grid.\n"
1586  "\n"
1587  "Output of the method *doit_za_grid_optCalc*.\n"
1588  "\n"
1589  "Usage: Output of *doit_za_grid_optCalc*\n"
1590  "\n"
1591  "Unit: degrees \n"),
1592  GROUP("Vector")));
1593 
1594  wsv_data.push_back(WsvRecord(
1595  NAME("doit_za_grid_size"),
1596  DESCRIPTION(
1597  "Number of equidistant grid points of the zenith angle grid.\n"
1598  "\n"
1599  "Grid points are defined from 0 to 180 deg, for the scattering\n"
1600  "integral calculation.\n"
1601  "\n"
1602  "Usage: Output of *DOAngularGridsSet*.\n"),
1603  GROUP("Index")));
1604 
1605  wsv_data.push_back(WsvRecord(
1606  NAME("doit_za_interp"),
1607  DESCRIPTION("Flag for interplation method in zenith angle dimension.\n"
1608  "\n"
1609  "0 - linear interpolation \n"
1610  "1 - cubic interpolation \n"
1611  "\n"
1612  "Usage: Set by user in *doit_za_interpSet*. \n"),
1613  GROUP("Index")));
1614 
1615  wsv_data.push_back(WsvRecord(
1616  NAME("dsurface_emission_dx"),
1617  DESCRIPTION(
1618  "The derivative of *surface_emission* with respect to quantities\n"
1619  "listed in *dsurface_names*.\n"
1620  "\n"
1621  "Usage: Used internally of radiative transfer methods\n"
1622  "\n"
1623  "Dimensions: [dsurface_names][f_grid, stokes_dim]\n"),
1624  GROUP("ArrayOfMatrix")));
1625 
1626  wsv_data.push_back(WsvRecord(
1627  NAME("dsurface_names"),
1628  DESCRIPTION("Name of surface retrieval quantities.\n"
1629  "\n"
1630  "Usage: Used internally of radiative transfer methods\n"
1631  "\n"
1632  "Dimensions: [retrieval quantity]\n"),
1633  GROUP("ArrayOfString")));
1634 
1635  wsv_data.push_back(WsvRecord(
1636  NAME("dsurface_rmatrix_dx"),
1637  DESCRIPTION(
1638  "The derivative of *surface_rmatrix* with respect to quantities\n"
1639  "listed in *dsurface_names*.\n"
1640  "\n"
1641  "Usage: Used internally of radiative transfer methods\n"
1642  "\n"
1643  "Dimensions: [dsurface_names][surface_los, f_grid, stokes_dim, stokes_dim]\n"),
1644  GROUP("ArrayOfTensor4")));
1645 
1646  wsv_data.push_back(WsvRecord(
1647  NAME("dxdy"),
1648  DESCRIPTION(
1649  "Contribution function (or gain) matrix.\n"
1650  "\n"
1651  "This matrix is the partial derivative of the retrieved state vector\n"
1652  "with respect to the measurement vector (*y*).\n"
1653  "\n"
1654  "Usage: Used and set by inversion methods. \n"),
1655  GROUP("Matrix")));
1656 
1657  wsv_data.push_back(WsvRecord(
1658  NAME("ext_mat"),
1659  DESCRIPTION(
1660  "Total extinction matrix.\n"
1661  "\n"
1662  "This variable contains the extinction coefficient matrix, which\n"
1663  "is used in the RT calculation in the cloudbox. It is the physical\n"
1664  "extinction matrix which includes particle extinction for all chosen\n"
1665  "scattering species and gaseous extinction for all chosen gaseous species.\n"
1666  "\n"
1667  "See the ARTS user guide (AUG) for further information. Use the index to\n"
1668  "find where this variable is discussed. The variable is listed as a\n"
1669  "subentry to \"workspace variables\".\n"
1670  "\n"
1671  "Usage: Output of *opt_prop_bulkCalc* \n"
1672  "\n"
1673  "Unit: m^2\n" //FIXME: really m2? not 1/m?
1674  "\n"
1675  "Dimensions: [f_grid, stokes_dim, stokes_dim]\n"),
1676  GROUP("PropagationMatrix")));
1677 
1678  wsv_data.push_back(WsvRecord(
1679  NAME("ext_mat_spt"),
1680  DESCRIPTION(
1681  "Extinction matrix for all individual scattering elements.\n"
1682  "\n"
1683  "This variable contains the elements of the extinction matrix of all\n"
1684  "individual scattering elements for a given propagation direction. It is\n"
1685  "calculated input as well as the output of the agenda *spt_calc_agenda*.\n"
1686  "\n"
1687  "Usage: Output of *spt_calc_agenda* \n"
1688  "\n"
1689  "Unit: m^2\n" //FIXME: really m2? not 1/m?
1690  "\n"
1691  "Dimensions: [number of scattering elements, stokes_dim, stokes_dim]\n"),
1692  GROUP("ArrayOfPropagationMatrix")));
1693 
1694  wsv_data.push_back(WsvRecord(
1695  NAME("file_index"),
1696  DESCRIPTION(
1697  "Index number for files.\n"
1698  "\n"
1699  "See *WriteXMLIndexed* for further information.\n"
1700  "\n"
1701  "Usage: Input to *WriteXMLIndexed* and *ReadXMLIndexed*. \n"),
1702  GROUP("Index")));
1703 
1704  wsv_data.push_back(WsvRecord(NAME("forloop_agenda"),
1705  DESCRIPTION("Agenda performing a for loop.\n"),
1706  GROUP("Agenda")));
1707 
1708  wsv_data.push_back(WsvRecord(
1709  NAME("forloop_index"),
1710  DESCRIPTION(
1711  "The index for for-loops.\n"
1712  "\n"
1713  "This is the index that is used by method *ForLoop* to loop over\n"
1714  "*forloop_agenda*. \n"),
1715  GROUP("Index")));
1716 
1717  wsv_data.push_back(WsvRecord(NAME("fos_iyin_za_angles"),
1718  DESCRIPTION("So far just testing of FOS ...\n"),
1719  GROUP("Vector")));
1720 
1721  wsv_data.push_back(WsvRecord(NAME("fos_scatint_angles"),
1722  DESCRIPTION("So far just testing of FOS ...\n"),
1723  GROUP("Matrix")));
1724 
1725  wsv_data.push_back(WsvRecord(
1726  NAME("f_backend"),
1727  DESCRIPTION(
1728  "The frequency position of each backend (spectrometer) channel.\n"
1729  "\n"
1730  "Usage: Set by the user.\n "
1731  "\n"
1732  "Unit: Hz\n"),
1733  GROUP("Vector")));
1734 
1735  wsv_data.push_back(WsvRecord(
1736  NAME("f_backend_multi"),
1737  DESCRIPTION(
1738  "As *f_backend* but describes an instrument with muliple\n"
1739  "mixer/receiver chains.\n"
1740  "\n"
1741  "This variable is needed when e.g. the receiver has several mixers\n"
1742  "or the the receiver measures several polarisation and the channels\n"
1743  "differ in position or response function. \n"
1744  "\n"
1745  "The array has one element for each \"receiver chain\". The array\n"
1746  "length must match *backend_channel_response_multi*, and possibly\n"
1747  "also *lo_multi*.\n"
1748  "\n"
1749  "Usage: Set by the user.\n "
1750  "\n"
1751  "Unit: Hz\n"),
1752  GROUP("ArrayOfVector")));
1753 
1754  wsv_data.push_back(WsvRecord(
1755  NAME("f_grid"),
1756  DESCRIPTION(
1757  "The frequency grid for monochromatic pencil beam calculations.\n"
1758  "\n"
1759  "Usage: Set by the user.\n "
1760  "\n"
1761  "Unit: Hz\n"),
1762  GROUP("Vector")));
1763 
1764  wsv_data.push_back(WsvRecord(
1765  NAME("f_index"),
1766  DESCRIPTION(
1767  "Frequency index.\n"
1768  "\n"
1769  "Not all methods handle all monochromatic frequencies (of *f_grid*) in\n"
1770  "parellel and this variable is used for communication between methods,\n"
1771  "holding the index of the frequency treated presently.\n"
1772  "\n"
1773  "In some contexts, a negative f_index means all frequencies.\n"
1774  "\n"
1775  "Usage: Method output.\n"),
1776  GROUP("Index")));
1777 
1778  wsv_data.push_back(WsvRecord(
1779  NAME("geo_pos"),
1780  DESCRIPTION(
1781  "Geo-position of a measurement.\n"
1782  "\n"
1783  "An empty vector is allowed, then flagging that no geo-positioning\n"
1784  "has been performed.\n"
1785  "\n"
1786  "Otherwise, this should be a vector having length 5. The elements are:\n"
1787  " altitude\n"
1788  " latitude\n"
1789  " longitide\n"
1790  " zenith angle\n"
1791  " azimuth angle\n"
1792  "\n"
1793  "Dimensions: 0 or 5\n"
1794  "\n"
1795  "Unit: [ m, deg, deg, deg, deg ]\n"),
1796  GROUP("Vector")));
1797 
1798  wsv_data.push_back(WsvRecord(
1799  NAME("g0"),
1800  DESCRIPTION(
1801  "Gravity at zero altitude.\n"
1802  "\n"
1803  "This variable is \"little g\" at the reference ellipsiod. That is,\n"
1804  "for Earth this is a value around 9.81 m/s2\n"),
1805  GROUP("Numeric")));
1806 
1807  wsv_data.push_back(
1808  WsvRecord(NAME("g0_agenda"),
1809  DESCRIPTION("Agenda providing the gravity constant.\n"),
1810  GROUP("Agenda")));
1811 
1812  wsv_data.push_back(WsvRecord(
1813  NAME("geo_pos_agenda"),
1814  DESCRIPTION(
1815  "Agenda deriving the geo-position of a pencil beam calculation.\n"),
1816  GROUP("Agenda")));
1817 
1818  wsv_data.push_back(WsvRecord(
1819  NAME("heating_rates"),
1820  DESCRIPTION(
1821  "The heating rates of atmospheric layers.\n"
1822  "\n"
1823  "The heating rate is defined as the rate of temperature change of an \n"
1824  "atmospheric layer due the heating by absorption of radiation or if it\n"
1825  "is negative the loss of energy by emission of radiation.\n"
1826  "\n"
1827  "Units: K s^-1\n"
1828  "\n"
1829  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
1830  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
1831  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"),
1832  GROUP("Tensor3")));
1833 
1834  wsv_data.push_back(
1835  WsvRecord(NAME("hitran_xsec_data"),
1836  DESCRIPTION("Data for Hitran cross section species.\n"),
1837  GROUP("ArrayOfXsecRecord")));
1838 
1839  wsv_data.push_back(WsvRecord(
1840  NAME("instrument_pol"),
1841  DESCRIPTION(
1842  "Definition of the polarisation of an instrument.\n"
1843  "\n"
1844  "The default for output is to give data for the selected Stokes\n"
1845  "elements (1:stokes_dim). This variable defines the polarisations\n"
1846  "that are actually measured, or are transmitted.\n"
1847  "\n"
1848  "The polarisation states/components are coded as\n"
1849  " 0 = Undefined.\n"
1850  " 1 = I, total intensity.\n"
1851  " 2 = Q, second Stokes component, Iv - Ih.\n"
1852  " 3 = U, third Stokes component, I+45 - I-45.\n"
1853  " 4 = V, forth Stokes component, Irc - Ilc\n"
1854  " 5 = Iv, intensity of vertically polarised component.\n"
1855  " 6 = Ih, intensity of horizontally polarised component.\n"
1856  " 7 = I+45, intensity of +45 deg linearly polarised component.\n"
1857  " 8 = I-45, intensity of -45 deg linearly polarised component.\n"
1858  " 9 = Ilhc, intensity of left-hand circularly polarised component.\n"
1859  " 10 = Irhc, intensity of right-hand circularly polarised component.\n"
1860  "\n"
1861  "See the documentation for definition of the Stokes vector and the\n"
1862  "different components.\n"
1863  "\n"
1864  "If the instrument measures, or transmits, vertical and horizontal\n"
1865  "components, this variable shall accordingly be set to [5,6].\n"
1866  "\n"
1867  "Conversion to Planck-BT of components 2-4 requires that component\n"
1868  "1 is kept, and must be included as first element.\n"
1869  "\n"
1870  "The shift from the Stokes vector can be made at any stage when of the\n"
1871  "sensor response set-up. The responses used must of course be adopted\n"
1872  "correspondingly. Or reversed, if the antenna response is defined for\n"
1873  "Iv or Ih it could be useful to shift polarisation as first sensor\n"
1874  "operation.\n"
1875  "\n"
1876  "Usage: Set by the user.\n"),
1877  GROUP("ArrayOfIndex")));
1878 
1879  wsv_data.push_back(WsvRecord(
1880  NAME("instrument_pol_array"),
1881  DESCRIPTION(
1882  "Multiple definition of instrument polarisation.\n"
1883  "\n"
1884  "Defined as *instrument_pol* but used when multiple polarisations\n"
1885  "are possible/required.\n"
1886  "\n"
1887  "Usage: Set by the user.\n"),
1888  GROUP("ArrayOfArrayOfIndex")));
1889 
1890  wsv_data.push_back(WsvRecord(
1891  NAME("inversion_iteration_counter"),
1892  DESCRIPTION(
1893  "Iteration counter variable for *inversion_iterate_agenda*.\n"),
1894  GROUP("Index")));
1895 
1896  wsv_data.push_back(WsvRecord(
1897  NAME("inversion_iterate_agenda"),
1898  DESCRIPTION(
1899  "Agenda recalculating spectra and Jacobian for iterative inversion methods.\n"),
1900  GROUP("Agenda")));
1901 
1902  wsv_data.push_back(WsvRecord(
1903  NAME("irradiance_field"),
1904  DESCRIPTION(
1905  "Irradiance also known as flux density.\n"
1906  "\n"
1907  "Radiant flux received by a surface per unit area\n"
1908  "seperately for each hemisphere.\n"
1909  "The last dimension denotes the hemispheres. The first component is the downward irradiance\n"
1910  "and the second component is the upward irradiance"
1911  "Units: W m^-2\n"
1912  "\n"
1913  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1,\n"
1914  " (cloudbox_limits[3] - cloudbox_limits[2]) +1,\n"
1915  " (cloudbox_limits[5] - cloudbox_limits[4]) +1,\n"
1916  " 2 ]\n"),
1917  GROUP("Tensor4")));
1918 
1919  wsv_data.push_back(
1920  WsvRecord(NAME("isotopologue_ratios"),
1921  DESCRIPTION("Contains the isotopologue ratios.\n"
1922  "\n"
1923  "This variable can be set to default values by\n"
1924  "calling *isotopologue_ratiosInitFromBuiltin*\n"),
1925  GROUP("SpeciesAuxData")));
1926 
1927  wsv_data.push_back(WsvRecord(
1928  NAME("iy"),
1929  DESCRIPTION(
1930  "Monochromatic pencil beam radiance spectrum.\n"
1931  "\n"
1932  "This variable holds a single spectrum, with values corresponding\n"
1933  "to infinite frequency and spatial resolution (compare to *y*).\n"
1934  "\n"
1935  "The variable is used to represent spectra at all positions of the\n"
1936  "propagation path and can e.g. temporarily hold radiation entering\n"
1937  "the atmosphere from space.\n"
1938  "\n"
1939  "Usage: Used by radiative transfer methods.\n"
1940  "\n"
1941  "Unit: For passive observations, as selected by *iy_unit*.\n"
1942  " For transmission type, same as for transmitted signal.\n"
1943  "\n"
1944  "Dimensions: [ f_grid, stokes_dim ]\n"),
1945  GROUP("Matrix")));
1946 
1947  wsv_data.push_back(WsvRecord(
1948  NAME("iyb"),
1949  DESCRIPTION(
1950  "Monochromatic pencil beam data for one measurement block.\n"
1951  "\n"
1952  "The data for all *iy* of a measurement block appended to a vector,\n"
1953  "following the sorting order used for *y*.\n"
1954  "\n"
1955  "Usage: Used internally.\n"
1956  "\n"
1957  "Unit: W / (m^2 Hz sr) or transmission.\n"
1958  "\n"
1959  "Dimensions: [ nlos * nf * stokes_dim ] where nlos is number of rows in\n"
1960  " mblock_dlos_grid, and nf is length of f_grid.\n"),
1961  GROUP("Vector")));
1962 
1963  wsv_data.push_back(WsvRecord(
1964  NAME("iy_agenda_call1"),
1965  DESCRIPTION(
1966  "Flag to handle recursive calls of *iy_main_agenda*\n"
1967  "\n"
1968  "The agenda *iy_main_agenda* can be used recursively and this flag\n"
1969  "is used to tell the methods inside the agenda which is the primary\n"
1970  " call. This is handled automatically for methods using\n"
1971  "*iy_main_agenda*, such as *yCalc*, but the user must set this\n"
1972  "variable to 1 if the agenda is called directly inside the control\n"
1973  "file (which should be a rare case).\n"),
1974  GROUP("Index")));
1975 
1976  wsv_data.push_back(WsvRecord(
1977  NAME("iy_aux"),
1978  DESCRIPTION(
1979  "Data auxiliary to *iy*.\n"
1980  "\n"
1981  "Different data beside the direct result of the radiative transfer\n"
1982  "calculations (*iy*) can be obtained by this variable. These auxilary\n"
1983  "data are selected by *iy_aux_vars*.\n"
1984  "\n"
1985  "Usage: Provided by some radiative transfer methods.\n"
1986  "\n"
1987  "Dimensions: [quantity][ f_grid, stokes_dim ]\n"),
1988  GROUP("ArrayOfMatrix")));
1989 
1990  wsv_data.push_back(WsvRecord(
1991  NAME("iy_aux_vars"),
1992  DESCRIPTION(
1993  "Selection of quantities for *iy_aux* and when applicable also *y_aux*.\n"
1994  "\n"
1995  "Each element of this string array determines the quantity for the\n"
1996  "corresponding element in *iy_aux* and *y_aux* (i.e. the quantities\n"
1997  "are stored in the order given in *iy_aux_vars*).\n"
1998  "\n"
1999  "The possible choices vary between the methods. See the WSM you select\n"
2000  "for *iy_main_agenda* for the complete set of choices. Please not that\n"
2001  "if the calculations are done through *yCalc*, you can not select\n"
2002  "along-the-path variables.\n"),
2003  GROUP("ArrayOfString")));
2004 
2005  wsv_data.push_back(WsvRecord(
2006  NAME("iy_cloudbox_agenda"),
2007  DESCRIPTION(
2008  "Agenda deriving the intensity at boundary or interior of the cloudbox.\n"),
2009  GROUP("Agenda")));
2010 
2011  wsv_data.push_back(WsvRecord(
2012  NAME("iy_independent_beam_approx_agenda"),
2013  DESCRIPTION("Agenda dedicated to *iyIndependentBeamApproximation*."),
2014  GROUP("Agenda")));
2015 
2016  wsv_data.push_back(WsvRecord(
2017  NAME("iy_id"),
2018  DESCRIPTION(
2019  "Identification number of *iy*.\n"
2020  "\n"
2021  "This variable is intended to be an identification number for individual\n"
2022  "calculations of *iy*. This id-number can e.g. be used as input to \n"
2023  "*WriteXMLIndexed*, to link filenames to the different calculations.\n"
2024  "\n"
2025  "Some methods sets and updates *iy_id*. The general numbering scheme is:\n"
2026  " xxxyyycba\n"
2027  "where xxx identifies the row in sensorPos/los (i.e. the mblock_index),\n"
2028  "yyy identifies pencil beam direction inside measurement block (should\n"
2029  "in general match a row in mblock_dlos_grid), and cba identies later legs\n"
2030  "of total propagation paths, where a, b and c identifies secondary, tertiary\n"
2031  "and quaternary part, respectively. 1-based numbering is used. That is,\n"
2032  "the primary path of the first pencil beam of the first measurement block\n"
2033  "has iy_id = 001001000.\n"
2034  "\n"
2035  "Accordingly, the primary propagation path has cba = 000. If the primary path\n"
2036  "intersects with the surface, and the downwelling radiation is calculated\n"
2037  "for three directions, these secondary paths get cba = 001, 002 and 003.\n"
2038  "If tertiary paths appear, they have numbers such as 011. \n"
2039  "\n"
2040  "As the numbering scheme has nine positions, it is suitable to store\n"
2041  "files as: WriteXMLIndexed(output_file_format,iy_id,in,filename,9)\n"
2042  "\n"
2043  "Setting of *iy_id* is not yet supported together with scattering\n"
2044  "calculations. The value of iy_id then differs, it is either set to 0\n"
2045  "or keeps its value set by *yCalc*.\n"),
2046  GROUP("Index")));
2047 
2048  wsv_data.push_back(
2049  WsvRecord(NAME("iy_loop_freqs_agenda"),
2050  DESCRIPTION("Agenda dedicated to *iyLoopFrequencies*."),
2051  GROUP("Agenda")));
2052 
2053  wsv_data.push_back(WsvRecord(
2054  NAME("iy_main_agenda"),
2055  DESCRIPTION(
2056  "Agenda calculating the single monochromatic pencil beam spectrum.\n"),
2057  GROUP("Agenda")));
2058 
2059  wsv_data.push_back(WsvRecord(
2060  NAME("iy_space_agenda"),
2061  DESCRIPTION(
2062  "Agenda providing the downwelling radiation at the top of the atmosphere.\n"),
2063  GROUP("Agenda")));
2064 
2065  wsv_data.push_back(WsvRecord(
2066  NAME("iy_surface_agenda"),
2067  DESCRIPTION(
2068  "Agenda providing the upwelling radiation from the surface.\n"),
2069  GROUP("Agenda")));
2070 
2071  wsv_data.push_back(WsvRecord(
2072  NAME("iy_surface_agenda_array"),
2073  DESCRIPTION(
2074  // FIXMEDOC
2075  "Upwelling radiation from the surface, divided into surface types.\n"),
2076  GROUP("ArrayOfAgenda")));
2077 
2078  wsv_data.push_back(WsvRecord(
2079  NAME("iy_transmission"),
2080  DESCRIPTION(
2081  "Transmission to be included in *iy*.\n"
2082  "\n"
2083  "The calculation of *iy* can be performed over several propation path\n"
2084  "branches, and there can be recursive calls of *iy_main_agenda*.\n"
2085  "This variable gives the transmission from the end point of the present\n"
2086  "branch and the sensor for such recursive cases.\n"
2087  "\n"
2088  "This variable is used purely internally. The exact usage can vary\n"
2089  "between different RT integration schemes.\n"
2090  "\n"
2091  "Usage: Internally inside iy_main_agenda.\n"
2092  "\n"
2093  "Unit: 1\n"
2094  "\n"
2095  "Dimensions: [ f_grid, stokes_dim, stokes_dim ]\n"),
2096  GROUP("Tensor3")));
2097 
2098  wsv_data.push_back(
2099  WsvRecord(NAME("iy_transmitter_agenda"),
2100  DESCRIPTION("Agenda providing a transmitter signal.\n"),
2101  GROUP("Agenda")));
2102 
2103  wsv_data.push_back(WsvRecord(
2104  NAME("iy_unit"),
2105  DESCRIPTION(
2106  "Selection of output unit for some radiative transfer methods.\n"
2107  "\n"
2108  "This variable allows that the unit of the output radiance/intensity\n"
2109  "is changed. The possible choices differ between the radiative\n"
2110  "methods, including not considering the variable at all.\n"
2111  "Accordingly, for details see the radiative method you have selected\n"
2112  "(e.g., *iyEmissionStandard*, *iyMC*, *iyActiveSingleScat* and the like).\n"),
2113  GROUP("String")));
2114 
2115  wsv_data.push_back(WsvRecord(
2116  NAME("jacobian"),
2117  DESCRIPTION(
2118  "The Jacobian matrix.\n"
2119  "\n"
2120  "The matrix holding the Jacobians of the retrieval quantities. The\n"
2121  "matrix has to be initialised before the retrieval quantities can be\n"
2122  "defined. Initialisation is done by*jacobianInit*. Retrieval quantities\n"
2123  "are then added with *jacobianAdd...* or *retrievalAdd..* methods.\n"
2124  "\n"
2125  "The order between rows and columns follows how data are stored in *y*\n"
2126  "and *x*, respectively.\n"
2127  "\n"
2128  "Units: See the different retrieval quantities.\n"
2129  "\n"
2130  "Dimension: [ y, number of retrieval quantities and grids ]\n"),
2131  GROUP("Matrix")));
2132 
2133  wsv_data.push_back(
2134  WsvRecord(NAME("jacobian_agenda"),
2135  DESCRIPTION("Pure numerical Jacobian calculation agenda.\n"),
2136  GROUP("Agenda")));
2137 
2138  wsv_data.push_back(WsvRecord(
2139  NAME("jacobian_do"),
2140  DESCRIPTION(
2141  "Flag to activate (clear-sky) Jacobian calculations.\n"
2142  "\n"
2143  "If this variable is set to 0, no Jacobian calculations will be done,\n"
2144  "even if such calculations have been set-up (through the\n"
2145  "jacobianAddXxx methods).\n"
2146  "\n"
2147  "Needs to be 0 if cloudy-sky (Doit) Jacobians shall be calculated.\n"),
2148  GROUP("Index")));
2149 
2150  wsv_data.push_back(WsvRecord(
2151  NAME("jacobian_quantities"),
2152  DESCRIPTION(
2153  "The retrieval quantities in the Jacobian matrix.\n"
2154  "\n"
2155  "An array of retrieval quantities for which the Jacobians are\n"
2156  "calculated.\n"
2157  "\n"
2158  "Usage: Quantities are added by the jacobianAdd WSMs.\n"),
2159  GROUP("ArrayOfRetrievalQuantity")));
2160 
2161  wsv_data.push_back(WsvRecord(NAME("lat"),
2162  DESCRIPTION("A latitude.\n"
2163  "\n"
2164  "Unit: degrees\n"),
2165  GROUP("Numeric")));
2166 
2167  wsv_data.push_back(WsvRecord(
2168  NAME("lat_grid"),
2169  DESCRIPTION(
2170  "The latitude grid.\n"
2171  "\n"
2172  "The latitudes for which the atmospheric fields are defined. The\n"
2173  "atmosphere is undefined outside the range covered by the grid.\n"
2174  "The grid must be sorted in increasing order, with no repetitions.\n"
2175  "\n"
2176  "Geocentric latitudes are used.\n"
2177  "\n"
2178  "For 1D calculations this vector shall be set to be empty.\n"
2179  "\n"
2180  "For 2D cases the latitudes shall be interpreted as the angular\n"
2181  "distance inside the orbit plane from the equator (values\n"
2182  "outside +-90 deg are allowed).\n"
2183  "\n"
2184  "For 3D, the valid latitude range is [-90,90].\n"
2185  "\n"
2186  "See further the ARTS user guide (AUG). Use the index to find where\n"
2187  "this variable is discussed. The variable is listed as a subentry to\n"
2188  "\"workspace variables\".\n"
2189  "\n"
2190  "Usage: Set by the user.\n"
2191  "\n"
2192  "Unit: degrees\n"),
2193  GROUP("Vector")));
2194 
2195  wsv_data.push_back(WsvRecord(
2196  NAME("lat_true"),
2197  DESCRIPTION(
2198  "Latitudinal geolocation for 1D and 2D data.\n"
2199  "\n"
2200  "The variables *lat_grid* and *lon_grid* contain true positions only\n"
2201  "for 3D. For 1D and 2D, the geographical position is given by\n"
2202  "*lat_true* and *lon_true*. Can be left empty when not used.\n"
2203  "Otherwise:\n"
2204  "\n"
2205  " 1D: *lat_true* shall have length 1\n"
2206  "\n"
2207  " 2D: Both *lat_true* and *lon_true* shall have a length matching\n"
2208  " *lat_grid*. That is, *lat_true* and *lon_true* shall not be\n"
2209  " seen as grids, they are vectors giving the actual lat or lon\n"
2210  " for each point corresponding to *lat_grid*.\n"
2211  "\n"
2212  "Usage: Set by the user.\n"
2213  "\n"
2214  "Unit: degrees\n"),
2215  GROUP("Vector")));
2216 
2217  wsv_data.push_back(WsvRecord(
2218  NAME("lbl_checked"),
2219  DESCRIPTION("Flag to check if the line-by-line calculations will work\n"
2220  "\n"
2221  "Usage: Set manually on own risk, or use *lbl_checkedCalc*.\n"
2222  "\n"
2223  "Unit: Boolean\n"),
2224  GROUP("Index")));
2225 
2226  wsv_data.push_back(
2227  WsvRecord(NAME("line_irradiance"),
2228  DESCRIPTION("Irradiance as seen by a single absorption line.\n"
2229  "\n"
2230  "Used internally for, e.g., NLTE effects\n"),
2231  GROUP("Matrix")));
2232 
2233  wsv_data.push_back(WsvRecord(
2234  NAME("line_transmission"),
2235  DESCRIPTION("Transmission as seen by a single absorption line.\n"
2236  "\n"
2237  "Used internally for, e.g., NLTE effects\n"),
2238  GROUP("Tensor3")));
2239 
2240  wsv_data.push_back(WsvRecord(
2241  NAME("lo"),
2242  DESCRIPTION(
2243  "The local oscillator frequency.\n"
2244  "\n"
2245  "A local oscillator frequency is used in a heterodyne system when\n"
2246  "the mixer folds the spectra from from radio frequencies (RF) to\n"
2247  "intermediate frequencies (IF).\n"
2248  "\n"
2249  "Unit: Hz\n"
2250  "\n"
2251  "Usage: Set by the user.\n"),
2252  GROUP("Numeric")));
2253 
2254  wsv_data.push_back(WsvRecord(
2255  NAME("lo_multi"),
2256  DESCRIPTION(
2257  "Local oscillator frequencies.\n"
2258  "\n"
2259  "As *lo* but describes an instrument with multiple mixers. A vector\n"
2260  "element for each LO. The size of this variable and\n"
2261  "*sideband_response_multi* shall match, and probably also\n"
2262  "*sideband_mode_multi*.\n"
2263  "\n"
2264  "Unit: Hz\n"
2265  "\n"
2266  "Usage: Set by the user.\n"),
2267  GROUP("Vector")));
2268 
2269  wsv_data.push_back(WsvRecord(NAME("lon"),
2270  DESCRIPTION("A longitude.\n"
2271  "\n"
2272  "Unit: degrees\n"),
2273  GROUP("Numeric")));
2274 
2275  wsv_data.push_back(WsvRecord(
2276  NAME("lon_grid"),
2277  DESCRIPTION(
2278  "The longitude grid.\n"
2279  "\n"
2280  "The longitudes for which the atmospheric fields are defined. The\n"
2281  "atmosphere is undefined outside the range covered by the grid.\n"
2282  "The grid must be sorted in increasing order, with no repetitions.\n"
2283  "\n"
2284  "For 1D and 2D, this WSV shall be set to be empty.\n"
2285  "\n"
2286  "Allowed values for longitudes is the range [-360,360]. The difference\n"
2287  "between last and first value can not exceed 360 degrees. A difference\n"
2288  "of exactly 360 deg. means that the complete globe is covered and no\n"
2289  "propagation paths will reach a longitude edge.\n"
2290  "\n"
2291  "See further the ARTS user guide (AUG). Use the index to find where\n"
2292  "this variable is discussed. The variable is listed as a subentry to\n"
2293  "\"workspace variables\".\n"
2294  "\n"
2295  "Usage: Set by the user.\n"
2296  "\n"
2297  "Unit: degrees\n"),
2298  GROUP("Vector")));
2299 
2300  wsv_data.push_back(WsvRecord(
2301  NAME("lon_true"),
2302  DESCRIPTION(
2303  "Longitudinal geolocation for 1D and 2D data.\n"
2304  "\n"
2305  "The variables *lat_grid* and *lon_grid* contain true positions only\n"
2306  "for 3D. For 1D and 2D, the geographical position is given by\n"
2307  "*lat_true* and *lon_true*. Can be left empty when not used.\n"
2308  "Otherwise:\n"
2309  "\n"
2310  " 1D: *lon_true* shall have length 1\n"
2311  "\n"
2312  " 2D: Both *lat_true* and *lon_true* shall have a length matching\n"
2313  " *lat_grid*. That is, *lat_true* and *lon_true* shall not be\n"
2314  " seen as grids, they are vectors giving the actual lat or lon\n"
2315  " for each point corresponding to *lat_grid*.\n"
2316  "\n"
2317  "Usage: Set by the user.\n"
2318  "\n"
2319  "Unit: degrees\n"),
2320  GROUP("Vector")));
2321 
2322  wsv_data.push_back(WsvRecord(
2323  NAME("mag_u_field"),
2324  DESCRIPTION(
2325  "Zonal component of the magnetic field.\n"
2326  "\n"
2327  "The East-West magnetic field component. Positive values, when\n"
2328  "pointing eastward.\n"
2329  "\n"
2330  "Can be set to be empty, which is interpreted as zero field strength\n"
2331  "everywhere.\n"
2332  "\n"
2333  "Unit: T\n"
2334  "\n"
2335  "Dimensions: [ p_grid, lat_grid, lon_grid ] or [ 0 0 0 ].\n"),
2336  GROUP("Tensor3")));
2337 
2338  wsv_data.push_back(WsvRecord(
2339  NAME("mag_u_field_raw"),
2340  DESCRIPTION(
2341  "Raw zonal component of the magnetic field.\n"
2342  "\n"
2343  "The East-West magnetic field component. Positive values, when\n"
2344  "pointing eastward.\n"
2345  "\n"
2346  "Can be set to be empty, which is interpreted as zero field strength\n"
2347  "everywhere.\n"
2348  "\n"
2349  "Unit: T\n"
2350  "\n"
2351  "Dimensions: [ p_grid, lat_grid, lon_grid ].\n"),
2352  GROUP("GriddedField3")));
2353 
2354  wsv_data.push_back(WsvRecord(
2355  NAME("mag_v_field"),
2356  DESCRIPTION(
2357  "Meridional component of the magnetic field.\n"
2358  "\n"
2359  "The North-South magnetic field component. Positive values, when\n"
2360  "pointing northward.\n"
2361  "\n"
2362  "Can be set to be empty, which is interpreted as zero field strength\n"
2363  "everywhere.\n"
2364  "\n"
2365  "Unit: T\n"
2366  "\n"
2367  "Dimensions: [ p_grid, lat_grid, lon_grid ] or [ 0 0 0 ].\n"),
2368  GROUP("Tensor3")));
2369 
2370  wsv_data.push_back(WsvRecord(
2371  NAME("mag_v_field_raw"),
2372  DESCRIPTION(
2373  "Raw meridional component of the magnetic field.\n"
2374  "\n"
2375  "The North-South magnetic field component. Positive values, when\n"
2376  "pointing northward.\n"
2377  "\n"
2378  "Can be set to be empty, which is interpreted as zero field strength\n"
2379  "everywhere.\n"
2380  "\n"
2381  "Unit: T\n"
2382  "\n"
2383  "Dimensions: [ p_grid, lat_grid, lon_grid ].\n"),
2384  GROUP("GriddedField3")));
2385 
2386  wsv_data.push_back(WsvRecord(
2387  NAME("mag_w_field"),
2388  DESCRIPTION(
2389  "Vertical component of the magnetic field.\n"
2390  "\n"
2391  "Positive values, when pointing upward.\n"
2392  "\n"
2393  "Can be set to be empty, which is interpreted as zero field strength\n"
2394  "everywhere.\n"
2395  "\n"
2396  "Unit: T\n"
2397  "\n"
2398  "Dimensions: [ p_grid, lat_grid, lon_grid ] or [ 0 0 0 ].\n"),
2399  GROUP("Tensor3")));
2400 
2401  wsv_data.push_back(WsvRecord(
2402  NAME("mag_w_field_raw"),
2403  DESCRIPTION(
2404  "Raw vertical component of the magnetic field.\n"
2405  "\n"
2406  "Positive values, when pointing upward.\n"
2407  "\n"
2408  "Can be set to be empty, which is interpreted as zero field strength\n"
2409  "everywhere.\n"
2410  "\n"
2411  "Unit: T\n"
2412  "\n"
2413  "Dimensions: [ p_grid, lat_grid, lon_grid ].\n"),
2414  GROUP("GriddedField3")));
2415 
2416  wsv_data.push_back(WsvRecord(
2417  NAME("main_agenda"),
2418  DESCRIPTION("Agenda corresponding to the entire controlfile.\n"),
2419  GROUP("Agenda")));
2420 
2421  wsv_data.push_back(WsvRecord(
2422  NAME("mblock_dlos_grid"),
2423  DESCRIPTION(
2424  "The set of angular pencil beam directions for each measurement block.\n"
2425  "\n"
2426  "The relative angles in this variable are angular off-sets with\n"
2427  "respect to the angles in *sensor_los*.\n"
2428  "\n"
2429  "The first column holds the relative zenith angle. This column is\n"
2430  "mandatory for all atmospheric dimensionalities. For 3D, there can\n"
2431  "also be a second column, giving relative azimuth angles. If this\n"
2432  "column is not present (for 3D) zero azimuth off-sets are assumed.\n"
2433  "\n"
2434  "This rule applies to all WSVs of dlos-type, while for WSVs holding\n"
2435  "absolute angles (los-type, such as *sensor_los*), the second column\n"
2436  "is mandatory for 3D.\n"
2437  "\n"
2438  "See further the ARTS user guide (AUG). Use the index to find where\n"
2439  "this variable is discussed. The variable is listed as a subentry to\n"
2440  "\"workspace variables\".\n"
2441  "\n"
2442  "Usage: Set by the user or output of antenna WSMs.\n"
2443  "\n"
2444  "Unit: degrees\n"),
2445  GROUP("Matrix")));
2446 
2447  wsv_data.push_back(WsvRecord(
2448  NAME("mblock_index"),
2449  DESCRIPTION(
2450  "Measurement block index. \n"
2451  "\n"
2452  "Used to tell agendas the index of present measurement block.\n"
2453  "\n"
2454  "Usage: Used internally.\n"),
2455  GROUP("Index")));
2456 
2457  wsv_data.push_back(WsvRecord(
2458  NAME("mc_antenna"),
2459  DESCRIPTION(
2460  "Antenna pattern description for dedicated MC calculaions.\n"
2461  "\n"
2462  "Usage: Input to MCGeneral. Set by *mc_antennaSetGaussian* and similar\n"
2463  " methods.\n"),
2464  GROUP("MCAntenna")));
2465 
2466  wsv_data.push_back(WsvRecord(
2467  NAME("mc_error"),
2468  DESCRIPTION("Error in simulated *y* when using a Monte Carlo approach.\n"
2469  "\n"
2470  "Usage: Output from Monte Carlo functions. \n"
2471  "\n"
2472  "Units: Depends on *iy_unit*.\n"
2473  "\n"
2474  "Size: [ stokes_dim ]\n"),
2475  GROUP("Vector")));
2476 
2477  wsv_data.push_back(WsvRecord(
2478  NAME("mc_iteration_count"),
2479  DESCRIPTION(
2480  "Counts the number of iterations (or photons) used in the MC\n"
2481  "scattering algorithm.\n"
2482  "\n"
2483  "Usage: Set by MCGeneral and other MC methods.\n"),
2484  GROUP("Index")));
2485 
2486  wsv_data.push_back(WsvRecord(
2487  NAME("mc_max_iter"),
2488  DESCRIPTION("The maximum number of iterations allowed for Monte Carlo\n"
2489  "calculations.\n"
2490  "\n"
2491  "Usage: Set by the user.\n"),
2492  GROUP("Index")));
2493 
2494  wsv_data.push_back(WsvRecord(
2495  NAME("mc_max_scatorder"),
2496  DESCRIPTION("The maximum scattering order allowed for Monte Carlo\n"
2497  "radar calculations.\n"
2498  "\n"
2499  "Usage: Set by the user.\n"),
2500  GROUP("Index")));
2501 
2502  wsv_data.push_back(WsvRecord(
2503  NAME("mc_max_time"),
2504  DESCRIPTION("The maximum time allowed for Monte Carlo calculations.\n"
2505  "\n"
2506  "Usage: Set by the user.\n"
2507  "\n"
2508  "Unit: s\n"),
2509  GROUP("Index")));
2510 
2511  wsv_data.push_back(WsvRecord(
2512  NAME("mc_min_iter"),
2513  DESCRIPTION("The minimum number of iterations allowed for Monte Carlo\n"
2514  "calculations.\n"
2515  "\n"
2516  "Usage: Set by the user.\n"),
2517  GROUP("Index")));
2518 
2519  wsv_data.push_back(
2520  WsvRecord(NAME("mc_points"),
2521  DESCRIPTION(
2522  //FIXMEDOC
2523  "Source to emission, position.\n"
2524  "\n"
2525  "Counts the number of MC endpoints in each grid cell.\n"
2526  "\n"
2527  "Usage: Set by MCGeneral and other MC methods.\n"),
2528  GROUP("Tensor3")));
2529 
2530  wsv_data.push_back(WsvRecord(
2531  NAME("mc_scat_order"),
2532  DESCRIPTION(
2533  "Number of atmospheric scattering events between emission point and sensor.\n"
2534  "\n"
2535  "The first element gives the number of cases with zero scattering events,\n"
2536  "the second the number of single scattering cases etc.\n"
2537  "\n"
2538  "Scattering orders above what the variable can hold are not stored at all.\n"
2539  "The number of such cases can be determined by comparing\n"
2540  "*mc_iteration_count* with the sum of the elements in this array.\n"
2541  "\n"
2542  "Usage: Set by MCGeneral and other MC methods.\n"),
2543  GROUP("ArrayOfIndex")));
2544 
2545  wsv_data.push_back(WsvRecord(
2546  NAME("mc_source_domain"),
2547  DESCRIPTION(
2548  "Rough classification of source to emission.\n"
2549  "\n"
2550  "This is an array of length 4, where the elements in order represent\n"
2551  "space, the surface, atmospheric gas and atmospheric particle.\n"
2552  "The distinction between the two last elements is if the emission\n"
2553  "is associated with *vmr_field* or *pnd_field*.\n"
2554  "\n"
2555  "The values of the array give the number of cases where the emission\n"
2556  "source was found to be inside each \"domain\".\n"
2557  "\n"
2558  "Usage: Set by MCGeneral and other MC methods.\n"),
2559  GROUP("ArrayOfIndex")));
2560 
2561  wsv_data.push_back(WsvRecord(
2562  NAME("mc_seed"),
2563  DESCRIPTION("The integer seed for the random number generator used by\n"
2564  "Monte Carlo methods.\n"
2565  "\n"
2566  "Usage: Set by MCSetSeed.\n"),
2567  GROUP("Index")));
2568 
2569  wsv_data.push_back(WsvRecord(
2570  NAME("mc_std_err"),
2571  DESCRIPTION(
2572  "Target precision (1 std. dev.) for Monte Carlo calculations.\n"
2573  "\n"
2574  "Usage: Set by the user.\n"),
2575  GROUP("Numeric")));
2576 
2577  wsv_data.push_back(WsvRecord(
2578  NAME("mc_y_tx"),
2579  DESCRIPTION("Normalized Stokes vector for transmission (e.g., radar).\n"
2580  "\n"
2581  "The first element (intensity) should have a value of 1."
2582  "\n"
2583  "Usage: Set by user. \n"
2584  "\n"
2585  "Units: Unitless.\n"
2586  "\n"
2587  "Size: [ stokes_dim ]\n"),
2588  GROUP("Vector")));
2589 
2590  wsv_data.push_back(WsvRecord(
2591  NAME("mc_taustep_limit"),
2592  DESCRIPTION(
2593  "Defines an upper step length in terms of optical thickness for Monte "
2594  "Carlo calculations.\n"
2595  "\n"
2596  "Usage: Set by the user.\n"),
2597  GROUP("Numeric")));
2598 
2599  wsv_data.push_back(WsvRecord(
2600  NAME("met_amsu_data"),
2601  DESCRIPTION(
2602  "The AMSU data set.\n"
2603  "\n"
2604  "This is intended as input for the method ybatchMetProfiles. It holds the\n"
2605  "latitude, longitude, satellite zenith angle and amsu-b corrected and \n"
2606  "uncorrected brightness temperatures. It also has information about \n"
2607  "the particular pixel corresponds to a land or sea point. This will be \n"
2608  "read in the method ybatchMetProfiles and the profiles corresponding to \n"
2609  "each latitude and longitude will be read in.\n"
2610  "\n"
2611  "See documentation of WSM *ybatchMetProfiles* for more information.\n"),
2612  GROUP("Matrix")));
2613 
2614  wsv_data.push_back(WsvRecord(
2615  NAME("met_mm_antenna"),
2616  DESCRIPTION(
2617  "The antenna beam width for meteorological millimeter instruments.\n"
2618  "\n"
2619  "This Vector must match the number and order of channels in\n"
2620  "*met_mm_backend*.\n"
2621  "\n"
2622  "Usage: Set by the user.\n"
2623  "\n"
2624  "Unit: [ Hz ]\n"
2625  "\n"
2626  "Size: [ number of channels ]\n"),
2627  GROUP("Vector")));
2628 
2629  wsv_data.push_back(WsvRecord(
2630  NAME("met_mm_backend"),
2631  DESCRIPTION(
2632  "Backend description for meteorological millimeter sensors with passbands.\n"
2633  "\n"
2634  "This is a compact description of a passband-type sensor, e.g. AMSU-A. The matrix\n"
2635  "contains one row for each instrument channel. Each row contains four elements:\n\n"
2636  " LO position [Hz]\n"
2637  " first offset from the LO [Hz]\n"
2638  " second offset from the LO+offset1 [Hz]\n"
2639  " channel width [Hz]\n"
2640  "\n"
2641  " LO\n"
2642  " |\n"
2643  " offset1 | offset1\n"
2644  " ----------------+----------------\n"
2645  " | |\n"
2646  " | |\n"
2647  " offset2 | offset2 offset2 | offset2\n"
2648  " ---------+--------- ---------+---------\n"
2649  " | | | |\n"
2650  " | | | |\n"
2651  "##### ##### ##### #####\n"
2652  "width width width width\n"
2653  "\n"
2654  "For a sensor with 1 passband, offset1 and offset2 are zero.\n"
2655  "For a sensor with 2 passbands, only offset2 is zero.\n"
2656  "\n"
2657  "Usage: Set by the user.\n"
2658  "\n"
2659  "Unit: All entries in Hz.\n"
2660  "\n"
2661  "Size: [number of channels, 4]\n"),
2662  GROUP("Matrix")));
2663 
2664  wsv_data.push_back(WsvRecord(
2665  NAME("met_mm_polarisation"),
2666  DESCRIPTION(
2667  "The polarisation for meteorological millimeter instruments.\n"
2668  "\n"
2669  "This array must match the number and order of channels in\n"
2670  "*met_mm_backend*.\n"
2671  "\n"
2672  "Possible values:\n"
2673  "V: Vertical polarisation\n"
2674  "H: Horizontal polarisation\n"
2675  "LHC: Left-hand circular polarisation\n"
2676  "RHC: Right-hand circular polarisation\n"
2677  "AMSU-V: Vertical polarisation dependening on AMSU zenith angle\n"
2678  "AMSU-H: Horizontal polarisation dependening on AMSU zenith angle\n"
2679  "ISMAR-V: Vertical polarisation dependening on ISMAR zenith angle\n"
2680  "ISMAR-H: Horizontal polarisation dependening on AMSU zenith angle\n"
2681  "\n"
2682  "Usage: Set by the user.\n"
2683  "\n"
2684  "Unit: [ String ]\n"
2685  "\n"
2686  "Size: [ number of channels ]\n"),
2687  GROUP("ArrayOfString")));
2688 
2689  wsv_data.push_back(
2690  WsvRecord(NAME("met_profile_calc_agenda"),
2691  DESCRIPTION("Agenda for metoffice profile calculations.\n"),
2692  GROUP("Agenda")));
2693 
2694  wsv_data.push_back(WsvRecord(
2695  NAME("lm_ga_history"),
2696  DESCRIPTION(
2697  "The series of gamma values for a Marquardt-levenberg inversion.\n"
2698  "\n"
2699  "The values are stored following iteration order, i.e. the first\n"
2700  "is the gamma factor for the first iteration etc.\n"),
2701  GROUP("Vector")));
2702 
2703  wsv_data.push_back(WsvRecord(
2704  NAME("molarmass_dry_air"),
2705  DESCRIPTION(
2706  "The average molar mass of dry air.\n"
2707  "\n"
2708  "This could also be referred to as the average molecular weight for\n"
2709  "dry air. The definition of \"dry air\" can differ between planets and\n"
2710  "methods using the WSV. For Earth, this should be a value around\n"
2711  "28.97.\n"),
2712  GROUP("Numeric")));
2713 
2714  wsv_data.push_back(WsvRecord(
2715  NAME("nlte_level_identifiers"),
2716  DESCRIPTION("An array of non-lte quantum identifiers for levels matching\n"
2717  "*nlte_field_raw* and on request *nlte_vibrational_energies*.\n"),
2718  GROUP("ArrayOfQuantumIdentifier")));
2719 
2720  wsv_data.push_back(WsvRecord(
2721  NAME("nlte_vibrational_energies"),
2722  DESCRIPTION("An list of vibrational energies matching\n"
2723  "*nlte_level_identifiers* and *nlte_field_raw* or being 0.\n"),
2724  GROUP("Vector")));
2725 
2726  wsv_data.push_back(WsvRecord(
2727  NAME("collision_line_identifiers"),
2728  DESCRIPTION(
2729  //FIXMEDOC
2730  "An array of quantum identifiers for finding collisional rates\n"
2731  "in *collision_coefficients*\n"),
2732  GROUP("ArrayOfQuantumIdentifier")));
2733 
2734  wsv_data.push_back(
2735  WsvRecord(NAME("collision_coefficients"),
2736  DESCRIPTION(
2737  //FIXMEDOC
2738  "An array of coefficients for effective collisions\n"),
2739  GROUP("ArrayOfArrayOfGriddedField1")));
2740 
2741  wsv_data.push_back(
2742  WsvRecord(NAME("nelem"),
2743  DESCRIPTION("Number of elements of a Vector or Array.\n"),
2744  GROUP("Index")));
2745 
2746  wsv_data.push_back(WsvRecord(
2747  NAME("ncols"),
2748  DESCRIPTION(
2749  "Number of columns (elements in lowest dimension) of a Matrix or Tensor.\n"),
2750  GROUP("Index")));
2751 
2752  wsv_data.push_back(WsvRecord(
2753  NAME("nrows"),
2754  DESCRIPTION(
2755  "Number of rows (elements in 2nd lowest dimension) of a Matrix or Tensor.\n"),
2756  GROUP("Index")));
2757 
2758  wsv_data.push_back(WsvRecord(
2759  NAME("npages"),
2760  DESCRIPTION("Number of elements in 3rd lowest dimension of a Tensor.\n"),
2761  GROUP("Index")));
2762 
2763  wsv_data.push_back(WsvRecord(
2764  NAME("nbooks"),
2765  DESCRIPTION("Number of elements in 4th lowest dimension of a Tensor.\n"),
2766  GROUP("Index")));
2767 
2768  wsv_data.push_back(WsvRecord(
2769  NAME("nshelves"),
2770  DESCRIPTION("Number of elements in 5th lowest dimension of a Tensor.\n"),
2771  GROUP("Index")));
2772 
2773  wsv_data.push_back(WsvRecord(
2774  NAME("nvitrines"),
2775  DESCRIPTION("Number of elements in 6th lowest dimension of a Tensor.\n"),
2776  GROUP("Index")));
2777 
2778  wsv_data.push_back(WsvRecord(
2779  NAME("nlibraries"),
2780  DESCRIPTION("Number of elements in 7th lowest dimension of a Tensor.\n"),
2781  GROUP("Index")));
2782 
2783  wsv_data.push_back(
2784  WsvRecord(NAME("nlte_do"),
2785  DESCRIPTION("Flag to perform Non-LTE calculations.\n"),
2786  GROUP("Index")));
2787 
2788  wsv_data.push_back(WsvRecord(
2789  NAME("nlte_source"),
2790  DESCRIPTION(
2791  "Variable to contain the additional source function due to NLTE effects.\n"
2792  "\n"
2793  "Dimensions: [ nspecies ] [nza, naa, nf, stokes_dim] or [0]\n"),
2794  GROUP("ArrayOfStokesVector")));
2795 
2796  wsv_data.push_back(WsvRecord(
2797  NAME("nlte_source_field"),
2798  DESCRIPTION(
2799  "Analog to *propmat_clearsky_field* for *propmat_clearsky*, but for.\n"
2800  "the *nlte_source* variable.\n"
2801  "\n"
2802  "Unit: 1/m\n"
2803  "\n"
2804  "Dimensions: [species, f_grid, *stokes_dim*, p_grid, lat_grid, lon_grid]\n"),
2805  GROUP("Tensor6")));
2806 
2807  wsv_data.push_back(WsvRecord(
2808  NAME("oem_diagnostics"),
2809  DESCRIPTION(
2810  "Basic diagnostics of an OEM type inversion.\n"
2811  "\n"
2812  "This is a vector of length 5, having the elements (0-based index):\n"
2813  " 0: Convergence status, with coding\n"
2814  " 0 = converged\n"
2815  " 1 = max iterations reached\n"
2816  " 2 = max gamma of LM reached\n"
2817  " 9 = some error when calling *inversion_iterate_agenda*\n"
2818  " 99 = too high start cost.\n"
2819  " 1: Start value of cost function.\n"
2820  " 2: End value of cost function.\n"
2821  " 3: End value of y-part of cost function.\n"
2822  " 4: Number of iterations used.\n"
2823  "\n"
2824  "See WSM *OEM* for a definition of \"cost\". Values not calculated\n"
2825  "are set to NaN.\n"),
2826  GROUP("Vector")));
2827  wsv_data.push_back(
2828  WsvRecord(NAME("oem_errors"),
2829  DESCRIPTION("Errors encountered during OEM execution.\n"),
2830  GROUP("ArrayOfString")));
2831 
2832  wsv_data.push_back(WsvRecord(
2833  NAME("output_file_format"),
2834  DESCRIPTION(
2835  "Output file format.\n"
2836  "\n"
2837  "This variable sets the format for output files. It could be set to\n"
2838  "\"ascii\" for plain xml files, \"zascii\" for zipped xml files, or\n"
2839  "\"binary\".\n"
2840  "\n"
2841  "To change the value of this variable use the workspace methods\n"
2842  "*output_file_formatSetAscii*, *output_file_formatSetZippedAscii*, and\n"
2843  "*output_file_formatSetBinary*\n"),
2844  GROUP("String")));
2845 
2846  wsv_data.push_back(WsvRecord(
2847  NAME("particle_bulkprop_field"),
2848  DESCRIPTION(
2849  "Container for various data that describes scattering bulk properties.\n"
2850  "\n"
2851  "The number and order of bulk properties is free, as long as the data are\n"
2852  "consistent with the content of *particle_bulkprop_names*. \n"
2853  "\n"
2854  "The data shall be given on the standard atmospheric grids. When actually\n"
2855  "used, this variable must have zeros at all positions outside and at the\n"
2856  "border of the cloudbox.\n"
2857  "\n"
2858  "Dimensions: [ particle_bulkprop_names, p_grid, lat_grid, lon_grid ]\n"),
2859  GROUP("Tensor4")));
2860 
2861  wsv_data.push_back(WsvRecord(
2862  NAME("particle_bulkprop_names"),
2863  DESCRIPTION(
2864  "Identification of the data in *particle_bulkprop_field*.\n"
2865  "\n"
2866  "This variable assigns a name to each field in *particle_bulkprop_field*.\n"
2867  "The naming is totally free. If two fields are given the same name, the\n"
2868  "first one will be selected.\n"
2869  "\n"
2870  "Dimensions: length should match book-dimension of *particle_bulkprop_field*\n"),
2871  GROUP("ArrayOfString")));
2872 
2873  wsv_data.push_back(WsvRecord(
2874  NAME("particle_masses"),
2875  DESCRIPTION(
2876  "The mass of individual particles (or bulks).\n"
2877  "\n"
2878  "Each row corresponds to a scattering element (i.e. an element in\n"
2879  "*scat_data*). The user is free to define different mass\n"
2880  "categories and assign a mass for each category. Each column\n"
2881  "of *particle_masses* corresponds to such a mass category. A scattering\n"
2882  "element can have a non-zero mass for more than one category.\n"
2883  "\n"
2884  "For example, if you work with clouds, your mass categories could\n"
2885  "be ice and liquid, corresponding to IWC and LWC, respectively.\n"
2886  "The mass of particles inside the melting layer, having a mixed\n"
2887  "phase, could be divided between the two columns of the matrix.\n"
2888  "\n"
2889  "Shall either be empty, or have a row size consistent with the\n"
2890  "scattering variables (*scat_data*, *pnd_field*).\n"
2891  "\n"
2892  "Usage: Set by the user.\n"
2893  "\n"
2894  "Unit: kg\n"
2895  "\n"
2896  "Dimensions: [number of scattering elements, number of mass categories]\n"),
2897  GROUP("Matrix")));
2898 
2899  wsv_data.push_back(
2900  WsvRecord(NAME("partition_functions"),
2901  DESCRIPTION("Partition functions.\n"
2902  "\n"
2903  "This variable can be set to default values by\n"
2904  "calling *partition_functionsInitFromBuiltin*\n"),
2905  GROUP("SpeciesAuxData")));
2906 
2907  wsv_data.push_back(WsvRecord(
2908  NAME("pha_mat"),
2909  DESCRIPTION(
2910  "Ensemble averaged phase matrix.\n"
2911  "\n"
2912  "This workspace variable represents the actual physical phase\n"
2913  "matrix (averaged over all scattering elements) for given propagation\n"
2914  "directions. It is calculated in the method *pha_matCalc*.\n"
2915  "\n"
2916  "See ARTS user guide (AUG) for further information. Use the index to find\n"
2917  "where this variable is discussed. The variable is listed as a subentry\n"
2918  "to \"workspace variables\".\n"
2919  "\n"
2920  "Usage: Output of the method *pha_matCalc*\n"
2921  "\n"
2922  "Unit: m^2\n" //FIXME: really m2? not 1/m?
2923  "\n"
2924  "Dimensions: [za_grid, aa_grid, stokes_dim, stokes_dim]\n"),
2925  GROUP("Tensor4")));
2926 
2927  wsv_data.push_back(WsvRecord(
2928  NAME("pha_mat_doit"),
2929  DESCRIPTION(
2930  "Ensemble averaged phase matrix for DOIT calculation.\n"
2931  "\n"
2932  "This workspace variable represents the actual physical phase\n"
2933  "matrix (averaged over all scattering elements) for given incident and \n"
2934  "propagation directions. It is calculated in the method *DoitScatteringDataPrepare*.\n"
2935  "\n"
2936  "See ARTS user guide (AUG) for further information."
2937  "\n"
2938  "Usage: Output of the method *pha_matCalc*\n"
2939  "\n"
2940  "Unit: m^2\n" //FIXME: really m2? not 1/m?
2941  "\n"
2942  "Dimensions: [T,za_grid, aa_grid, za_grid, aa_grid, \n"
2943  " stokes_dim, stokes_dim]\n"),
2944  GROUP("Tensor7")));
2945 
2946  wsv_data.push_back(WsvRecord(
2947  NAME("pha_mat_spt"),
2948  DESCRIPTION(
2949  "Phase matrix for all individual scattering elements.\n"
2950  "\n"
2951  "This variable contains the elements of phase matrix for all individual\n"
2952  "scattering elements for given propagation directions. It is the\n"
2953  "calculated in the agenda *pha_mat_spt_agenda*. The elements of the phase\n"
2954  "matrix are calculated from the single scattering data.\n"
2955  "\n"
2956  "See ARTS user guide (AUG) for further information.\n"
2957  "\n"
2958  "Usage: Input and Output of the pha_mat_sptFrom* methods\n"
2959  "\n"
2960  "Unit: m^2\n" //FIXME: really m2? not 1/m?
2961  "\n"
2962  "Dimensions: [number of scattering elements, za_grid, aa_grid,\n"
2963  " stokes_dim, stokes_dim]\n"),
2964  GROUP("Tensor5")));
2965 
2966  wsv_data.push_back(WsvRecord(
2967  NAME("pha_mat_spt_agenda"),
2968  DESCRIPTION(
2969  "Agenda calculates the phase matrix for individual scattering elements.\n"),
2970  GROUP("Agenda")));
2971 
2972  wsv_data.push_back(WsvRecord(
2973  NAME("pha_mat_sptDOITOpt"),
2974  DESCRIPTION(
2975  "Interpolated phase matrix.\n"
2976  "\n"
2977  "This variable contains the data of the phase matrix in the \n"
2978  "scattering frame interpolated on the actual frequency (the variable\n"
2979  "is used inside *doit_mono_agenda*) and also interpolated on all \n"
2980  "possible scattering angles following from all combinations of \n"
2981  "*za_grid* and *aa_grid*. \n"
2982  "\n"
2983  "Usage: Input of the method *pha_mat_sptFromDataDOITOpt*\n"
2984  "\n"
2985  "Unit: m^2\n" //FIXME: really m2? not 1/m?
2986  "\n"
2987  "Dimensions: \n"
2988  "[number of scattering elements]\n"
2989  "[T, za_grid, aa_grid, za_grid, aa_grid,\n"
2990  " stokes_dim, stokes_dim]\n"),
2991  GROUP("ArrayOfTensor7")));
2992 
2993  wsv_data.push_back(WsvRecord(
2994  NAME("planet_rotation_period"),
2995  DESCRIPTION(
2996  "The sidereal rotation period of the planet.\n"
2997  "\n"
2998  "This is time that it takes for the planet to complete one revolution\n"
2999  "around its axis of rotation relative to the stars. For Earth, this\n"
3000  "is a value roughly 4 min less than 24 h.\n"
3001  "\n"
3002  "A negative value signifies a retrograde rotation, i.e. opposite to\n"
3003  "the rotation of Earth.\n"
3004  "Unit: s\n"),
3005  GROUP("Numeric")));
3006 
3007  wsv_data.push_back(WsvRecord(
3008  NAME("pnd_agenda_array"),
3009  DESCRIPTION(
3010  "Mapping of particle bulk properties to number density data.\n"
3011  "\n"
3012  "The length of this agenda array shall match the size of *scat_species*.\n"
3013  "That is there is a \"pnd-agenda\" associated with each scattering species.\n"
3014  "\n"
3015  "In short, each agenda takes some bulk property data as input, and returns\n"
3016  "particle number densities for all scattering elements of the species.\n"
3017  "See further *pnd_agenda_input* and associated variables.\n"),
3018  GROUP("ArrayOfAgenda")));
3019 
3020  wsv_data.push_back(WsvRecord(
3021  NAME("pnd_agenda_input"),
3022  DESCRIPTION(
3023  "The variable input to one element of *pnd_agenda_array*.\n"
3024  "\n"
3025  "The column dimension corresponds to the input to the underlying\n"
3026  "particle size distribution method. For example, the first column\n"
3027  "can hold ice water content values, and the second one temperature\n"
3028  "data.\n"
3029  "\n"
3030  "Temperatures are handled by *pnd_agenda_input_t* and shall not be\n"
3031  "included in this variable.\n"
3032  "\n"
3033  "Each row corresponds to a position. That is, the methods in the\n"
3034  "pnd-agendas are expected to process multiple points in one call.\n"
3035  "\n"
3036  "Dimensions: [ n_points, n_input_variables ]\n"),
3037  GROUP("Matrix")));
3038 
3039  wsv_data.push_back(WsvRecord(
3040  NAME("pnd_agenda_input_t"),
3041  DESCRIPTION(
3042  "Temperature input to one element of *pnd_agenda_array*.\n"
3043  "\n"
3044  "This WSV works as *pnd_agenda_input* but holds a specific quantity,\n"
3045  "temperature.\n"
3046  "\n"
3047  "Each element corresponds to a position. That is, the methods in the\n"
3048  "pnd-agendas are expected to process multiple points in one call.\n"
3049  "\n"
3050  "Dimensions: [ n_points ]\n"),
3051  GROUP("Vector")));
3052 
3053  wsv_data.push_back(WsvRecord(
3054  NAME("pnd_agenda_array_input_names"),
3055  DESCRIPTION(
3056  "Naming of all input expected by *pnd_agenda_array*.\n"
3057  "\n"
3058  "This variable contains *pnd_agenda_input_names* for each agenda\n"
3059  "element in *pnd_agenda_array*.\n"
3060  "\n"
3061  "Dimension: [ n_scattering_species ][ n_input_variables ]\n"),
3062  GROUP("ArrayOfArrayOfString")));
3063 
3064  wsv_data.push_back(WsvRecord(
3065  NAME("pnd_agenda_input_names"),
3066  DESCRIPTION(
3067  "Naming of (existing or expected) data in *pnd_agenda_input*.\n"
3068  "\n"
3069  "The strings of this variable refer to the corresponding column in\n"
3070  "*pnd_agenda_input*.\n"
3071  "\n"
3072  "Dimension: [ n_input_variables ]\n"),
3073  GROUP("ArrayOfString")));
3074 
3075  wsv_data.push_back(WsvRecord(
3076  NAME("pnd_data"),
3077  DESCRIPTION(
3078  "Particle number density values for a set of points.\n"
3079  "\n"
3080  "The variable contains particle number density data for one scattering\n"
3081  "species. The row dimension corresponds to different positions, in the\n"
3082  "same way as *pnd_agenda_input* is defined.\n"
3083  "\n"
3084  "Dimensions: [ n_points, n_scattering_elements ]\n"),
3085  GROUP("Matrix")));
3086 
3087  wsv_data.push_back(WsvRecord(
3088  NAME("pnd_field"),
3089  DESCRIPTION(
3090  "Particle number density field.\n"
3091  "\n"
3092  "This variable holds the particle number density fields for all\n"
3093  "scattering elements being read in the WSMs\n"
3094  "*ScatElementsPndAndScatAdd* or *ScatSpeciesPndAndScatAdd* and\n"
3095  "interpolated to the calculation grids *p_grid*, *lat_grid*, and\n"
3096  "*lon_grid* inside the cloudbox. An alternative method to create\n"
3097  "*pnd_field* is *pnd_fieldCalcFromParticleBulkProps*.\n"
3098  "\n"
3099  "Total number and order of scattering elements in *pnd_field* and (the\n"
3100  "flattened) *scat_data* has to be identical.\n"
3101  "\n"
3102  "Note: To ensure that no particles exist outside the cloudbox,\n"
3103  "*pnd_field* is required to be 0 at its outer limits (corresponding\n"
3104  "to the *cloudbox_limits*).\n"
3105  "\n"
3106  "Usage: Set by user or output of *pnd_fieldCalcFromParticleBulkProps*\n"
3107  "\n"
3108  "Unit: m^-3\n"
3109  "\n"
3110  "Size: [number of scattering elements, \n"
3111  " (*cloudbox_limits*[1] - *cloudbox_limits*[0]) +1, \n"
3112  " (*cloudbox_limits*[3] - *cloudbox_limits*[2]) +1, \n"
3113  " (*cloudbox_limits*[5] - *cloudbox_limits*[4]) +1 ] \n"),
3114  GROUP("Tensor4")));
3115 
3116  wsv_data.push_back(WsvRecord(
3117  NAME("pnd_size_grid"),
3118  DESCRIPTION(
3119  "The particle sizes associated with *pnd_data*.\n"
3120  "\n"
3121  "This variable holds the size of each scattering element considered.\n"
3122  "Size can be defined differently, depending on particle size distribution\n"
3123  "used. Most common choices should by equivalent diameter, maximum diameter\n"
3124  "and mass.\n"
3125  "\n"
3126  "Dimension: [ n_sizes ]\n"),
3127  GROUP("Vector")));
3128 
3129  wsv_data.push_back(WsvRecord(
3130  NAME("pnd_field_raw"),
3131  DESCRIPTION(
3132  "The particle number density field raw data.\n"
3133  "\n"
3134  "This variable contains the particle number density data for all\n"
3135  "considered scattering elements. *pnd_field_raw* is an Array of\n"
3136  "GriddedField3. It includes one GriddedField3 for each scattering\n"
3137  "element, which contains both the data and the corresponding grids.\n"
3138  "\n"
3139  "Usage: Set by the user. Input to methods *ScatElementsPndAndScatAdd* and \n"
3140  " *ScatSpeciesPndAndScatAdd*\n"
3141  "\n"
3142  "Unit: m^-3\n"
3143  "\n"
3144  "Size: Array[number of scattering elementst]\n"
3145  " GriddedField3 \n "
3146  " [number of pressure levels] \n"
3147  " [number of latitudes] \n"
3148  " [number of longitudes] \n"
3149  " [number of pressure levels, number of latitudes, number of longitudes]\n"),
3150  GROUP("ArrayOfGriddedField3")));
3151 
3152  wsv_data.push_back(WsvRecord(
3153  NAME("ppath"),
3154  DESCRIPTION(
3155  "The propagation path for one line-of-sight.\n"
3156  "\n"
3157  "This variable describes the total (pencil beam) propagation path for\n"
3158  "a given combination of starting point and line-of-sight. The path is\n"
3159  "described by a data structure of type Ppath. This structure contains\n"
3160  "also additional fields to faciliate the calculation of spectra and\n"
3161  "interpolation of the atmospheric fields.\n"
3162  "\n"
3163  "The data struture is too extensive to be described here, but it is\n"
3164  "described carefully in the ARTS user guide (AUG). Use the index to\n"
3165  "find where the data structure, Ppath, for propagation paths is \n"
3166  "discussed. It is listed as a subentry to \"data structures\".\n"
3167  "\n"
3168  "Usage: Output from *ppath_agenda*.\n"),
3169  GROUP("Ppath")));
3170 
3171  wsv_data.push_back(
3172  WsvRecord(NAME("ppath_agenda"),
3173  DESCRIPTION("Agenda calculating complete propagation paths.\n"),
3174  GROUP("Agenda")));
3175 
3176  wsv_data.push_back(WsvRecord(
3177  NAME("ppath_field"),
3178  DESCRIPTION(
3179  "An array meant to build up the necessary geometries for radiative\n"
3180  "field calculations.\n"
3181  "\n"
3182  "Can be ordered or not\n"
3183  "\n"
3184  "Size: user-defined\n"),
3185  GROUP("ArrayOfPpath")));
3186 
3187  wsv_data.push_back(WsvRecord(
3188  NAME("ppath_inside_cloudbox_do"),
3189  DESCRIPTION(
3190  "Flag to perform ray tracing inside the cloudbox.\n"
3191  "\n"
3192  "Standard propagation path calculations stop at the boundary of the\n"
3193  "cloudbox, or stop directly if started inside the cloudbox. This WSV\n"
3194  "allows scattering methods to obtain propagation paths inside the\n"
3195  "cloudbox. Hence, this variable is for internal usage primarily.\n"
3196  "\n"
3197  "Usage: For communication between modules of arts.\n"),
3198  GROUP("Index")));
3199 
3200  wsv_data.push_back(WsvRecord(
3201  NAME("ppath_lmax"),
3202  DESCRIPTION(
3203  "Maximum length between points describing propagation paths.\n"
3204  "\n"
3205  "See *ppath_stepGeometric* for a description of this variable.\n"
3206  "\n"
3207  "Usage: Ppath methods such as *ppath_stepGeometric*.\n"),
3208  GROUP("Numeric")));
3209 
3210  wsv_data.push_back(WsvRecord(
3211  NAME("ppath_lraytrace"),
3212  DESCRIPTION(
3213  "Maximum length of ray tracing steps when determining propagation\n"
3214  "paths.\n"
3215  "\n"
3216  "See *ppath_stepRefractionBasic* for a description of this variable.\n"
3217  "\n"
3218  "Usage: Refraction ppath methods such as *ppath_stepRefractionBasic*.\n"),
3219  GROUP("Numeric")));
3220 
3221  wsv_data.push_back(WsvRecord(
3222  NAME("ppath_step"),
3223  DESCRIPTION(
3224  "A propagation path step.\n"
3225  "\n"
3226  "The main intention of this variable is communication with the agenda\n"
3227  "*ppath_step_agenda*.\n"
3228  "\n"
3229  "See *ppath_step_agenda* for more information on this variable and\n"
3230  "the calculation of propagation paths. Or read the chapter on\n"
3231  "propagation paths in the ARTS user guide.\n"
3232  "\n"
3233  "Usage: In/output to/from *ppath_step_agenda*.\n"
3234  "\n"
3235  "Members: See AUG.\n"),
3236  GROUP("Ppath")));
3237 
3238  wsv_data.push_back(
3239  WsvRecord(NAME("ppath_step_agenda"),
3240  DESCRIPTION("Agenda calculating a propagation path step.\n"),
3241  GROUP("Agenda")));
3242 
3243  wsv_data.push_back(WsvRecord(
3244  NAME("ppvar_f"),
3245  DESCRIPTION(
3246  "Doppler adjusted frequencies along the propagation path.\n"
3247  "\n"
3248  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3249  "\n"
3250  "Dimension: [ number of frequencies, ppath.np ]\n"
3251  "\n"
3252  "Usage: Output of radiative transfer methods.\n"),
3253  GROUP("Matrix")));
3254 
3255  wsv_data.push_back(WsvRecord(
3256  NAME("ppvar_iy"),
3257  DESCRIPTION(
3258  "iy-values along the propagation path.\n"
3259  "\n"
3260  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3261  "\n"
3262  "Dimension: [ number of frequencies, stokes_dim, ppath.np ]\n"
3263  "\n"
3264  "Usage: Output of radiative transfer methods.\n"),
3265  GROUP("Tensor3")));
3266 
3267  wsv_data.push_back(WsvRecord(
3268  NAME("ppvar_mag"),
3269  DESCRIPTION(
3270  "Magnetic field along the propagation path.\n"
3271  "\n"
3272  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3273  "\n"
3274  "Dimension: [ 3, ppath.np ]\n"
3275  "\n"
3276  "Usage: Output of radiative transfer methods.\n"),
3277  GROUP("Matrix")));
3278 
3279  wsv_data.push_back(WsvRecord(
3280  NAME("ppvar_nlte"),
3281  DESCRIPTION(
3282  "Non-LTE temperatures/ratios along the propagation path.\n"
3283  "\n"
3284  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3285  "\n"
3286  "Dimension: [ number of non-lte temperatures, 1, 1, ppath.np ]\n"
3287  "\n"
3288  "Usage: Output of radiative transfer methods.\n"),
3289  GROUP("EnergyLevelMap")));
3290 
3291  wsv_data.push_back(WsvRecord(
3292  NAME("ppvar_p"),
3293  DESCRIPTION(
3294  "Pressure along the propagation path.\n"
3295  "\n"
3296  "ppvar stands for propagation path variable. The variables named in is\n"
3297  "way describe the atmosphere and its properties at each point of the\n"
3298  "propagation path\n"
3299  "\n"
3300  "Dimension: [ ppath.np ]\n"
3301  "\n"
3302  "Usage: Output of radiative transfer methods.\n"),
3303  GROUP("Vector")));
3304 
3305  wsv_data.push_back(WsvRecord(
3306  NAME("ppvar_pnd"),
3307  DESCRIPTION(
3308  "PND values along the propagation path.\n"
3309  "\n"
3310  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3311  "\n"
3312  "Dimension: [ number of scattering elements, ppath.np ]\n"
3313  "\n"
3314  "Usage: Output of radiative transfer methods.\n"),
3315  GROUP("Matrix")));
3316 
3317  wsv_data.push_back(WsvRecord(
3318  NAME("ppvar_optical_depth"),
3319  DESCRIPTION(
3320  "The optical depth between the sensor and each point of the propagation path.\n"
3321  "\n"
3322  "Returned as the one-way optical depth even in the case of radar\n"
3323  "simulations. Just a scalar value, i.e. no polarisation information is\n"
3324  "provided.\n"
3325  "\n"
3326  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3327  "\n"
3328  "Dimension: [ ppath.np, f_grid]\n"
3329  "\n"
3330  "Usage: Output of radiative transfer methods.\n"),
3331  GROUP("Matrix")));
3332 
3333  wsv_data.push_back(WsvRecord(
3334  NAME("ppvar_t"),
3335  DESCRIPTION(
3336  "Temperature along the propagation path.\n"
3337  "\n"
3338  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3339  "\n"
3340  "Dimension: [ ppath.np ]\n"
3341  "\n"
3342  "Usage: Output of radiative transfer methods.\n"),
3343  GROUP("Vector")));
3344 
3345  wsv_data.push_back(WsvRecord(
3346  NAME("ppvar_trans_cumulat"),
3347  DESCRIPTION(
3348  "The transmission between the sensor and each point of the propagation path.\n"
3349  "\n"
3350  "Returned as the one-way transmission even in the case of radar\n"
3351  "simulations.\n"
3352  "\n"
3353  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3354  "\n"
3355  "Dimension: [ ppath.np, f_grid, stokes_dim, stokes_dim ]\n"
3356  "\n"
3357  "Usage: Output of radiative transfer methods.\n"),
3358  GROUP("Tensor4")));
3359 
3360  wsv_data.push_back(WsvRecord(
3361  NAME("ppvar_trans_partial"),
3362  DESCRIPTION(
3363  "The transmission between each point along the propagation path.\n"
3364  "\n"
3365  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3366  "\n"
3367  "Dimension: [ ppath.np, f_grid, stokes_dim, stokes_dim ]\n"
3368  "\n"
3369  "Usage: Output of radiative transfer methods.\n"),
3370  GROUP("Tensor4")));
3371 
3372  wsv_data.push_back(WsvRecord(
3373  NAME("ppvar_vmr"),
3374  DESCRIPTION(
3375  "VMR values along the propagation path.\n"
3376  "\n"
3377  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3378  "\n"
3379  "Dimension: [ number of abs. species, ppath.np ]\n"
3380  "\n"
3381  "Usage: Output of radiative transfer methods.\n"),
3382  GROUP("Matrix")));
3383 
3384  wsv_data.push_back(WsvRecord(
3385  NAME("ppvar_wind"),
3386  DESCRIPTION(
3387  "Winds along the propagation path.\n"
3388  "\n"
3389  "See *ppvar_p* for a general description of WSVs of ppvar-type.\n"
3390  "\n"
3391  "Dimension: [ 3, ppath.np ]\n"
3392  "\n"
3393  "Usage: Output of radiative transfer methods.\n"),
3394  GROUP("Matrix")));
3395 
3396  wsv_data.push_back(WsvRecord(
3397  NAME("propmat_clearsky"),
3398  DESCRIPTION(
3399  "This contains the absorption coefficients for one point in the\n"
3400  "atmosphere (one set of pressure, temperature, magnetic field, and\n"
3401  "VMR values).\n"
3402  "\n"
3403  "Dimensions: [ abs_species ] [naa, nza, nf, f(stokes_dim)]\n"
3404  "\n"
3405  "Unit: 1/m\n"),
3406  GROUP("ArrayOfPropagationMatrix")));
3407 
3408  wsv_data.push_back(
3409  WsvRecord(NAME("propmat_clearsky_agenda_checked"),
3410  DESCRIPTION("OK-flag for *propmat_clearsky_agenda*.\n"
3411  "\n"
3412  "Set by *propmat_clearsky_agenda_checkedCalc*.\n"),
3413  GROUP("Index")));
3414 
3415  wsv_data.push_back(WsvRecord(
3416  NAME("propmat_clearsky_agenda"),
3417  DESCRIPTION("Agenda calculating the absorption coefficient matrices.\n"),
3418  GROUP("Agenda")));
3419 
3420  wsv_data.push_back(WsvRecord(
3421  NAME("propmat_clearsky_field"),
3422  DESCRIPTION(
3423  "Gas absorption field.\n"
3424  "\n"
3425  "Contains the (polarized) gas absorption coefficients for all species\n"
3426  "as a function of *f_grid*, *p_grid*, *lat_grid*, and *lon_grid*. \n"
3427  "\n"
3428  "This is mainly for testing and plotting gas absorption. For RT\n"
3429  "calculations, gas absorption is calculated or extracted locally,\n"
3430  "therefore there is no need to store a global field. But this variable\n"
3431  "is handy for easy plotting of absorption vs. pressure, for example.\n"
3432  "\n"
3433  "Unit: 1/m\n"
3434  "\n"
3435  "Dimensions: [species, f_grid, *stokes_dim*, stokes_dim, p_grid, lat_grid, lon_grid]\n"),
3436  GROUP("Tensor7")));
3437 
3438  wsv_data.push_back(WsvRecord(
3439  NAME("psd_data"),
3440  DESCRIPTION(
3441  "Particle size distribution values for a set of points.\n"
3442  "\n"
3443  "The variable contains particle size distribution data for one scattering\n"
3444  "species. The row dimension corresponds to different positions, in the\n"
3445  "same way as *pnd_agenda_input* is defined.\n"
3446  "\n"
3447  "Dimensions: [ n_points, n_scattering_elements ]\n"),
3448  GROUP("Matrix")));
3449 
3450  wsv_data.push_back(WsvRecord(
3451  NAME("psd_size_grid"),
3452  DESCRIPTION(
3453  "The particle sizes associated with *psd_data*.\n"
3454  "\n"
3455  "This variable holds the size of each scattering element considered.\n"
3456  "Size can be defined differently, depending on particle size distribution\n"
3457  "used. Most common choices should by equivalent diameter, maximum diameter\n"
3458  "and mass.\n"
3459  "\n"
3460  "Dimension: [ n_sizes ]\n"),
3461  GROUP("Vector")));
3462 
3463  wsv_data.push_back(WsvRecord(
3464  NAME("p_grid"),
3465  DESCRIPTION(
3466  "The pressure grid.\n"
3467  "\n"
3468  "The pressure levels on which the atmospheric fields are defined.\n"
3469  "This variable must always be defined. The grid must be sorted in\n"
3470  "decreasing order, with no repetitions.\n"
3471  "\n"
3472  "No gap between the lowermost pressure level and the surface is \n"
3473  "allowed. The uppermost pressure level defines the practical upper\n"
3474  "limit of the atmosphere as vacuum is assumed above.\n"
3475  "\n"
3476  "See further the ARTS user guide (AUG). Use the index to find where\n"
3477  "this variable is discussed. The variable is listed as a subentry to\n"
3478  "\"workspace variables\".\n"
3479  "\n"
3480  "Usage: Set by the user.\n"
3481  "\n"
3482  "Unit: Pa\n"),
3483  GROUP("Vector")));
3484 
3485  wsv_data.push_back(WsvRecord(
3486  NAME("p_grid_orig"),
3487  DESCRIPTION(
3488  "The original pressure grid before optimization.\n"
3489  "\n"
3490  "This variable is used to interpolate *cloudbox_field* back to its original\n"
3491  "size after the calculation with *OptimizeDoitPressureGrid*.\n"
3492  " The variable is listed as a subentry to\n"
3493  "\"workspace variables\".\n"
3494  "\n"
3495  "Usage: Set by the user.\n"
3496  "\n"
3497  "Unit: Pa\n"),
3498  GROUP("Vector")));
3499 
3500  wsv_data.push_back(WsvRecord(
3501  NAME("p_hse"),
3502  DESCRIPTION(
3503  "Reference pressure calculation of hydrostatic equilibrium.\n"
3504  "\n"
3505  "The altitude specified by this pressure is used as the reference\n"
3506  "when calculating hydrostatic equilibrium. That is, the geometrical\n"
3507  "altitude at this pressure is not changed.\n"
3508  "\n"
3509  "Usage: Set by the user.\n"
3510  "\n"
3511  "Unit: Pa\n"),
3512  GROUP("Numeric")));
3513  wsv_data.push_back(WsvRecord(
3514  NAME("radiance_field"),
3515  DESCRIPTION(
3516  "Radiant flux per unit solid angle per unit projected area\n"
3517  "seperately for each hemisphere. \n"
3518  "\n"
3519  "The last dimension denotes the hemispheres. The first component is the downward radiance\n"
3520  "and the second component is the upward radiance"
3521  "Units: W / (m^2 sr)\n"
3522  "\n"
3523  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
3524  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
3525  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"
3526  " N_za, N_aa\n"),
3527  GROUP("Tensor5")));
3528 
3529  wsv_data.push_back(WsvRecord(
3530  NAME("range_bins"),
3531  DESCRIPTION(
3532  "The range bins of an active instrument.\n"
3533  "\n"
3534  "The bins are assumed to cover a range without gaps, and the bins are\n"
3535  "defined by their edges. That is, the length of this vector is the\n"
3536  "number of bins + 1.\n"
3537  "\n"
3538  "The bins can potentially be defined in two ways, by altitude or time.\n"
3539  "See the method you are using, if this variable shall hold time or\n"
3540  "altitude (or maybe both options are treated).\n"
3541  "\n"
3542  "Unit: m or s\n"),
3543  GROUP("Vector")));
3544 
3545  wsv_data.push_back(WsvRecord(
3546  NAME("refr_index_air"),
3547  DESCRIPTION(
3548  "Real part of the refractive index of air.\n"
3549  "\n"
3550  "The variable contains the refractive index summed over all relevant\n"
3551  "constituents, at one position in the atmosphere. This refractive\n"
3552  "is related to the phase velocity. See also *refr_index_air_group*.\n"
3553  "\n"
3554  "Unit: 1\n"),
3555  GROUP("Numeric")));
3556 
3557  wsv_data.push_back(WsvRecord(
3558  NAME("refr_index_air_agenda"),
3559  DESCRIPTION("Agenda calculating the refractive index of air.\n"),
3560  GROUP("Agenda")));
3561 
3562  wsv_data.push_back(WsvRecord(
3563  NAME("refr_index_air_group"),
3564  DESCRIPTION(
3565  "Group index of refractivity.\n"
3566  "\n"
3567  "This variable is defined as the ratio between group velocity and the\n"
3568  "speed of ligh in vacuum. That is, it is defined as the \"standard\"\n"
3569  "refractive index, but refers to the group velocity instead of the\n"
3570  "phase velocity. See also *refr_index_air*.\n"
3571  "\n"
3572  "Unit: 1\n"),
3573  GROUP("Numeric")));
3574 
3575  wsv_data.push_back(WsvRecord(
3576  NAME("refellipsoid"),
3577  DESCRIPTION(
3578  "Reference ellipsoid.\n"
3579  "\n"
3580  "This vector specifies the shape of the reference ellipsoid. The\n"
3581  "vector must have length 2, where the two elements are:\n"
3582  " 1: Equatorial radius.\n"
3583  " 2: The eccentricity.\n"
3584  "The eccentricity is sqrt(1-b*b/a*a) where a and b are equatorial and\n"
3585  "polar radius, respectively. If the eccentricity is set to 0, an\n"
3586  "average radius should be used instead of the equatorial one.\n"
3587  "\n"
3588  "The eccentricity must be 0 for 1D calculations, as a spherical Earth\n"
3589  "is implied by setting *atmosphere_dim* to 1. For 2D, the selected\n"
3590  "ellipsoid parameters should be selected according to cross-section\n"
3591  "between the real ellipsoid and the 2D plane considered. That is\n"
3592  "the applied ellipsoid shall have een converted to match the internal\n"
3593  "treatment of 2D cases. For 3D, models can be used, such as WGS84.\n"
3594  "\n"
3595  "Usage: Set by the user.\n"
3596  "\n"
3597  "Size: [ 2 ]\n"),
3598  GROUP("Vector")));
3599 
3600  wsv_data.push_back(
3601  WsvRecord(NAME("relmat_per_band"),
3602  DESCRIPTION("Relaxation matrix per band per pressure level.\n"
3603  "\n"
3604  "Dimensions: [pressures][band][n_linex, nlines]\n"
3605  "Units: Hz/Pa in HWHM\n"),
3606  GROUP("ArrayOfArrayOfMatrix")));
3607 
3608  wsv_data.push_back(WsvRecord(
3609  NAME("relmat_type_per_band"),
3610  DESCRIPTION("Used to set the type of line mixing relaxation matrix\n"
3611  "that will be calculated.\n"
3612  "\n"
3613  "Supported types by index:\n"
3614  " 0: Hartmann-Tran type relaxation matrix.\n"
3615  " 1: Linear type relaxation matrix.\n"
3616  "\n"
3617  "Dimensions: [number of bands]\n"),
3618  GROUP("ArrayOfIndex")));
3619 
3620  wsv_data.push_back(WsvRecord(
3621  NAME("retrieval_checked"),
3622  DESCRIPTION(
3623  "Flag indicating completeness and consistency of retrieval setup.\n"
3624  "\n"
3625  "Unit: Boolean\n"),
3626  GROUP("Index")));
3627 
3628  wsv_data.push_back(WsvRecord(
3629  NAME("retrieval_eo"),
3630  DESCRIPTION(
3631  "The estimated error in the retrieval due to uncertainty in the observations.\n"
3632  "\n"
3633  "The vector contains the square roots of the diagonal elements of the\n"
3634  "covariance matrix of the error due to measurement noise, S_m in Rodgers'\n"
3635  " book.\n"),
3636  GROUP("Vector")));
3637 
3638  wsv_data.push_back(WsvRecord(
3639  NAME("retrieval_ss"),
3640  DESCRIPTION(
3641  "The estimated error in the retrieval due to limited resolution of the\n"
3642  "observation system.\n"
3643  "\n"
3644  "The vector contains the square roots of the diagonal\n"
3645  "elements of the covariance matrix of the smoothing error, S_s in Rodgers'\n"
3646  "book.\n"),
3647  GROUP("Vector")));
3648 
3649  wsv_data.push_back(WsvRecord(
3650  NAME("rte_alonglos_v"),
3651  DESCRIPTION(
3652  "Velocity along the line-of-sight to consider for a RT calculation.\n"
3653  "\n"
3654  "This variable gives the velocity of the imaginary detector in\n"
3655  "monochromatic pencil beam calculations. The relevant velocity is\n"
3656  "the projection along the line-of-sight (ie. total velocity shall not\n"
3657  "be given). A positive value means a movement of the detector in the\n"
3658  "same direction as the line-of-sight.\n"
3659  "\n"
3660  "This variable is required to include Doppler effects due to\n"
3661  "velocities of the observer, relative the centre of the coordinate\n"
3662  "system used that is fixed to the planets centre point.\n"
3663  "\n"
3664  "Unit: [ m/s ]\n"),
3665  GROUP("Numeric")));
3666 
3667  wsv_data.push_back(WsvRecord(
3668  NAME("rte_los"),
3669  DESCRIPTION(
3670  "A line-of-sight for (complete) radiative transfer calculations.\n"
3671  "\n"
3672  "This variable gives the observation direction for monochromatic\n"
3673  "pencil beam calculations. Hence, it is the line-of-sight at the end\n"
3674  "point of the propagation path.\n"
3675  "\n"
3676  "For 1D and 2D cases, *rte_los* is a vector of length 1 holding the \n"
3677  "zenith angle. For 3D, the length of the vector is 2, where the\n"
3678  "additional element is the azimuthal angle. These angles are defined\n"
3679  "in the ARTS user guide (AUG). Look in the index for \"zenith angle\"\n"
3680  "and \"azimuthal angle\".\n"
3681  "\n"
3682  "Usage: See above.\n"
3683  "\n"
3684  "Units: [ degree, degree ]\n"
3685  "\n"
3686  "Size: [ 1 or 2 ]\n"),
3687  GROUP("Vector")));
3688 
3689  wsv_data.push_back(WsvRecord(
3690  NAME("rte_pos"),
3691  DESCRIPTION(
3692  "A geographical position for starting radiative transfer calculations.\n"
3693  "\n"
3694  "This variable gives the observation position for monochromatic\n"
3695  "pencil beam calculations. Hence, it is the end point of the\n"
3696  "propagation path.\n"
3697  "\n"
3698  "This variable is a vector with a length equalling the atmospheric\n"
3699  "dimensionality. The first element is the geometrical altitude.\n"
3700  "Element 2 is the latitude and element 3 is the longitude.\n"
3701  "\n"
3702  "Usage: See above. \n"
3703  "\n"
3704  "Units: [ m, degree, degree ]\n"
3705  "\n"
3706  "Size: [ atmosphere_dim ]\n"),
3707  GROUP("Vector")));
3708 
3709  wsv_data.push_back(WsvRecord(
3710  NAME("rte_pos2"),
3711  DESCRIPTION(
3712  "A second geographical position to define the geometry for\n"
3713  "radiative transfer calculations.\n"
3714  "\n"
3715  "This variable is used when the propagation path is defined by two\n"
3716  "positions, instead of a position (*rte_pos*) and a line-of-sight\n"
3717  "(*rte_los*). That is, this variable basically replaces *rte_los*\n"
3718  "for the cases of consideration. In practice, *rte_los* is determined\n"
3719  "by finding the propagation path between *rte_pos* and *rte_pos2*.\n"
3720  "\n"
3721  "As *rte_pos* with the exception that a \"latitude\" must also be\n"
3722  "specified for 1D. This is the angular distance to *rte_pos*, where\n"
3723  "this distance is defined as the 2D-\"latitude\".\n"
3724  "\n"
3725  "Usage: See above. \n"
3726  "\n"
3727  "Units: [ m, degree, degree ]\n"
3728  "\n"
3729  "Size: [ atmosphere_dim ]\n"),
3730  GROUP("Vector")));
3731 
3732  wsv_data.push_back(WsvRecord(
3733  NAME("rtp_mag"),
3734  DESCRIPTION(
3735  "Magnetic field at a radiative transfer point.\n"
3736  "\n"
3737  "See *mag_u_field* etc. for a definition of the different components.\n"
3738  "For this variable the components are put together and thus defines\n"
3739  "magnetic field vector. Hence, this is a vector of length three, even\n"
3740  "if any of the input fields is set to be empty.\n"
3741  "\n"
3742  "The WSV is used as input to methods and agendas calculating radiative\n"
3743  "properties for a given conditions.\n"
3744  "\n"
3745  "Usage: Communication variable.\n"
3746  "\n"
3747  "Units: T\n"
3748  "\n"
3749  "Size: [ u-component, v-component, w-component ]\n"),
3750  GROUP("Vector")));
3751 
3752  wsv_data.push_back(WsvRecord(
3753  NAME("rtp_los"),
3754  DESCRIPTION(
3755  "Line-of-sight at a radiative transfer point.\n"
3756  "\n"
3757  "This variable holds a local line-of-sight. The angles of this\n"
3758  "vector are defined as for *rte_los*.\n"
3759  "\n"
3760  "The WSV is used as input to methods and agendas calculating radiative\n"
3761  "properties for a given conditions.\n"
3762  "\n"
3763  "Usage: Communication variable.\n"
3764  "\n"
3765  "Units: [ degree, degree ]\n"
3766  "\n"
3767  "Size: [ 1 or 2 ]\n"),
3768  GROUP("Vector")));
3769 
3770  wsv_data.push_back(WsvRecord(
3771  NAME("rtp_pos"),
3772  DESCRIPTION(
3773  "Position of a radiative transfer point.\n"
3774  "\n"
3775  "This vector is defined as *rte_pos*, but holds a position along\n"
3776  "the propgation path, or the start point for new paths, in contrast\n"
3777  "to *rte_pos* that is position of the (imaginary) detector.\n"
3778  "\n"
3779  "The WSV is used as input to methods and agendas calculating radiative\n"
3780  "properties for a given conditions.\n"
3781  "\n"
3782  "Usage: Communication variable.\n"
3783  "\n"
3784  "Units: [ m, degree, degree ]\n"
3785  "\n"
3786  "Size: [ atmosphere_dim ]\n"),
3787  GROUP("Vector")));
3788 
3789  wsv_data.push_back(WsvRecord(
3790  NAME("rtp_pressure"),
3791  DESCRIPTION(
3792  "Pressure at a radiative transfer point.\n"
3793  "\n"
3794  "This scalar variable holds the local pressure.\n"
3795  "\n"
3796  "The WSV is used as input to methods and agendas calculating radiative\n"
3797  "properties for a given conditions.\n"
3798  "\n"
3799  "Usage: Communication variable.\n"
3800  "\n"
3801  "Units: [ Pa ]\n"),
3802  GROUP("Numeric")));
3803 
3804  wsv_data.push_back(WsvRecord(
3805  NAME("rtp_temperature"),
3806  DESCRIPTION(
3807  "Temperature at a radiative transfer point.\n"
3808  "\n"
3809  "This scalar variable can hold the local temperature. It is intended\n"
3810  "mainly for communication with various methods and agendas, such as\n"
3811  "methods and agendas calculating absorption coefficients.\n"
3812  "The WSV is used as input to methods and agendas calculating radiative\n"
3813  "properties for a given conditions.\n"
3814  "\n"
3815  "Usage: Communication variable.\n"
3816  "\n"
3817  "Units: [ K ]\n"),
3818  GROUP("Numeric")));
3819 
3820  wsv_data.push_back(WsvRecord(
3821  NAME("rtp_nlte"),
3822  DESCRIPTION(
3823  "NLTE temperature/ratio at a radiative transfer point.\n"
3824  "\n"
3825  "This vector variable can hold the NLTE temperature/ratio. It is intended\n"
3826  "mainly for communication with various methods and agendas, such as\n"
3827  "methods and agendas calculating absorption coefficients.\n"
3828  "The WSV is used as input to methods and agendas calculating radiative\n"
3829  "properties for a given conditions.\n"
3830  "\n"
3831  "Usage: Communication variable.\n"
3832  "\n"
3833  "Units: [ K/# ]\n"
3834  "Size: [ NLTE levels, 1, 1, 1 ] or [ 0, 0, 0, 0 ]\n"),
3835  GROUP("EnergyLevelMap")));
3836 
3837  wsv_data.push_back(WsvRecord(
3838  NAME("rtp_vmr"),
3839  DESCRIPTION(
3840  "Absorption species abundances for radiative transfer calculations.\n"
3841  "\n"
3842  "This vector variable holds the local abundance of the constituents\n"
3843  "included in *abs_species*.\n"
3844  "\n"
3845  "The WSV is used as input to methods and agendas calculating radiative\n"
3846  "properties for a given conditions.\n"
3847  "\n"
3848  "Usage: Communication variable.\n"
3849  "\n"
3850  "Units: [ Differ between the elements, can be VMR, kg/m3 or #/m3. ]\n"
3851  "\n"
3852  "Size: Should match abs_species.nelem()\n"),
3853  GROUP("Vector")));
3854 
3855  wsv_data.push_back(WsvRecord(
3856  NAME("scat_data"),
3857  DESCRIPTION(
3858  "Array of single scattering data.\n"
3859  "\n"
3860  "As *scat_data_raw*, but with frequency grids and dimensions reduced\n"
3861  "to the RT's *f_grid* or a single frequency entry. Also, temperature\n"
3862  "grid or dimensions can be reduced to a single entry, meaning no\n"
3863  "temperature interpolation is done for the respective data.\n"
3864  "\n"
3865  "Standard approach to derive scat_data is to use *scat_dataCalc* to\n"
3866  "derive it from *scat_data_raw*."),
3867  GROUP("ArrayOfArrayOfSingleScatteringData")));
3868 
3869  wsv_data.push_back(WsvRecord(
3870  NAME("scat_data_checked"),
3871  DESCRIPTION(
3872  "OK-flag for *scat_data*.\n"
3873  "\n"
3874  "Relevant checks are performed by *scat_data_checkedCalc. Only the\n"
3875  "value 1 is taken as OK.\n"),
3876  GROUP("Index")));
3877 
3878  wsv_data.push_back(WsvRecord(
3879  NAME("scat_data_raw"),
3880  DESCRIPTION(
3881  "Array of raw single scattering data.\n"
3882  "\n"
3883  "This variable holds the single scattering properties for all \n"
3884  "scattering elements, organized according to their assignment to a\n"
3885  "scattering species. *scat_data_raw* entries can be derived from\n"
3886  "precalculated data files using the methods *ScatElementsPndAndScatAdd*,\n"
3887  "*ScatSpeciesPndAndScatAdd*, or *ScatSpeciesScatAndMetaRead* or\n"
3888  "can be calculated using *scat_data_singleTmatrix*.\n"
3889  "\n"
3890  "This may be used in combination with *scat_meta*\n"
3891  "\n"
3892  "Usage: Method ouput.\n"
3893  "\n"
3894  "Members: SingleScatteringData:\n"
3895  " Enum[ptype attribute]\n"
3896  " String[description] \n"
3897  " Vector[f_grid]\n"
3898  " Vector[T_grid]\n"
3899  " Vector[za_grid]\n"
3900  " Vector[aa_grid]\n"
3901  " Tensor7[pha_mat_data]\n"
3902  " [f_grid, T_grid, za_grid, aa_grid, za_grid, aa_grid, matrix_element]\n"
3903  " ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^\n"
3904  " scattered incoming\n"
3905  " Tensor5[ext_mat_data]\n"
3906  " [f_grid, T_grid, za_grid, aa_grid, matrix_element]\n"
3907  " Tensor5[abs_vec_data]\n"
3908  " [f_grid, T_grid, za_grid, aa_grid, matrix_element]\n"
3909  "\n"
3910  "Dimensions: [number of scattering species][number of scattering elements] \n"),
3911  GROUP("ArrayOfArrayOfSingleScatteringData")));
3912 
3913  wsv_data.push_back(WsvRecord(
3914  NAME("scat_data_mono"),
3915  DESCRIPTION(
3916  "Monochromatic single scattering data.\n"
3917  "\n"
3918  "This variable holds the single scattering properties for all\n"
3919  "scattering species and scattering elements for a specified frequency.\n"
3920  "It can be calculated from *scat_data* using *scat_data_monoCalc*,\n"
3921  "which interpolates *scat_data* to the required frequency.\n"),
3922  GROUP("ArrayOfArrayOfSingleScatteringData")));
3923 
3924  wsv_data.push_back(WsvRecord(
3925  NAME("scat_data_single"),
3926  DESCRIPTION(
3927  "Structure for the single scattering data.\n"
3928  "\n"
3929  "Comprises the single scattering data of a single scattering element.\n"
3930  "See ARTS user guide for further information.\n"
3931  "\n"
3932  "Usage: Set by the user.\n"
3933  "\n"
3934  "Dimensions: SingleScatteringData \n"
3935  " Enum[ptype attribute]\n"
3936  " String[description] \n"
3937  " Vector[f_grid]\n"
3938  " Vector[T_grid]\n"
3939  " Vector[za_grid]\n"
3940  " Vector[aa_grid]\n"
3941  " Tensor7[pha_mat_data]\n"
3942  " [f_grid, T_grid, za_grid, aa_grid, za_grid, aa_grid, matrix_element]\n"
3943  " ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^\n"
3944  " scattered incoming\n"
3945  " Tensor5[ext_mat_data]\n"
3946  " [f_grid, T_grid, za_grid, aa_grid, matrix_element]\n"
3947  " Tensor5[abs_vec_data]\n"
3948  " [f_grid, T_grid, za_grid, aa_grid, matrix_element]\n"),
3949  GROUP("SingleScatteringData")));
3950 
3951  wsv_data.push_back(WsvRecord(
3952  NAME("scat_lat_index"),
3953  DESCRIPTION(
3954  "Latitude index for scattering calculations.\n"
3955  "\n"
3956  "This variable is used in methods used for computing scattering\n"
3957  "properties of scattering elements like *opt_prop_sptFromData* and\n"
3958  "*pha_matCalc*. It holds the information about the position for which the\n"
3959  "scattering calculations are done.\n"
3960  "\n"
3961  "Usage: Input to the methods *spt_calc_agenda*,\n"
3962  " *pha_mat_spt_agenda*\n"),
3963  GROUP("Index")));
3964 
3965  wsv_data.push_back(WsvRecord(
3966  NAME("scat_lon_index"),
3967  DESCRIPTION(
3968  "Longitude index for scattering calculations.\n"
3969  "\n"
3970  "This variable is used in methods used for computing scattering\n"
3971  "properties of scattering elements like *opt_prop_sptFromData* and\n"
3972  "*pha_matCalc*. It holds the information about the position for which the\n"
3973  "scattering calculations are done.\n"
3974  "\n"
3975  "Usage: Input to the methods *spt_calc_agenda*,\n"
3976  " *pha_mat_spt_agenda*\n"),
3977  GROUP("Index")));
3978 
3979  wsv_data.push_back(WsvRecord(
3980  NAME("scat_meta_single"),
3981  DESCRIPTION(
3982  "Structure for the scattering meta data.\n"
3983  "\n"
3984  "This variable holds the scattering meta data for a single scattering\n"
3985  "element (see AUG for definition). Scattering meta data comprises\n"
3986  "the microphysical description of the scattering element as necessary\n"
3987  "to relate single scattering properties with mass density or flux\n"
3988  "fields. That is, e.g., in order to handle the scattering element in\n"
3989  "particle size (and shape) distribution calculations.\n"
3990  "\n"
3991  "For a definition of the structure members see below.\n"
3992  "\n"
3993  "Members of Numeric type can be flagged as unknown by setting them to\n"
3994  "NAN. This will cause a runtime error in case the parameter is needed in\n"
3995  "the calculation, but will be ignored otherwise.\n"
3996  "\n"
3997  "Usage: Set by the user.\n"
3998  "\n"
3999  "Members:\n"
4000  " description [*String*]\n"
4001  " Description: Free-form description of the scattering element,\n"
4002  " holding information deemed of interest by the user but not covered\n"
4003  " by other structure members (and not used within ARTS).\n"
4004  " source [*String*]\n"
4005  " Description: Free-form description of the source of the data,\n"
4006  " e.g., Mie, T-Matrix, or DDA calculation or a database or a\n"
4007  " literature source.\n"
4008  " refr_index [*String*]\n"
4009  " Description: Free-form description of the underlying complex\n"
4010  " refractive index data, e.g., a literature source.\n"
4011  " mass [*Numeric*]\n"
4012  " Unit: [kg]\n"
4013  " Description: The mass of the scattering element.\n"
4014  " diameter_max [*Numeric*]\n"
4015  " Unit: [m]\n"
4016  " Description: The maximum diameter (or dimension) of the scattering\n"
4017  " element, defined by the circumferential sphere diameter of the\n"
4018  " element. Note that this parameter is only used by some size\n"
4019  " distributions; it does not have a proper meaning if the scattering\n"
4020  " element represents an ensemble of differently sized particles.\n"
4021  " diameter_volume_equ [*Numeric*]\n"
4022  " Unit: [m]\n"
4023  " Description: The volume equivalent sphere diameter of the\n"
4024  " scattering element, i.e., the diameter of a sphere with the same\n"
4025  " volume. For nonspherical particles, volume refers to the volume\n"
4026  " of the particle-forming substance, not that of the circumferential\n"
4027  " sphere (which can be derived from diameter_max). If the particle\n"
4028  " consists of a mixture of materials, the substance\n"
4029  " encompasses the complete mixture. E.g., the substance of 'soft'\n"
4030  " ice particles includes both the ice and the air.\n"
4031  " diameter_area_equ_aerodynamical [*Numeric*]\n"
4032  " Unit: [m]\n"
4033  " Description: The area equivalent sphere diameter of the\n"
4034  " scattering element, i.e., the diameter of a sphere with the same\n"
4035  " cross-sectional area. Here, area refers to the aerodynamically\n"
4036  " relevant area, i.e., the cross-sectional area perpendicular to the\n"
4037  " direction of fall. Similarly to volume in the definition of\n"
4038  " diameter_volume_equ, for non-spherical and mixed-material\n"
4039  " particles, area refers to the area covered by the substance\n"
4040  " mixture of the particle.\n"),
4041  GROUP("ScatteringMetaData")));
4042 
4043  wsv_data.push_back(WsvRecord(
4044  NAME("scat_meta"),
4045  DESCRIPTION(
4046  "An Array of scattering meta data (*scat_meta_single*).\n"
4047  "\n"
4048  "The array holds the meta data for all scattering elements. For a\n"
4049  "description of the meta data contents refer to the documentation\n"
4050  "of *scat_data_single*.\n"
4051  "\n"
4052  "Corresponding to *scat_data*, it is organized in terms of scattering\n"
4053  "species (i.e., one sub-array per scattering species holding one\n"
4054  "*scat_meta_single* instance per scattering element assigned to this\n"
4055  "scattering species). It is primarily used for particle size and shape\n"
4056  "distribution calculations using *pnd_fieldCalcFromParticleBulkProps*.\n"
4057  "It is also applied for deducing microphysical characterizations of\n"
4058  "scattering species, e.g., by *particle_massesFromMetaData*.\n"
4059  "\n"
4060  "Note: This array must contain as many elements as *scat_data* (on\n"
4061  "both array levels).\n"
4062  "\n"
4063  "Usage: Set by the user.\n"
4064  "\n"
4065  "Dimensions: [scattering species][scattering elements]"
4066  "\n"
4067  "For more details, see also *scat_meta_single*.\n"),
4068  GROUP("ArrayOfArrayOfScatteringMetaData")));
4069 
4070  wsv_data.push_back(WsvRecord(
4071  NAME("scat_p_index"),
4072  DESCRIPTION(
4073  "Pressure index for scattering calculations.\n"
4074  "\n"
4075  "This variable is used in methods used for computing scattering\n"
4076  "properties of scattering elements like *opt_prop_sptFromData* and\n"
4077  "*pha_matCalc*. It holds the information about the location for which the\n"
4078  "scattering calculations are done.\n"
4079  "\n"
4080  "Usage: Input to the methods *spt_calc_agenda*,\n"
4081  " *pha_mat_spt_agenda*\n"),
4082  GROUP("Index")));
4083 
4084  wsv_data.push_back(WsvRecord(
4085  NAME("scat_species"),
4086  DESCRIPTION(
4087  "Array of Strings defining the scattering species to consider.\n"
4088  "\n"
4089  "Each String contains the information to connect scattering species\n"
4090  "(e.g., hydrometeor) atmospheric fields with the microphysical\n"
4091  "information like size and shape distributions. The strings follow\n"
4092  "the following structure with individual elements separated by dashes:\n"
4093  "\n"
4094  "- scattering species name [*String*]\n"
4095  " the name of the scattering species' atmospheric field. Free form,\n"
4096  " but is matched to *atm_fields_compact* fields by their names.\n"
4097  " Common are, e.g., IWC (ice water content), LWC (liquid water\n"
4098  " content), RR (rain rate), and SR (snow rate).\n"
4099  "- particle size distribution [*String*]:\n"
4100  " the size distribution function/parametrization to apply. For\n"
4101  " currently possible PSDs see *pnd_fieldCalcFromParticleBulkProps*.\n"
4102  "\n"
4103  "Example: [''IWC-MH97'', ''LWC-H98_STCO'', ...]\n"),
4104  GROUP("ArrayOfString")));
4105 
4106  wsv_data.push_back(WsvRecord(
4107  NAME("scat_species_a"),
4108  DESCRIPTION(
4109  "Mass-size relationship parameter, for one scattering species.\n"
4110  "\n"
4111  "Some methods require a relationship between mass and particle size,\n"
4112  "valid for the complete scattering species. A common model for this\n"
4113  "relationship is:\n"
4114  " mass(x) = a * x^b,\n"
4115  "where x is size (that could be Dveq, Dmax or mass) and a/b are parameters.\n"
4116  "\n"
4117  "This WSV is a in the expression above.\n"
4118  "The WSV matching b is *scat_species_b*.\n"
4119  "The WSV matching x is *scat_species_x*.\n"),
4120  GROUP("Numeric")));
4121 
4122  wsv_data.push_back(WsvRecord(
4123  NAME("scat_species_b"),
4124  DESCRIPTION(
4125  "Mass-size relationship parameter, for one scattering species.\n"
4126  "\n"
4127  "See *scat_species_a* for details.\n"),
4128  GROUP("Numeric")));
4129 
4130  wsv_data.push_back(WsvRecord(
4131  NAME("scat_species_x"),
4132  DESCRIPTION(
4133  "The size grid of one scattering species.\n"
4134  "\n"
4135  "The variable holds the sizes associated with one scattering species.\n"
4136  "The typical application of these data are as the size grid when\n"
4137  "calculating particle size distributions.\n"
4138  "\n"
4139  "The user must set this WSV as several quantities can be used as size,\n"
4140  "such as mass and maximum diamater.\n"
4141  "\n"
4142  "See also *scat_species_a*, for example usage of this WSV.\n"
4143  "\n"
4144  "Dimension: [number of scattering elements]\n"),
4145  GROUP("Vector")));
4146 
4147  wsv_data.push_back(WsvRecord(
4148  NAME("sensor_checked"),
4149  DESCRIPTION(
4150  "OK-flag for sensor related variables.\n"
4151  "\n"
4152  "This variable flags that sensor variables are defined in a formally\n"
4153  "and practically correct way. For example, it checks for correct\n"
4154  "dimensions of *sensor_pos* and *sensor_los*.\n"
4155  "\n"
4156  "Shall be set by *sensor_checkedCalc*. See that WSM for treated WSVs.\n"
4157  "Only the value 1 is taken as OK.\n"),
4158  GROUP("Index")));
4159 
4160  wsv_data.push_back(WsvRecord(
4161  NAME("sensor_description_amsu"),
4162  DESCRIPTION(
4163  "Sensor description for simple AMSU setup.\n"
4164  "\n"
4165  "This is a compact description of an AMSU-type sensor. The matrix\n"
4166  "contains one row for each instrument channel. Each row contains three\n"
4167  "elements: LO position [Hz], offset of the channel center from the LO\n"
4168  "[Hz], and channel width [Hz].\n"
4169  "\n"
4170  "Usage: Set by the user.\n"
4171  "\n"
4172  "Unit: All entries in Hz.\n"
4173  "\n"
4174  "Size: [number of channels, 3]\n"),
4175  GROUP("Matrix")));
4176 
4177  wsv_data.push_back(WsvRecord(
4178  NAME("sensor_los"),
4179  DESCRIPTION(
4180  "The sensor line-of-sight (LOS) for each measurement block.\n"
4181  "\n"
4182  "Line-of-sights are specified by giving the zenith and azimuth angles.\n"
4183  "Column 1 holds the zenith angle. This angle is simply the angle \n"
4184  "between the zenith and LOS directions. For 1D and 3D the valid\n"
4185  "range is [0 180], while for 2D angles down to -180 degrees are\n"
4186  "allowed. Negative angles signifies for 2D observations towards\n"
4187  "lower latitudes, while positive angles means observations towards\n"
4188  "higher latitudes. Nadir corresponds throughout to 180 degrees.\n"
4189  "\n"
4190  "The azimuth angle is given with respect to the meridian plane. That\n"
4191  "is, the plane going through the north and south poles. The valid \n"
4192  "range is [-180,180] where angles are counted clockwise; 0 means\n"
4193  "that the viewing or propagation direction is north-wise and +90 means\n"
4194  "that the direction of concern goes eastward.\n"
4195  "\n"
4196  "No azimuth angle shall be specified for 1D and 2D. This angle is in\n"
4197  "general of no concern for these atmospheric dimensionalities, but\n"
4198  "matter in some cases, such as with respect to the Doppler shift due\n"
4199  "to winds. For 1D the azimuth angle is then assumed to be 0 deg, i.e.\n"
4200  "the sensor is treated to be directed towards North. For 2D, the \n"
4201  "implied azimuth is 0 or 180, depending of the zenith angle is positive\n"
4202  "or negative.\n"
4203  "\n"
4204  "See further the ARTS user guide (AUG). Use the index to find where\n"
4205  "this variable is discussed. The variable is listed as a subentry to\n"
4206  "\"workspace variables\".\n"
4207  "\n"
4208  "Usage: Set by the user.\n"
4209  "\n"
4210  "Unit: [ degrees, degrees ]\n"
4211  "\n"
4212  "Size: [ number of measurement blocks, 1 or 2 ]\n"),
4213  GROUP("Matrix")));
4214 
4215  wsv_data.push_back(WsvRecord(
4216  NAME("sensor_norm"),
4217  DESCRIPTION(
4218  "Flag if sensor response should be normalised or not (0 or 1).\n"
4219  "\n"
4220  "If the flag is set to 1 each sensor response is normalised (where\n"
4221  "applicable). If set to 0 the sensor responses are left as provided.\n"
4222  "\n"
4223  "See further the ARTS user guide (AUG). Use the index to find where\n"
4224  "this variable is discussed. The variable is listed as a sub-entry to\n"
4225  "\"workspace variables\".\n"
4226  "\n"
4227  "Usage: Set by the user.\n"),
4228  GROUP("Index")));
4229 
4230  wsv_data.push_back(WsvRecord(
4231  NAME("sensor_pol"),
4232  DESCRIPTION(
4233  "A set of polarisation response angles.\n"
4234  "\n"
4235  "The standard choice to consider the polarisation response of the\n"
4236  "reciever is by *instrument_pol*, and this response becomes then part\n"
4237  "of *sensor_response*. However, that choice is not possible when the\n"
4238  "polartisation response changes between measurement blocks, and this\n"
4239  "variable combined with the *yApplySensorPol* offers an alternative for\n"
4240  "such situations. This WSV also allows defintion of an arbitrary\n"
4241  "polarisation angle.\n"
4242  "\n"
4243  "When applying the polarisation response by *yApplySensorPol*, this\n"
4244  "variable complements *sensor_pos* and *sensor_los*. This WSV matrix\n"
4245  "is also a matrix, that shall have the same number of rows as the other\n"
4246  "two matrices. \n"
4247  "\n"
4248  "The columns of *sensor_pol* corresponds to the channels/frequencies\n"
4249  "of the receiver. Each element gives the polarisation angle. A pure\n"
4250  "vertical response has the angle 0 deg, and pure horisontal 90 deg.\n"
4251  "If all U values (Stokes element 3) are zero, the sign of the angle does,\n"
4252  "not matter, and 0 and 180 degrees give the same result. With non-zero\n"
4253  "U, the result of e.g. -45 and +45 degrees differ.\n"
4254  "\n"
4255  "Note that a receiver with a linear response is assumed. Circular\n"
4256  "polarisation is not affected by any rotation.\n"
4257  "\n"
4258  "Usage: Set by the user.\n"
4259  "\n"
4260  "Unit: [ degrees ]\n"
4261  "\n"
4262  "Size: [ number of measurement blocks, number of channels/frequencies ]\n"),
4263  GROUP("Matrix")));
4264 
4265  wsv_data.push_back(WsvRecord(
4266  NAME("sensor_pos"),
4267  DESCRIPTION(
4268  "The sensor position for each measurement block.\n"
4269  "\n"
4270  "The sensor positions are specified as a matrix, where the number of\n"
4271  "columns shall be equal to *atmosphere_dim*. Column 1 shall contain\n"
4272  "the altitude of the sensor platform, column 2 the latitude and the \n"
4273  "last column the longitude. The number of rows corresponds to the\n"
4274  "number of measurement blocks.\n"
4275  "\n"
4276  "Valid range for latitudes in 3D is [-90,90], while for 2D any value\n"
4277  "is accepted. Accepted range for longitudes are [-360,360].\n"
4278  "\n"
4279  "See further the ARTS user guide (AUG). Use the index to find where\n"
4280  "this variable is discussed. The variable is listed as a subentry to\n"
4281  "\"workspace variables\".\n"
4282  "\n"
4283  "Usage: Set by the user.\n"
4284  "\n"
4285  "Unit: [ m, degrees, degrees ]\n"
4286  "\n"
4287  "Size: [ number of measurement blocks, atmosphere_dim ]\n"),
4288  GROUP("Matrix")));
4289 
4290  wsv_data.push_back(WsvRecord(
4291  NAME("sensor_response"),
4292  DESCRIPTION(
4293  "The matrix modelling the total sensor response.\n"
4294  "\n"
4295  "This matrix describes the sensor respons for one measurement block\n"
4296  "The response is assumed to be identical for each such block.\n"
4297  "\n"
4298  "The matrix is the product of all the individual sensor response\n"
4299  "matrices. Therefore its dimensions are depending on the total sensor\n"
4300  "configuration. The *sensor_response* has to initialised by the \n"
4301  "*sensor_responseInit* method.\n"
4302  "\n"
4303  "Usage: Output/input to the *sensor_response...* methods.\n"
4304  "\n"
4305  "Units: -\n"
4306  "\n"
4307  "Dimension: See the individual *sensor_response...* method. \n"),
4308  GROUP("Sparse")));
4309 
4310  wsv_data.push_back(WsvRecord(
4311  NAME("sensor_response_aa"),
4312  DESCRIPTION(
4313  "The relative azimuth angles associated with the output of\n"
4314  "*sensor_response*.\n"
4315  "\n"
4316  "The variable shall not be set manually, it will be set together with\n"
4317  "*sensor_response* by sensor response WSMs.\n"
4318  "\n"
4319  "Usage: Set by sensor response methods.\n"
4320  "\n"
4321  "Unit: [ degrees ]\n"),
4322  GROUP("Vector")));
4323 
4324  wsv_data.push_back(WsvRecord(
4325  NAME("sensor_response_agenda"),
4326  DESCRIPTION(
4327  "Agenda providing the sensor response data for a measurement block.\n"),
4328  GROUP("Agenda")));
4329 
4330  wsv_data.push_back(WsvRecord(
4331  NAME("sensor_response_dlos"),
4332  DESCRIPTION(
4333  "The relative zenith and azimuth angles associated with the output of\n"
4334  "*sensor_response*.\n"
4335  "\n"
4336  "Definition of angles match *mblock_dlos_grid*. Works otherwise as\n"
4337  "*sensor_response_f*.\n"
4338  "\n"
4339  "The variable shall not be set manually, it will be set together with\n"
4340  "*sensor_response* by sensor response WSMs.\n"
4341  "\n"
4342  "Usage: Set by sensor response methods.\n"
4343  "\n"
4344  "Unit: [ degrees ]\n"),
4345  GROUP("Matrix")));
4346 
4347  wsv_data.push_back(WsvRecord(
4348  NAME("sensor_response_dlos_grid"),
4349  DESCRIPTION(
4350  "The zenith and azimuth angles associated with *sensor_response*.\n"
4351  "\n"
4352  "A variable for communication between sensor response WSMs. Matches\n"
4353  "initially *mblock_dlos_grid*, but is later adjusted according to the\n"
4354  "sensor specifications. Only defined when a common grid exists. Values\n"
4355  "are here not repeated as in *sensor_response_dlos*\n"
4356  "\n"
4357  "Usage: Set by sensor response methods.\n"
4358  "\n"
4359  "Unit: [ degrees ]\n"),
4360  GROUP("Matrix")));
4361 
4362  wsv_data.push_back(WsvRecord(
4363  NAME("sensor_response_f"),
4364  DESCRIPTION(
4365  "The frequencies associated with the output of *sensor_response*.\n"
4366  "\n"
4367  "This vector gives the frequency for each element of the measurement\n"
4368  "vector produced inside one measurement block. The frequencies of\n"
4369  "the total measurement vector, *y*, are obtained by repeating these\n"
4370  "frequencies n times, where n is the number of measurement blocks\n"
4371  "(e.g. the number of rows in *sensor_pos*).\n"
4372  "\n"
4373  "The variable shall not be set manually, it will be set together with\n"
4374  "*sensor_response* by sensor response WSMs.\n"
4375  "\n"
4376  "Usage: Set by sensor response methods.\n"
4377  "\n"
4378  "Unit: [ Hz ]\n"),
4379  GROUP("Vector")));
4380 
4381  wsv_data.push_back(WsvRecord(
4382  NAME("sensor_response_f_grid"),
4383  DESCRIPTION(
4384  "The frequency grid associated with *sensor_response*.\n"
4385  "\n"
4386  "A variable for communication between sensor response WSMs. Matches\n"
4387  "initially *f_grid*, but is later adjusted according to the sensor\n"
4388  "specifications. Only defined when a common grid exists. Values are\n"
4389  "here not repeated as in *sensor_response_f*\n"
4390  "\n"
4391  "Usage: Set by sensor response methods.\n"
4392  "\n"
4393  "Unit: [ Hz ]\n"),
4394  GROUP("Vector")));
4395 
4396  wsv_data.push_back(WsvRecord(
4397  NAME("sensor_response_pol"),
4398  DESCRIPTION(
4399  "The polarisation states associated with the output of\n"
4400  "*sensor_response*.\n"
4401  "\n"
4402  "Works basically as *sensor_response_f*.\n"
4403  "\n"
4404  "See *instrument_pol* for coding of polarisation states.\n"
4405  "\n"
4406  "The variable shall not be set manually, it will be set together with\n"
4407  "*sensor_response* by sensor response WSMs.\n"
4408  "\n"
4409  "Usage: Set by sensor response methods.\n"
4410  "\n"
4411  "Unit: [ - ]\n"),
4412  GROUP("ArrayOfIndex")));
4413 
4414  wsv_data.push_back(WsvRecord(
4415  NAME("sensor_response_pol_grid"),
4416  DESCRIPTION(
4417  "The \"polarisation grid\" associated with *sensor_response*.\n"
4418  "\n"
4419  "A variable for communication between sensor response WSMs. It is\n"
4420  "initially 1:stokes_dim, but can later adjusted according to the \n"
4421  "sensor specifications. Only defined when a common grid exists. \n"
4422  "\n"
4423  "See *instrument_pol* for coding of polarisation states.\n"
4424  "\n"
4425  "Usage: Set by sensor response methods.\n"
4426  "\n"
4427  "Unit: [ - ]\n"),
4428  GROUP("ArrayOfIndex")));
4429 
4430  wsv_data.push_back(WsvRecord(
4431  NAME("sensor_time"),
4432  DESCRIPTION(
4433  "The time for each measurement block.\n"
4434  "\n"
4435  "This WSV is used when a time must be assigned to the measurements.\n"
4436  "No specific time format has (yet) been specified.\n"
4437  "\n"
4438  "Usage: Set by the user.\n"
4439  "\n"
4440  "Unit: [ arbitrary ]\n"
4441  "\n"
4442  "Size: [ number of measurement blocks ]\n"),
4443  GROUP("Vector")));
4444 
4445  wsv_data.push_back(WsvRecord(
4446  NAME("sideband_mode"),
4447  DESCRIPTION(
4448  "Description of target sideband.\n"
4449  "\n"
4450  "A text string describing which of the two sidebands (of a heterodyne\n"
4451  "instrument) that can be seen as \"main\" band. Possible choices are:\n"
4452  " \"lower\" : Low frequency sideband shall be considered as target.\n"
4453  " \"upper\" : High frequency sideband shall be considered as target.\n"
4454  "\n"
4455  "Usage: Set by the user.\n"),
4456  GROUP("String")));
4457 
4458  wsv_data.push_back(WsvRecord(
4459  NAME("sideband_mode_multi"),
4460  DESCRIPTION(
4461  "Description of target sideband for a multiple LO receiver.\n"
4462  "\n"
4463  "As *sideband_mode* but handles an instrument with several LO chains.\n"
4464  "See further *lo_multi* and *sideband_response_multi*. This length of\n"
4465  "this array must match the size of those WSVs.\n"
4466  "\n"
4467  "Usage: Set by the user.\n"),
4468  GROUP("ArrayOfString")));
4469 
4470  wsv_data.push_back(WsvRecord(
4471  NAME("sideband_response"),
4472  DESCRIPTION(
4473  "Description of (mixer) sideband response.\n"
4474  "\n"
4475  "This variable describes the response of each sideband of a heterodyne\n"
4476  "receiver. The response is given as a GriddedField1, with frequency as the\n"
4477  "grid. The actual data describe the sideband filter function at each\n"
4478  "frequency grid point. An interpolation is applied to obtain the\n"
4479  "response for other frequencies.\n"
4480  "\n"
4481  "The frequency grid should be given in terms of IF, with end points\n"
4482  "symmetrically placed around zero. That is, the grid must contain\n"
4483  "both negative and positive values. The sideband response (after \n"
4484  "summation with *lo*) is not allowed to extend outside the range\n"
4485  "for which spectral data exist (normally determined by *f_grid*).\n"
4486  "\n"
4487  "Usage: Set by the user.\n"
4488  "\n"
4489  "Dimensions: \n"
4490  " GriddedField1:\n"
4491  " Vector f_grid[N_f]\n"
4492  " Vector data[N_f]\n"),
4493  GROUP("GriddedField1")));
4494 
4495  wsv_data.push_back(WsvRecord(
4496  NAME("sideband_response_multi"),
4497  DESCRIPTION(
4498  "Description of multiple (mixer) sideband responses.\n"
4499  "\n"
4500  "As *sideband_response* but describes an instrument with multiple\n"
4501  "mixers. An array element for each LO. The size of this variable and\n"
4502  "*lo_multi* shall match.\n"
4503  "\n"
4504  "Unit: Hz\n"
4505  "\n"
4506  "Usage: Set by the user.\n"),
4507  GROUP("ArrayOfGriddedField1")));
4508 
4509  wsv_data.push_back(WsvRecord(
4510  NAME("spectral_irradiance_field"),
4511  DESCRIPTION(
4512  "Spectral irradiance field.\n"
4513  "\n"
4514  "Spectral irradiance is the radiative power per unit area\n"
4515  "and unit frequency. The last dimension denotes the hemispheres.\n"
4516  "The first component denotes the downward direction and the second\n"
4517  "component denotes the upward direction\n"
4518  "\n"
4519  "Units: W m^-2 Hz^-1\n"
4520  "\n"
4521  " Size: [Nf,\n"
4522  " (cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
4523  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
4524  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"
4525  " 2]\n"),
4526  GROUP("Tensor5")));
4527 
4528  wsv_data.push_back(WsvRecord(
4529  NAME("spectral_radiance_field"),
4530  DESCRIPTION(
4531  "Spectral radiance field.\n"
4532  "\n"
4533  "This variable holds a calculation of the radiance field through\n"
4534  "the atmosphere, for the directions matching *za_grid* and *aa_grid*.\n"
4535  "\n"
4536  "Don't confuse this variable with *cloudbox_field*. That varinale also\n"
4537  "holds a field of spectral radiances, but is restricted to the cloud box.\n"
4538  "\n"
4539  "Units: W / (m^2 Hz sr)\n"
4540  "\n"
4541  " Size: [f_grid,\n"
4542  " p_grid, \n"
4543  " lat_grid, \n"
4544  " lon_grid, \n"
4545  " za_grid,\n"
4546  " aa_grid,\n"
4547  " stokes_dim ]\n"
4548  "\n"
4549  "Note: For 1D, the size of the latitude, longitude and azimuth\n"
4550  "dimension (N_aa) are all 1.\n"),
4551  GROUP("Tensor7")));
4552 
4553  wsv_data.push_back(WsvRecord(
4554  NAME("specific_heat_capacity"),
4555  DESCRIPTION("Specific heat capacity.\n"
4556  "\n"
4557  "It is the heat capacity per unit \n"
4558  "mass of a material.\n"
4559  "Units: K J^-1 kg^-1\n"
4560  "\n"
4561  "Size: [(cloudbox_limits[1] - cloudbox_limits[0]) +1, \n"
4562  " (cloudbox_limits[3] - cloudbox_limits[2]) +1, \n"
4563  " (cloudbox_limits[5] - cloudbox_limits[4]) +1, \n"),
4564  GROUP("Tensor3")));
4565 
4566  wsv_data.push_back(WsvRecord(
4567  NAME("specular_los"),
4568  DESCRIPTION(
4569  "The specular direction (for reflection by a flat surface).\n"
4570  "\n"
4571  "The specular direction as a standard line-of-sight vector, consisting\n"
4572  "of a zenith and azimuth angle (the later only for 3D).\n"
4573  "\n"
4574  "Units: degrees\n"
4575  "\n"
4576  "Size: [ 1 or 2 ]\n"),
4577  GROUP("Vector")));
4578 
4579  wsv_data.push_back(WsvRecord(
4580  NAME("spt_calc_agenda"),
4581  DESCRIPTION(
4582  "Agenda calculating single scattering properties from the amplitude matrix.\n"),
4583  GROUP("Agenda")));
4584 
4585  wsv_data.push_back(
4586  WsvRecord(NAME("stokes_dim"),
4587  DESCRIPTION("The dimensionality of the Stokes vector (1-4).\n"
4588  "\n"
4589  "Usage: Set by the user.\n"),
4590  GROUP("Index")));
4591 
4592  wsv_data.push_back(WsvRecord(
4593  NAME("src_xsec_per_species"),
4594  DESCRIPTION(
4595  "Absorption cross sections for the source function for NLTE calculations.\n"
4596  "\n"
4597  "This variable contains absorption cross section xsec individually for\n"
4598  "each tag group. The Array contains one matrix for each tag group, the\n"
4599  "matrix format is the same as that of abs_coef.\n"
4600  "\n"
4601  "Dimensions: [abs_species](f_grid, abs_p), or\n"
4602  " (0, 0)"
4603  "\n"
4604  "Unit: m^2 (alpha = xsec * n * VMR),\n"
4605  " where n is total density.\n"),
4606  GROUP("ArrayOfMatrix")));
4607 
4608  wsv_data.push_back(WsvRecord(
4609  NAME("src_coef"),
4610  DESCRIPTION(
4611  "The matrix of total scalar absorption coefficients for source.\n"
4612  "\n"
4613  "Contains the gas absorption summed over all species as a function of\n"
4614  "*f_grid* and *abs_p*, i.e., for a single atmospheric profile.\n"
4615  "\n"
4616  "This variable is not used explicitly in a standard calculation, where\n"
4617  "absorption comes from the lookup table *abs_lookup*. However, it is\n"
4618  "useful for testing the methods that actually calculate line-by-line\n"
4619  "absorption, which have this variable as output. These methods are\n"
4620  "called internally by the method *abs_lookupCalc*, which generates\n"
4621  "the lookup table.\n"
4622  "\n"
4623  "Dimensions: [f_grid, abs_p]\n"
4624  "\n"
4625  "Unit: 1/m\n"),
4626  GROUP("Matrix")));
4627 
4628  wsv_data.push_back(WsvRecord(
4629  NAME("src_coef_per_species"),
4630  DESCRIPTION(
4631  "Scalar absorption coefficients individually per tag group.\n"
4632  "\n"
4633  "The Array contains one matrix of absorption coefficients for each\n"
4634  "tag group, where the matrix format is the same as that of *src_coef*\n"),
4635  GROUP("ArrayOfMatrix")));
4636 
4637  wsv_data.push_back(WsvRecord(
4638  NAME("stokes_rotation"),
4639  DESCRIPTION(
4640  "Rotation of the Stokes H and V directions.\n"
4641  "\n"
4642  "This variable allows to introduce a rotation of the Stokes coordinate\n"
4643  "system. Such a rotation could be needed to handle the scanning\n"
4644  "procedure of some instruments, such as AMSU-A. The variable is\n"
4645  "applied by the *sensor_responseStokesRotation* WSM.\n"
4646  "\n"
4647  "The rotation is given as an angle for each direction. In general, the\n"
4648  "number of rotations to be specified follows *sensor_response_dlos_grid*.\n"
4649  "In more detail, if no antenna is included or a 1D antenna is used, and\n"
4650  "the rotation is applied before the antenna is included in \n"
4651  "*sensor_response*, there should be one angle for each row of\n"
4652  "*mblock_dlos_grid*. After inclusion of an antenna response, the relevant\n"
4653  "number of angles is determined by the rows of *antenna_dlos*.\n"
4654  "\n"
4655  "It is assumed that the rotation is common for all frequency elements.\n"
4656  "\n"
4657  "Units: degrees\n"
4658  "\n"
4659  "Size: [ number of directions ]\n"
4660  "\n"
4661  "Usage: Set by the user.\n"),
4662  GROUP("Vector")));
4663 
4664  wsv_data.push_back(WsvRecord(
4665  NAME("surface_complex_refr_index"),
4666  DESCRIPTION(
4667  "Complex refractive index of the surface, at a single point.\n"
4668  "\n"
4669  "See *complex_refr_index* for the expected format and how the data\n"
4670  "are treated.\n"),
4671  GROUP("GriddedField3")));
4672 
4673  wsv_data.push_back(WsvRecord(
4674  NAME("surface_emission"),
4675  DESCRIPTION(
4676  "The emission from the surface.\n"
4677  "\n"
4678  "See specific methods generating *surface_emission* and the user\n"
4679  "guide for more information.\n"
4680  "\n"
4681  "Dimensions: [ f_grid, stokes_dim ]\n"),
4682  GROUP("Matrix")));
4683 
4684  wsv_data.push_back(WsvRecord(
4685  NAME("surface_los"),
4686  DESCRIPTION(
4687  "Downwelling radiation directions to consider in surface reflection.\n"
4688  "\n"
4689  "The directions are given as a zenith and azimuth angle (the later\n"
4690  "only for 3D), following the definition of line-of-sights.\n"
4691  "\n"
4692  "Units: degrees\n"
4693  "\n"
4694  "Size: [ any number, 1 or 2 ]\n"),
4695  GROUP("Matrix")));
4696 
4697  wsv_data.push_back(WsvRecord(
4698  NAME("surface_normal"),
4699  DESCRIPTION(
4700  "The normal vector for a point at the surface.\n"
4701  "\n"
4702  "The vector is given as a zenith and azimuth (the later only for 3D)\n"
4703  "angle, following the definition of line-of-sights. For example,\n"
4704  "this vector is always [0] for 1D, as there is no surface topography\n"
4705  "for this atmospheric dimensionality.\n"
4706  "\n"
4707  "Units: degrees\n"
4708  "\n"
4709  "Size: [ 1 or 2 ]\n"),
4710  GROUP("Vector")));
4711 
4712  wsv_data.push_back(WsvRecord(
4713  NAME("surface_props_data"),
4714  DESCRIPTION(
4715  "Various surface properties.\n"
4716  "\n"
4717  "A general container for passing data to surface methods. Each surface\n"
4718  "property shall be specified on the grid set by *lat_grid* and *lon_grid*.\n"
4719  "\n"
4720  "The properties are identified by the accompanying variable\n"
4721  "*surface_props_names*.\n"
4722  "\n"
4723  "Size: [ number of props., lat_grid, lon_grid ]\n"),
4724  GROUP("Tensor3")));
4725 
4726  wsv_data.push_back(WsvRecord(
4727  NAME("surface_props_names"),
4728  DESCRIPTION(
4729  "Name on surface properties found in *surface_props_data*.\n"
4730  "\n"
4731  "Each string names a property in *surface_props_data*. The user is free\n"
4732  "to include data with any name, but the surface methods making use of\n"
4733  "*surface_props_data* expect data to be named in a specific way. See\n"
4734  "the documentation of each method for recognised choices.\n"
4735  "\n"
4736  "Size: [ number of props. ]\n"),
4737  GROUP("ArrayOfString")));
4738 
4739  wsv_data.push_back(WsvRecord(
4740  NAME("surface_rmatrix"),
4741  DESCRIPTION(
4742  "The reflection coefficients for the directions given by\n"
4743  "*surface_los* to the direction of interest.\n"
4744  "\n"
4745  "The rows and columns of this tensor holds the reflection\n"
4746  "coefficient matrix for one frequency and one LOS. The reflection\n"
4747  "coefficients shall take into accound the angular weighting of the\n"
4748  "downwelling radiation.\n"
4749  "\n"
4750  "See specific methods generating *surface_rmatrix* and the user guide\n"
4751  "for more information.\n"
4752  "\n"
4753  "Usage: Input to methods for *surface_rtprop_agenda*.\n"
4754  "\n"
4755  "Units: -\n"
4756  "\n"
4757  "Dimensions: [ surface_los, f_grid, stokes_dim, stokes_dim ]\n"),
4758  GROUP("Tensor4")));
4759 
4760  wsv_data.push_back(WsvRecord(
4761  NAME("surface_rtprop_agenda"),
4762  DESCRIPTION("Agenda providing radiative properties of the surface.\n"),
4763  GROUP("Agenda")));
4764 
4765  wsv_data.push_back(WsvRecord(
4766  NAME("surface_rtprop_agenda_array"),
4767  DESCRIPTION(
4768  "Description of surface radiative properties, divided into surface types.\n"),
4769  GROUP("ArrayOfAgenda")));
4770 
4771  wsv_data.push_back(
4772  WsvRecord(NAME("surface_rtprop_sub_agenda"),
4773  DESCRIPTION("Sub-agenda to *surface_rtprop_agenda*.\n"),
4774  GROUP("Agenda")));
4775 
4776  wsv_data.push_back(WsvRecord(
4777  NAME("surface_skin_t"),
4778  DESCRIPTION(
4779  "Surface skin temperature.\n"
4780  "\n"
4781  "This temperature shall be selected considering the radiative\n"
4782  "properties of the surface, and can differ from the \"bulk\"\n"
4783  "temperature.\n"
4784  "\n"
4785  "Usage: Input to methods for *surface_rtprop_agenda*.\n"),
4786  GROUP("Numeric")));
4787 
4788  wsv_data.push_back(WsvRecord(
4789  NAME("surface_reflectivity"),
4790  DESCRIPTION(
4791  "Surface reflectivity, for a given position and angle.\n"
4792  "\n"
4793  "This variable describes the surface reflectivity at one position\n"
4794  "and one incidence angle. It works as *surface_scalar_reflectivity*\n"
4795  "but is also defined for vector radiative transfer.\n"
4796  "\n"
4797  "The first dimension of the variable shall either match *f_grid* or\n"
4798  "be 1. The later case is interpreted as the reflectivity is the same\n"
4799  "for all frequencies.\n"
4800  "\n"
4801  "Usage: Input to some surface properties methods.\n"
4802  "\n"
4803  "Dimensions: [ f_grid or 1, stokes_dim, stokes_dim]\n"),
4804  GROUP("Tensor3")));
4805 
4806  wsv_data.push_back(WsvRecord(
4807  NAME("surface_rv_rh"),
4808  DESCRIPTION(
4809  "Surface reflectivity, described by rv and rh (power) reflectivities.\n"
4810  "\n"
4811  "This variable describes the surface reflectivity at one position\n"
4812  "and one incidence angle. For this position and angle, one or multiple\n"
4813  "combinations of rv and rh are specified, where rv and rh are the\n"
4814  "reflectivity for vertical and horizontal polarisation, respectively.\n"
4815  "\n"
4816  "This matrix shall always have two columns, where the first column\n"
4817  "holds rv values, and the second column rh. It is up to the user to\n"
4818  "make sure that data are put into the correct column, this can not\n"
4819  "be checked bu the methods using this WSV.\n"
4820  "\n"
4821  "The number of rows shall either match *f_grid* or be 1. The later case\n"
4822  "is interpreted as the reflectivities are the same for all frequencies.\n"
4823  "\n"
4824  "Usage: Input to some surface properties methods.\n"
4825  "\n"
4826  "Dimensions: [ f_grid or 1, 2]\n"),
4827  GROUP("Matrix")));
4828 
4829  wsv_data.push_back(WsvRecord(
4830  NAME("surface_scalar_reflectivity"),
4831  DESCRIPTION(
4832  "Surface reflectivity, assuming it can be described as a scalar value.\n"
4833  "\n"
4834  "This variable describes the surface reflectivity at one position\n"
4835  "and one incidence angle. For this position and angle, one or multiple\n"
4836  "scalar reflectivities are specified.\n"
4837  "\n"
4838  "The length of the vector shall either match *f_grid* or be 1. The \n"
4839  "later case is interpreted as the reflectivity is the same for all\n"
4840  "frequencies (ie. matches a constant vector).\n"
4841  "\n"
4842  "Usage: Input to some surface properties methods.\n"
4843  "\n"
4844  "Dimensions: [ f_grid or 1]\n"),
4845  GROUP("Vector")));
4846 
4847  wsv_data.push_back(
4848  WsvRecord(NAME("surface_type"),
4849  DESCRIPTION("Local surface type value.\n"
4850  "\n"
4851  "See *surface_type_mask* for details.\n"),
4852  GROUP("Index")));
4853 
4854  wsv_data.push_back(
4855  WsvRecord(NAME("surface_type_aux"),
4856  DESCRIPTION("Auxiliary variable to *surface_type*.\n"
4857  "\n"
4858  "See *surface_type_mask* for details.\n"),
4859  GROUP("Numeric")));
4860 
4861  wsv_data.push_back(WsvRecord(
4862  NAME("surface_type_mask"),
4863  DESCRIPTION(
4864  "Classification of the surface using a type coding.\n"
4865  "\n"
4866  "This variable gives a description of the surface using a type class\n"
4867  "coding. A common term for such a variable is \"surface mask\".\n"
4868  "\n"
4869  "The mask is a latitude and longtide field. The mask values are\n"
4870  "floating numbers, where the integer part is the type and the remainder\n"
4871  "can be used to provide auxilary information. In terms of the local\n"
4872  "variables, the mask values equal *surface_type* + *surface_type_aux*.\n"
4873  "\n"
4874  "There is no fixed type coding, it is up to the user to set up\n"
4875  "a consistent system. The critical point is in the agendas\n"
4876  "matching each surface type, that are denoted as iy_surface_sub_agendaX\n"
4877  "where X is the *surface_type* index.\n"
4878  "\n"
4879  "The surface type can be any integer (>=0) for which a corresponding\n"
4880  "agenda exists.\n"
4881  "\n"
4882  "Dimensions: \n"
4883  " GriddedField2:\n"
4884  " Vector Latitude [N_lat]\n"
4885  " Vector Longitude [N_lon]\n"
4886  " Matrix data [N_lat][N_lon]\n"),
4887  GROUP("GriddedField2")));
4888 
4889  wsv_data.push_back(WsvRecord(
4890  NAME("telsem_atlases"),
4891  DESCRIPTION(
4892  "TELSEM 2 emissivity atlases.\n"
4893  "\n"
4894  "Array should be filled with 12\n"
4895  "atlases, one for each month. Index 0 is January, index 11 December.\n"
4896  ""),
4897  GROUP("ArrayOfTelsemAtlas")));
4898 
4899  wsv_data.push_back(WsvRecord(
4900  NAME("tessem_neth"),
4901  DESCRIPTION(
4902  //FIXMEDOC Add more documentation?
4903  "TESSEM2 neural network parameters for horizontal polarization.\n"),
4904  GROUP("TessemNN")));
4905 
4906  wsv_data.push_back(WsvRecord(
4907  NAME("tessem_netv"),
4908  DESCRIPTION(
4909  //FIXMEDOC Add more documentation?
4910  "TESSEM2 neural network parameters for vertical polarization.\n"),
4911  GROUP("TessemNN")));
4912 
4913  wsv_data.push_back(
4914  WsvRecord(NAME("test_agenda"),
4915  DESCRIPTION("A dummy agenda for testing purposes.\n"
4916  "\n"
4917  "Only used for testing by developers.\n"),
4918  GROUP("Agenda")));
4919 
4920  wsv_data.push_back(
4921  WsvRecord(NAME("test_agenda_array"),
4922  DESCRIPTION("Array of agenda for TestArrayOfAgenda case.\n"
4923  "\n"
4924  "Only used for testing by developers.\n"),
4925  GROUP("ArrayOfAgenda")));
4926 
4927  wsv_data.push_back(WsvRecord(
4928  NAME("time"),
4929  DESCRIPTION("A time point.\n"),
4930  GROUP("Time")));
4931 
4932  wsv_data.push_back(WsvRecord(
4933  NAME("timer"),
4934  DESCRIPTION("Stores the starting time for time measurements.\n"),
4935  GROUP("Timer")));
4936 
4937  wsv_data.push_back(WsvRecord(
4938  NAME("time_grid"),
4939  DESCRIPTION("A grid of times. Should be increasing\n"),
4940  GROUP("ArrayOfTime")));
4941 
4942  wsv_data.push_back(WsvRecord(
4943  NAME("time_stamps"),
4944  DESCRIPTION("A set of times. Can be in random order\n"),
4945  GROUP("ArrayOfTime")));
4946 
4947  wsv_data.push_back(WsvRecord(
4948  NAME("transmitter_pos"),
4949  DESCRIPTION(
4950  "Transmitter positions.\n"
4951  "\n"
4952  "Used for radio link calculations and gives then the position of the\n"
4953  "transmitting device. The corresponding positions of the receiver are\n"
4954  "given by *sensor_pos*. The number of rows in *transmitter_pos* and\n"
4955  "*sensor_pos* must be equal.\n"
4956  "\n"
4957  "This WSV is also defined as *sensor_pos* regarding the content of the\n"
4958  "columns, accepted range for latitudes etc. With one exception, this\n"
4959  "WSV is demanded to have two columns also for 1D. The additional\n"
4960  "second value is the angular distance between the transmitter and the\n"
4961  "reciver. This angle is defined as \"latitude\" for 2D, with the\n"
4962  "sensor fixed at the angle of 0 degree.\n"
4963  "\n"
4964  "Each row this matrix defines *rte_pos2* for the measurement block,\n"
4965  "exactly as *sensor_pos* is translated to *rte_pos*.\n"
4966  "\n"
4967  "If no transmitter is involved in the calculations, the variable can\n"
4968  "be set to be empty.\n"
4969  "\n"
4970  "Usage: Set by the user.\n"
4971  "\n"
4972  "Unit: [ m, degrees, degrees ]\n"),
4973  GROUP("Matrix")));
4974 
4975  wsv_data.push_back(WsvRecord(
4976  NAME("t_field"),
4977  DESCRIPTION(
4978  "The field of atmospheric temperatures.\n"
4979  "\n"
4980  "This variable gives the atmospheric temperature at each crossing of\n"
4981  "the pressure, latitude and longitude grids.\n"
4982  "\n"
4983  "The temperature for a point between the grid crossings is obtained \n"
4984  "by (multi-)linear interpolation of the *t_field*.\n"
4985  "\n"
4986  "See further the ARTS user guide (AUG). Use the index to find where\n"
4987  "this variable is discussed. The variable is listed as a subentry to\n"
4988  "\"workspace variables\".\n"
4989  "\n"
4990  "Usage: Output of *AtmFieldsCalc*.\n"
4991  "\n"
4992  "Unit: K\n"
4993  "\n"
4994  "Dimensions: [ p_grid, lat_grid, lon_grid ]\n"),
4995  GROUP("Tensor3")));
4996 
4997  wsv_data.push_back(WsvRecord(
4998  NAME("nlte_field"),
4999  DESCRIPTION(
5000  "The field of NLTE temperatures and/or ratios.\n"
5001  "\n"
5002  "This variable gives the NLTE temperature/ratio at each crossing of\n"
5003  "the pressure, latitude and longitude grids. The size of the\n"
5004  "array is the number of NLTE levels in all molecules.\n"
5005  "\n"
5006  "The temperature/ratio for a point between the grid crossings is obtained \n"
5007  "by (multi-)linear interpolation of the *nlte_field*.\n"
5008  "\n"
5009  "There are two types of NLTE computations available in ARTS. One from\n"
5010  "giving excitiation temperatures that makes the absorption/emission diverge\n"
5011  "from LTE. The other is to use the absolute ratios of upper-to-lower states at\n"
5012  "the levels of interest.\n"
5013  ""
5014  "\n"
5015  "Units: [ K or \% ]]\n"
5016  "\n"
5017  "Dimensions: [ NLTE levels, p_grid, lat_grid, lon_grid ] or [ 0, 0, 0, 0 ]\n"),
5018  GROUP("EnergyLevelMap")));
5019 
5020  wsv_data.push_back(WsvRecord(
5021  NAME("t_field_raw"),
5022  DESCRIPTION(
5023  "Raw data for atmospheric temperatures.\n"
5024  "\n"
5025  "This variable gives the atmospheric temperature as stored in the \n"
5026  "database for the atmospheric scenarios.\n"
5027  "\n"
5028  "See further the ARTS user guide (AUG). Use the index to find where\n"
5029  "this variable is discussed. The variable is listed as a subentry to\n"
5030  "\"workspace variables\".\n"
5031  "\n"
5032  "Usage: Set by the user by choosing a climatology.\n"
5033  "\n"
5034  "Unit: K\n"
5035  "\n"
5036  "Size GriddedField3 \n "
5037  " [N_p] \n"
5038  " [N_lat] \n"
5039  " [N_lon] \n"
5040  " [N_p, N_lat, N_lon] \n"),
5041  GROUP("GriddedField3")));
5042 
5043  wsv_data.push_back(WsvRecord(
5044  NAME("nlte_field_raw"),
5045  ("Raw data for NLTE temperatures and/or ratios.\n"
5046  "\n"
5047  "This variable gives the NLTE temperature/ratio as stored in the \n"
5048  "database for the atmospheric scenarios.\n"
5049  "\n"
5050  "See further the ARTS user guide (AUG). Use the index to find where\n"
5051  "this variable is discussed. The variable is listed as a subentry to\n"
5052  "\"workspace variables\".\n"
5053  "\n"
5054  "Usage: Set by the user by choosing a climatology.\n"
5055  "\n"
5056  "Unit: K\n"
5057  "\n"
5058  "Size ArrayOfGriddedField3 \n "
5059  "array:\n"
5060  " [NLTE levels] or [ 0 ]\n"
5061  "fields:\n"
5062  " [N_p] \n"
5063  " [N_lat] \n"
5064  " [N_lon] \n"
5065  " [N_p, N_lat, N_lon] \n"),
5066  GROUP("ArrayOfGriddedField3")));
5067 
5068  wsv_data.push_back(WsvRecord(
5069  NAME("t_surface"),
5070  DESCRIPTION(
5071  "The surface temperature.\n"
5072  "\n"
5073  "This variable holds the temperature of the surface at each latitude\n"
5074  "and longitude grid crossing. The normal case should be that this \n"
5075  "temperature field is interpolated to obtain *surface_skin_t*.\n"
5076  "Accordingly, for 1D cases it could be a better idea to specify\n"
5077  "*surface_skin_t* directly.\n"
5078  "\n"
5079  "These temperature shall be selected considering the radiative\n"
5080  "properties of the surface, and can differ from the \"bulk\"\n"
5081  "temperatures.\n"
5082  "\n"
5083  "Usage: Set by user.\n"
5084  "\n"
5085  "Unit: K\n"
5086  "\n"
5087  "Dimensions: [ lat_grid, lon_grid ]\n"),
5088  GROUP("Matrix")));
5089 
5090  wsv_data.push_back(WsvRecord(
5091  NAME("verbosity"),
5092  DESCRIPTION(
5093  "ARTS verbosity.\n"
5094  "\n"
5095  "The verbosity variable is implicitly passed to all workspace methods.\n"
5096  "It can be used to dynamically control the reporting level during\n"
5097  "runtime.\n"
5098  "\n"
5099  "Usage: Set by user.\n"
5100  "\n"
5101  "See also: *verbosityInit*\n"
5102  " *verbositySet*\n"
5103  " *verbositySetAgenda*\n"
5104  " *verbositySetScreen*\n"
5105  " *verbositySetFile*\n"),
5106  GROUP("Verbosity")));
5107 
5108  wsv_data.push_back(WsvRecord(
5109  NAME("vmr_field"),
5110  DESCRIPTION(
5111  "VMR field.\n"
5112  "\n"
5113  "This variable gives the volume mixing ratio of the chosen gaseous \n"
5114  "species as a function of p_grid, lat_grid, lon_grid. \n"
5115  "\n"
5116  "See further the ARTS user guide (AUG). Use the index to find where\n"
5117  "this variable is discussed. The variable is listed as a subentry to\n"
5118  "\"workspace variables\".\n"
5119  "\n"
5120  "Units: [ Differ between the elements, can be VMR, kg/m3 or #/m3. ]\n"
5121  "\n"
5122  "Dimensions: [species, p_grid, lat_grid, lon_grid]\n"),
5123  GROUP("Tensor4")));
5124 
5125  wsv_data.push_back(WsvRecord(
5126  NAME("vmr_field_raw"),
5127  DESCRIPTION(
5128  "VMR data for the chosen gaseous species.\n"
5129  "\n"
5130  "This variable contains the volume mixing ratios (VMR) for all \n"
5131  "chosen gaseous species. It includes the grids corresponding to the \n"
5132  "grids in the database. \n"
5133  "*vmr_field_raw* is an Array of Array of Tensor3. It contains one \n"
5134  "gridded field for each species which contains the data and \n"
5135  "also the grids.\n"
5136  "For the calculation the data is \n"
5137  "interpolated on *p_grid*, *lat_grid* and *lon_grid*\n"
5138  "\n"
5139  "Usage: Output of *AtmRawRead*\n"
5140  " Input to *AtmFieldsCalc*.\n"
5141  "\n"
5142  "Unit: absolute number\n"
5143  "\n"
5144  "Size: Array[number of absorption species]\n"
5145  " GriddedField3 \n "
5146  " [N_p] \n"
5147  " [N_lat] \n"
5148  " [N_lon] \n"
5149  " [N_p, N_lat, N_lon] \n"),
5150  GROUP("ArrayOfGriddedField3")));
5151 
5152  wsv_data.push_back(WsvRecord(
5153  NAME("water_p_eq_agenda"),
5154  DESCRIPTION("Agenda to calculate the saturation pressure of water.\n"),
5155  GROUP("Agenda")));
5156 
5157  wsv_data.push_back(WsvRecord(
5158  NAME("water_p_eq_field"),
5159  DESCRIPTION(
5160  "The field of water saturation pressure.\n"
5161  "\n"
5162  "This variable holds the saturation pressure of water at each crossing of\n"
5163  "the pressure, latitude and longitude grids.\n"
5164  "\n"
5165  "Unit: Pa\n"
5166  "\n"
5167  "Dimensions: [ p_grid, lat_grid, lon_grid ]\n"),
5168  GROUP("Tensor3")));
5169 
5170  wsv_data.push_back(WsvRecord(
5171  NAME("wigner_initialized"),
5172  DESCRIPTION(
5173  "Indicates if the wigner tables are initialized.\n"
5174  "If they are not, computations will be aborted.\n"
5175  "\n"
5176  "Will hold the value of provided maximum factorial value\n"
5177  "\n"
5178  "The developer should always test this variable in functions\n"
5179  "that might require computing wigner symbols because the error\n"
5180  "handling is otherwise offloaded to third party software...\n"),
5181  GROUP("Index")));
5182 
5183  wsv_data.push_back(WsvRecord(
5184  NAME("wind_u_field"),
5185  DESCRIPTION(
5186  "Zonal component of the wind field.\n"
5187  "\n"
5188  "The East-West wind component. Air moving towards higher\n"
5189  "longitudes is a positive wind. This wind causes no Doppler shift\n"
5190  "for 1D and 2D simulations.\n"
5191  "\n"
5192  "Can be set to be empty, which is interpreted as zero wind speed\n"
5193  "everywhere.\n"
5194  "\n"
5195  "Unit: m/s\n"
5196  "\n"
5197  "Dimensions: [ p_grid, lat_grid, lon_grid ] or [ 0 0 0 ].\n"),
5198  GROUP("Tensor3")));
5199 
5200  wsv_data.push_back(WsvRecord(
5201  NAME("wind_u_field_raw"),
5202  DESCRIPTION(
5203  "Raw zonal component of the wind field.\n"
5204  "\n"
5205  "The East-West wind component. Air moving towards higher\n"
5206  "longitudes is a positive wind. This wind causes no Doppler shift\n"
5207  "for 1D and 2D simulations.\n"
5208  "\n"
5209  "Can be set to be empty, which is interpreted as zero wind speed\n"
5210  "everywhere.\n"
5211  "\n"
5212  "Unit: m/s\n"
5213  "\n"
5214  "Dimensions: [ p_grid, lat_grid, lon_grid ].\n"),
5215  GROUP("GriddedField3")));
5216 
5217  wsv_data.push_back(WsvRecord(
5218  NAME("wind_v_field"),
5219  DESCRIPTION(
5220  "Meridional component of the magnetic field.\n"
5221  "\n"
5222  "The North-South wind component. Air moving towards higher\n"
5223  "latitudes is a positive wind.\n"
5224  "\n"
5225  "Can be set to be empty, which is interpreted as zero wind speed\n"
5226  "everywhere.\n"
5227  "\n"
5228  "Unit: m/s\n"
5229  "\n"
5230  "Dimensions: [ p_grid, lat_grid, lon_grid ] or [ 0 0 0 ]\n"),
5231  GROUP("Tensor3")));
5232 
5233  wsv_data.push_back(WsvRecord(
5234  NAME("wind_v_field_raw"),
5235  DESCRIPTION(
5236  "Raw meridional component of the magnetic field.\n"
5237  "\n"
5238  "The North-South wind component. Air moving towards higher\n"
5239  "latitudes is a positive wind.\n"
5240  "\n"
5241  "Can be set to be empty, which is interpreted as zero wind speed\n"
5242  "everywhere.\n"
5243  "\n"
5244  "Unit: m/s\n"
5245  "\n"
5246  "Dimensions: [ p_grid, lat_grid, lon_grid ]\n"),
5247  GROUP("GriddedField3")));
5248 
5249  wsv_data.push_back(WsvRecord(
5250  NAME("wind_w_field"),
5251  DESCRIPTION(
5252  "Vertical wind component field.\n"
5253  "\n"
5254  "Upward moving air corresponds to a positive wind speed.\n"
5255  "\n"
5256  "Can be set to be empty, which is interpreted as zero wind speed\n"
5257  "everywhere.\n"
5258  "\n"
5259  "Unit: m/s\n"
5260  "\n"
5261  "Dimensions: [ p_grid, lat_grid, lon_grid ] or [ 0 0 0 ]\n"),
5262  GROUP("Tensor3")));
5263 
5264  wsv_data.push_back(WsvRecord(
5265  NAME("wind_w_field_raw"),
5266  DESCRIPTION(
5267  "Raw vertical wind component field.\n"
5268  "\n"
5269  "Upward moving air corresponds to a positive wind speed.\n"
5270  "\n"
5271  "Can be set to be empty, which is interpreted as zero wind speed\n"
5272  "everywhere.\n"
5273  "\n"
5274  "Unit: m/s\n"
5275  "\n"
5276  "Dimensions: [ p_grid, lat_grid, lon_grid ]\n"),
5277  GROUP("GriddedField3")));
5278 
5279  wsv_data.push_back(WsvRecord(
5280  NAME("wmrf_channels"),
5281  DESCRIPTION(
5282  "Channel selection for WMRF fast calculation.\n"
5283  "\n"
5284  "This variable can be used to select one or several instrument channels\n"
5285  "from the list of all possible channels. Zero-based indexing is used, so\n"
5286  "Channel 0 is the first instrument channel!\n"),
5287  GROUP("ArrayOfIndex")));
5288 
5289  wsv_data.push_back(WsvRecord(
5290  NAME("wmrf_weights"),
5291  DESCRIPTION(
5292  "The weights for a WMRF fast calculation.\n"
5293  "\n"
5294  "Weights are stored in a sparse matrix. This can be used as a\n"
5295  "sensor_response matrix.\n"
5296  "\n"
5297  "The dimension of the matrix is (nchan, nfreq), where nchan\n"
5298  "is the number of instrument channels and nfreq is the number\n"
5299  "of monochromatic frequencies.\n"),
5300  GROUP("Sparse")));
5301 
5302  wsv_data.push_back(WsvRecord(
5303  NAME("xml_output_type"),
5304  DESCRIPTION(
5305  "Flag to determine whether XML output shall be binary or ascii.\n"
5306  "\n"
5307  "This flag has to be set using the workspace method\n"
5308  "*output_file_formatSetAscii* or *output_file_formatSetBinary*.\n"
5309  "One of these methods MUST be called before writing the first\n"
5310  "output file.\n"
5311  "\n"
5312  "Usage: Set by user.\n"),
5313  GROUP("Index")));
5314 
5315  wsv_data.push_back(WsvRecord(
5316  NAME("x"),
5317  DESCRIPTION(
5318  "The state vector.\n"
5319  "\n"
5320  "This WSV matches directly the x-vector in the formalism by C.D. Rodgers.\n"
5321  "\n"
5322  "Inside *x*, the elements matching one retrieval quantity, such as\n"
5323  "atmospheric temperatures, are kept together. That is, each retrieval\n"
5324  "quantity covers a continuous range inside *x*. The start and index of\n"
5325  "these ranges can be deduced by *jacobian_quantities* (see function(s)\n"
5326  "inside jacobian.cc for details).\n"
5327  "\n"
5328  "The order of elements inside each retrieval quantity should be clarified\n"
5329  "by corresponding \"adding\" method, i.e. *jacobianAddTemperature* for\n"
5330  "atmospheric temperatures. The general rule is that data are sorted from\n"
5331  "left to right with respect to the order in the corresponding WSV. For\n"
5332  "example, inside *x* atmospheric data are stored with pressure as inner-\n"
5333  "most loop, followed by latitude and longitude as outermost loop.\n"
5334  "\n"
5335  "Usage: Used by inversion methods.\n"
5336  "\n"
5337  "Unit: Varies, follows unit of selected retrieval quantities.\n"),
5338  GROUP("Vector")));
5339 
5340  wsv_data.push_back(WsvRecord(
5341  NAME("xa"),
5342  DESCRIPTION(
5343  "The a priori state vector.\n"
5344  "\n"
5345  "This WSV matches directly the x_a-vector in the formalism by C.D. Rodgers.\n"
5346  "\n"
5347  "Usage: Used by inversion methods.\n"
5348  "\n"
5349  "Unit: Varies, follows unit of selected retrieval quantities.\n"),
5350  GROUP("Vector")));
5351 
5352  wsv_data.push_back(WsvRecord(
5353  NAME("y"),
5354  DESCRIPTION(
5355  "The measurement vector.\n"
5356  "\n"
5357  "This vector holds radiances averaged in frequency and spatially,\n"
5358  "and can contain many spectra appended. That is, this WSV matches\n"
5359  "directly the y-vector in the formalism by C.D. Rodgers.\n"
5360  "\n"
5361  "The polarisation, frequency, position and line-of-sight associated\n"
5362  "with each element in *y* are given by *y_pol*, *y_f*, *y_pos* and\n"
5363  "*y_los*. For monochromatic pencil beam radiances, data are sorted\n"
5364  "in the following way, from the innermost to the outermost loop\n"
5365  " Stokes\n"
5366  " Frequency\n"
5367  " LOS inside the measurement block\n"
5368  " Measurement block\n"
5369  "With sensor response included, the order can be differ. As output\n"
5370  "of *yActive*, the order will also be different.\n"
5371  "\n"
5372  "Usage: Output from radiative transfer calculations considering\n"
5373  " sensor response.\n"
5374  "\n"
5375  "Unit: Undefined. Possibilities include: K, W/(m^2 Hz sr) and\n "
5376  " optical thickness.\n"),
5377  GROUP("Vector")));
5378 
5379  wsv_data.push_back(WsvRecord(
5380  NAME("y_aux"),
5381  DESCRIPTION(
5382  "Data auxilary to *y*.\n"
5383  "\n"
5384  "Different data beside the direct result of the radiative transfer\n"
5385  "calculations can be obtained by this variable. These auxilary data\n"
5386  "are selected by *iy_aux_vars*.\n"
5387  "\n"
5388  "In contrast to *iy_aux*, this variable can only hold quantities such\n"
5389  "as optical depth, and other quantites that could be the result\n"
5390  "of a complete radiative transfer calculation. The data are weighted\n"
5391  "with sensor properties in the same way as for *y*.\n"
5392  "\n"
5393  "See also *iy_aux_vars*.\n"
5394  "\n"
5395  "Usage: Output of *yCalc*.\n"
5396  "\n"
5397  "Dimensions: [quantity][ element of y ]\n"),
5398  GROUP("ArrayOfVector")));
5399 
5400  wsv_data.push_back(WsvRecord(
5401  NAME("y_baseline"),
5402  DESCRIPTION(
5403  "The baseline of *y*.\n"
5404  "\n"
5405  "In retrieval \"lingo\", the baseline is an addiative disturbance of\n"
5406  "the measured spectrum. That is, it can be seen as a shift (from zero)\n"
5407  "of measurement. Reflections inside microwave receivers is one source to\n"
5408  "a baseline off-set.\n"
5409  "\n"
5410  "So far there is no module in ARTS that actually tries to physically model\n"
5411  "any baseline effect. *y_baseline* is just used as a pure fitting parameter\n"
5412  "in retrievals. One example on method to include a baseline fit is \n"
5413  "*jacobianAddPolyfit*.\n"
5414  "\n"
5415  "If the baseline is totally constant, it is allowed to set *y_baseline*\n"
5416  "to have length one, with this element set to the baseline value.\n"
5417  "\n"
5418  "Usage: Output of retrievals.\n"
5419  "\n"
5420  "Unit: Same as applied for *y*.\n"),
5421  GROUP("Vector")));
5422 
5423  wsv_data.push_back(WsvRecord(
5424  NAME("y_f"),
5425  DESCRIPTION(
5426  "The frequencies associated with *y*.\n"
5427  "\n"
5428  "A value is returned for each element of *y*. Depending on the sensor\n"
5429  "set-up and number of measurement blocks, this can be a copy of\n"
5430  "*sensor_response_f*, sveral copies of this vector appended, or some\n"
5431  "other frequenices.\n"
5432  "\n"
5433  "Don't confuse this variable with *yf*.\n"
5434  "\n"
5435  "Usage: Output from radiative transfer calculations considering\n"
5436  " sensor response.\n"
5437  "\n"
5438  "Unit: [ Hz ]\n"),
5439  GROUP("Vector")));
5440 
5441  wsv_data.push_back(WsvRecord(
5442  NAME("y_geo"),
5443  DESCRIPTION(
5444  "The geo-positioning associated with *y*.\n"
5445  "\n"
5446  "The columns of this matrix matches the elements of *geo_pos*.\n"
5447  "\n"
5448  "If no geo-position is obtained (i.e. *geo_pos_agenda* sets *geo_pos*\n"
5449  "to be empty), all elements of *y_geo* is set to NaN.\n"
5450  "\n"
5451  "Unit: [ m, deg, deg, deg, deg ]\n"),
5452  GROUP("Matrix")));
5453 
5454  wsv_data.push_back(WsvRecord(
5455  NAME("y_los"),
5456  DESCRIPTION(
5457  "The line-of-sights associated with *y*.\n"
5458  "\n"
5459  "Definition of angles matches *sensor_los* (such as first column holds\n"
5460  "zenith angles), but gives actual observed LOS. That is, the values of\n"
5461  "both *sensor_los* and *antenna_dlos* are considered. Data are provided\n"
5462  "for each element of *y*, following y_f, and the number of rows equals\n"
5463  "the length of *y*.\n"
5464  "\n"
5465  "Usage: Output from radiative transfer calculations considering\n"
5466  " sensor response.\n"
5467  "\n"
5468  "Unit: [ degrees, degrees ]\n"),
5469  GROUP("Matrix")));
5470 
5471  wsv_data.push_back(WsvRecord(
5472  NAME("y_pol"),
5473  DESCRIPTION(
5474  "The polarisation states associated with *y*.\n"
5475  "\n"
5476  "Data are provided for each element of *y*, following y_f, and the\n"
5477  "length of this variable and *y* is equal.\n"
5478  "\n"
5479  "See *instrument_pol* for coding of polarisation components.\n"
5480  "\n"
5481  "Usage: Output from radiative transfer calculations considering\n"
5482  " sensor response.\n"
5483  "\n"
5484  "Unit: [ - ]\n"),
5485  GROUP("ArrayOfIndex")));
5486 
5487  wsv_data.push_back(WsvRecord(
5488  NAME("y_pos"),
5489  DESCRIPTION(
5490  "The sensor positions associated with *y*.\n"
5491  "\n"
5492  "Definition of positions matches *sensor_pos* (such as first column\n"
5493  "holds the altitude). Data are provided for each element of *y*,\n"
5494  "following y_f, and the number of rows equals the length of *y*.\n"
5495  "\n"
5496  "Usage: Output from radiative transfer calculations considering\n"
5497  " sensor response.\n"
5498  "\n"
5499  "Unit: [ m, deg, deg ]\n"),
5500  GROUP("Matrix")));
5501 
5502  wsv_data.push_back(WsvRecord(
5503  NAME("yb"),
5504  DESCRIPTION(
5505  "The measurement vector for a single measurement block.\n"
5506  "\n"
5507  "Exactly as *y*, but holds data only for a single measurement block.\n"
5508  "\n"
5509  "Usage: Used internally.\n"),
5510  GROUP("Vector")));
5511 
5512  wsv_data.push_back(WsvRecord(
5513  NAME("ybatch"),
5514  DESCRIPTION(
5515  "Batch of spectra.\n"
5516  "\n"
5517  "Each element of *ybatch* corresponds to a spectrum vector *y*. \n"
5518  "See further *ybatchCalc*.\n"
5519  "\n"
5520  "Usage: Most commonly produced by *ybatchCalc*.\n"
5521  "\n"
5522  "Unit: Undefined. Possibilities include: K, W/(m^2 Hz sr) and\n "
5523  " optical thickness.\n"
5524  "\n"
5525  "Dimensions: Number of array elements equals number of batch cases,\n"
5526  " Vectors have length(y)\n"),
5527  GROUP("ArrayOfVector")));
5528 
5529  wsv_data.push_back(WsvRecord(
5530  NAME("ybatch_aux"),
5531  DESCRIPTION(
5532  "Data auxilary to *ybatch*.\n"
5533  "\n"
5534  "Each element of *ybatch_aux* corresponds to a auxiliary data *y_aux*. \n"
5535  "See further *y_aux* and *ybatchCalc*.\n"
5536  "\n"
5537  "Usage: Most commonly produced by *ybatchCalc*.\n"
5538  "\n"
5539  "Dimensions: Number of array elements equals number of batch cases,\n"),
5540  GROUP("ArrayOfArrayOfVector")));
5541 
5542  wsv_data.push_back(WsvRecord(
5543  NAME("ybatch_calc_agenda"),
5544  DESCRIPTION(
5545  "Agenda defining the calculations to perform for each batch case.\n"),
5546  GROUP("Agenda")));
5547 
5548  wsv_data.push_back(WsvRecord(
5549  NAME("ybatch_index"),
5550  DESCRIPTION("Index of batch case.\n"
5551  "\n"
5552  "See further *ybatchCalc*.\n"
5553  "\n"
5554  "Usage: Set by *ybatchCalc*, for communication with\n"
5555  " *ybatch_calc_agenda*.\n"),
5556  GROUP("Index")));
5557 
5558  wsv_data.push_back(WsvRecord(
5559  NAME("ybatch_corr"),
5560  DESCRIPTION(
5561  "Correction terms for *ybatch*.\n"
5562  "\n"
5563  "Dimensions: Number of array elements equals number of batch cases,\n"
5564  " Vectors have length depending on correction method\n"),
5565  GROUP("ArrayOfVector")));
5566 
5567  wsv_data.push_back(WsvRecord(
5568  NAME("ybatch_jacobians"),
5569  DESCRIPTION("All the Jacobians associated with ybatch.\n"
5570  "\n"
5571  "The batch index here is the array dimension.\n"
5572  "\n"
5573  "Usage: Most commonly produced by *ybatch*.\n"
5574  "\n"
5575  "Unit: Depends on unit of y and on Jacobian type.\n"
5576  "\n"
5577  "Dimensions: [number of batch cases] \n"
5578  " (length(y), \n"
5579  " number of retrieval quantities and grids)\n"),
5580  GROUP("ArrayOfMatrix")));
5581 
5582  wsv_data.push_back(
5583  WsvRecord(NAME("ybatch_n"),
5584  DESCRIPTION("Number of batch cases for *ybatchCalc*.\n"
5585  "\n"
5586  "See further *ybatchCalc*.\n"
5587  "\n"
5588  "Usage: Input to *ybatchCalc*.\n"),
5589  GROUP("Index")));
5590 
5591  wsv_data.push_back(WsvRecord(
5592  NAME("ybatch_start"),
5593  DESCRIPTION("Start index for *ybatchCalc*.\n"
5594  "\n"
5595  "This is set to a default of zero in *general.arts*.\n"
5596  "\n"
5597  "See further *ybatchCalc*.\n"
5598  "\n"
5599  "Usage: Input to *ybatchCalc*.\n"),
5600  GROUP("Index")));
5601 
5602  wsv_data.push_back(WsvRecord(
5603  NAME("yf"),
5604  DESCRIPTION(
5605  "A fitted measurement vector.\n"
5606  "\n"
5607  "This WSV is the measurement vector matching the retrieved state, i.e.\n"
5608  "the spectrum of the fit.\n"
5609  "\n"
5610  "Don't confuse this variable with *y_f*.\n"
5611  "\n"
5612  "Usage: Output from inversion methods.\n"),
5613  GROUP("Vector")));
5614 
5615  wsv_data.push_back(WsvRecord(
5616  NAME("za_grid"),
5617  DESCRIPTION(
5618  "Zenith angle grid.\n"
5619  "\n"
5620  "The zenith angle grid, on which the intensity field is stored. \n"
5621  "This grid is used for RT calculations inside the cloudbox, therefore\n"
5622  "the grid has to be defined\n"
5623  "if the cloudbox is activated by the flag *cloudbox_on*.\n"
5624  "The grid must be sorted in increasing order, with no repetitions.\n"
5625  "\n"
5626  "Usage: Set by the user.\n"
5627  "\n"
5628  "Unit: degrees \n"),
5629  GROUP("Vector")));
5630 
5631  wsv_data.push_back(WsvRecord(NAME("za_grid_weights"),
5632  DESCRIPTION("TBD.\n"
5633  "\n"
5634  "Unit: unitless\n"),
5635  GROUP("Vector")));
5636 
5637  wsv_data.push_back(WsvRecord(
5638  NAME("za_index"),
5639  DESCRIPTION(
5640  "Zenith angle index for scattering calculations.\n"
5641  " \n"
5642  "This variable is used internally in WSMs for computing scattering \n"
5643  "properties. \n"
5644  "\n"
5645  "Usage: Input to the agendas *spt_calc_agenda*, \n "
5646  " *pha_mat_spt_agenda*.\n"),
5647  GROUP("Index")));
5648 
5649  wsv_data.push_back(WsvRecord(
5650  NAME("z_field"),
5651  DESCRIPTION(
5652  "The field of geometrical altitudes.\n"
5653  "\n"
5654  "This variable gives the geometrical altitude, above the ellipsoid, of\n"
5655  "each crossing of the pressure, latitude and longitude grids. For 1D\n"
5656  "cases the altitudes give the geometrical position of the pressure\n"
5657  "levels.\n"
5658  "\n"
5659  "For each geographical position (lat,lon), the values must be sorted\n"
5660  "in increasing order, with no repetitions. Otherwise the altitudes\n"
5661  "can be set to arbitrary values. Hydrostatic equilibrium is not\n"
5662  "applied automatically. If hydrostatic equilibrium applies, *z_field*\n"
5663  "must be set by a method ensuring that this criterium is fulfilled.\n"
5664  "\n"
5665  "The radius (from the coordinate centre) for a point between the grid\n"
5666  "crossings is obtained by a (multi-)linear interpolation of the sum\n"
5667  "of the ellipsoid radius and *z_field*.\n"
5668  "\n"
5669  "See further the ARTS user guide (AUG). Use the index to find where\n"
5670  "this variable is discussed. The variable is listed as a subentry to\n"
5671  "\"workspace variables\".\n"
5672  "\n"
5673  "Usage: Output of *AtmFieldsCalc*\n"
5674  "\n"
5675  "Unit: m\n"
5676  "\n"
5677  "Dimensions: [ p_grid, lat_grid, lon_grid ]\n"),
5678  GROUP("Tensor3")));
5679 
5680  wsv_data.push_back(WsvRecord(
5681  NAME("z_field_raw"),
5682  DESCRIPTION(
5683  "Raw data for geometrical altitudes.\n"
5684  "\n"
5685  "This variable gives the geometrical altitudes as stored in the \n"
5686  "database for atmospheric scenarios.\n"
5687  "\n"
5688  "See further the ARTS user guide (AUG). Use the index to find where\n"
5689  "this variable is discussed. The variable is listed as a subentry to\n"
5690  "\"workspace variables\".\n"
5691  "\n"
5692  "Usage: Set by the user by choosing a climatology.\n"
5693  "\n"
5694  "Unit: K\n"
5695  "\n"
5696  "Size GriddedField3 \n "
5697  " [N_p] \n"
5698  " [N_lat] \n"
5699  " [N_lon] \n"
5700  " [N_p, N_lat, N_lon] \n"),
5701  GROUP("GriddedField3")));
5702 
5703  wsv_data.push_back(WsvRecord(
5704  NAME("z_hse_accuracy"),
5705  DESCRIPTION(
5706  "Minimum accuracy for calculation of hydrostatic equilibrium.\n"
5707  "\n"
5708  "Usage: Set by the user.\n"
5709  "\n"
5710  "Unit: m\n"),
5711  GROUP("Numeric")));
5712 
5713  wsv_data.push_back(WsvRecord(
5714  NAME("z_surface"),
5715  DESCRIPTION(
5716  "The surface altitude.\n"
5717  "\n"
5718  "This variable defines the shape of the surface, by giving the\n"
5719  "geometrical altitude above the geiod for each crossing of the \n"
5720  "latitude and longitude grids. Any shape of the surface is accepted.\n"
5721  "No gap between the surface and the lowermost pressure level is \n"
5722  "allowed.\n"
5723  "\n"
5724  "The radius (from the coordinate centre) for a point between the grid\n"
5725  "crossings is obtained by a linear (1D) or bi-linear (2D) \n"
5726  "interpolation of the sum of the ellipsoid radius and *z_surface*.\n"
5727  "That is, the radius for the surface is assumed to vary linear along \n"
5728  "the latitudes and longitudes in *lat_grid* and *lon_grid*.\n"
5729  "\n"
5730  "See further the ARTS user guide (AUG). Use the index to find where\n"
5731  "this variable is discussed. The variable is listed as a subentry to\n"
5732  "\"workspace variables\".\n"
5733  "\n"
5734  "Usage: Set by user.\n"
5735  "\n"
5736  "Unit: m\n"
5737  "\n"
5738  "Dimensions: [ lat_grid, lon_grid ]\n"),
5739  GROUP("Matrix")));
5740 }
5741 
5743 
5751 Index get_wsv_id(const String& name) {
5752  map<String, Index>::const_iterator it = Workspace::WsvMap.find(name);
5753  if (it == Workspace::WsvMap.end())
5754  return -1;
5755  else
5756  return it->second;
5757 }
5758 
5760 
5771 Index get_wsv_id(const char* name) { return get_wsv_id(String(name)); }
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
static Array< WsvRecord > wsv_data
Global WSV data.
Definition: workspace_ng.h:58
#define NAME(x)
Definition: workspace.cc:35
#define DESCRIPTION(x)
Definition: workspace.cc:36
#define GROUP(x)
Definition: workspace.cc:37
This file contains the Workspace class.
static void define_wsv_data()
Define workspace variables.
Definition: workspace.cc:39
static map< String, Index > WsvMap
Global map associated with wsv_data.
Definition: workspace_ng.h:61
Index get_wsv_id(const String &name)
Get index of WSV.
Definition: workspace.cc:5751
This class contains all static information for one workspace variable.
Definition: wsv_aux.h:56
constexpr Rational end(Rational Ju, Rational Jl, Polarization type) noexcept
Gives the largest M for a polarization type of this transition.
Definition: zeemandata.h:108
my_basic_string< char > String
The String type for ARTS.
Definition: mystring.h:280