ARTS  2.3.1285(git:92a29ea9-dirty)
m_refraction.cc File Reference

Workspace methods releated to refraction. More...

#include <cmath>
#include "abs_species_tags.h"
#include "absorption.h"
#include "arts.h"
#include "check_input.h"
#include "math_funcs.h"
#include "matpackI.h"
#include "messages.h"
#include "physics_funcs.h"
#include "refraction.h"
#include "special_interp.h"

Go to the source code of this file.

Functions

void refr_index_airFreeElectrons (Numeric &refr_index_air, Numeric &refr_index_air_group, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const Vector &rtp_vmr, const Index &demand_vmr_value, const Verbosity &)
 WORKSPACE METHOD: refr_index_airFreeElectrons. More...
 
void refr_index_airInfraredEarth (Numeric &refr_index_air, Numeric &refr_index_air_group, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Verbosity &)
 WORKSPACE METHOD: refr_index_airInfraredEarth. More...
 
void refr_index_airMicrowavesEarth (Numeric &refr_index_air, Numeric &refr_index_air_group, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const ArrayOfArrayOfSpeciesTag &abs_species, const Numeric &k1, const Numeric &k2, const Numeric &k3, const Verbosity &)
 WORKSPACE METHOD: refr_index_airMicrowavesEarth. More...
 
void refr_index_airMicrowavesGeneral (Numeric &refr_index_air, Numeric &refr_index_air_group, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const ArrayOfArrayOfSpeciesTag &abs_species, const Verbosity &)
 WORKSPACE METHOD: refr_index_airMicrowavesGeneral. More...
 
void complex_refr_indexConstant (GriddedField3 &complex_refr_index, const Numeric &refr_index_real, const Numeric &refr_index_imag, const Verbosity &)
 WORKSPACE METHOD: complex_refr_indexConstant. More...
 
void complex_refr_indexWaterLiebe93 (GriddedField3 &complex_refr_index, const Vector &f_grid, const Vector &t_grid, const Verbosity &verbosity)
 WORKSPACE METHOD: complex_refr_indexWaterLiebe93. More...
 
void complex_refr_indexIceMatzler06 (GriddedField3 &complex_refr_index, const Vector &f_grid, const Vector &t_grid, const Verbosity &)
 WORKSPACE METHOD: complex_refr_indexIceMatzler06. More...
 
void complex_refr_indexIceWarren84 (GriddedField3 &, const Vector &, const Vector &, const Verbosity &)
 WORKSPACE METHOD: complex_refr_indexIceWarren84. More...
 

Variables

const Numeric ELECTRON_CHARGE
 
const Numeric ELECTRON_MASS
 
const Numeric PI
 
const Numeric VACUUM_PERMITTIVITY
 
const Numeric TORR2PA
 

Detailed Description

Workspace methods releated to refraction.

Author
Patrick Eriksson Patri.nosp@m.ck.E.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2003-01-09

These functions are listed in the doxygen documentation as entries of the file auto_md.h.

Definition in file m_refraction.cc.

Function Documentation

◆ complex_refr_indexConstant()

void complex_refr_indexConstant ( GriddedField3 complex_refr_index,
const Numeric refr_index_real,
const Numeric refr_index_imag,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexConstant.

Set complex refractive index to a constant value.

Frequency and temperature grids are set to have length 1 (and set to the value 0).

Author
Oliver Lemke
Parameters
[out]complex_refr_indexWS Output
[in]refr_index_realGeneric Input
[in]refr_index_imagGeneric Input

Definition at line 308 of file m_refraction.cc.

References GriddedField3::data, joker, GriddedField3::resize(), GriddedField::set_grid(), and GriddedField::set_grid_name().

Referenced by complex_refr_indexConstant_g().

◆ complex_refr_indexIceMatzler06()

void complex_refr_indexIceMatzler06 ( GriddedField3 complex_refr_index,
const Vector data_f_grid,
const Vector data_T_grid,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexIceMatzler06.

Refractive index of ice following Matzler06 parameterization.

Calculates temperature dependent complex refractive index of hexagonal ice at microwave and sub-mm frequencies (10MHz-3Tz).

This parametrization is also applied by the microwave and submm-wave part of the Warren08 model.

References: Matzler, C., 2006: Thermal Microwave Radiation: Application for Remote Sensing, Microwave dielectric properties of ice, pp. 455-462, Inst. Eng. Technol., Stevenage, U. K. Warren, S. G., and R. E. Brandt, 2008: Optical constants of ice from the ultraviolet to the microwave: A revised compilation, J. Geophys. Res., 113, D14220, doi:10.1029/2007JD009744.

Author
Jana Mendrok
Parameters
[out]complex_refr_indexWS Output
[in]data_f_gridGeneric Input
[in]data_T_gridGeneric Input

Definition at line 355 of file m_refraction.cc.

References chk_if_in_range(), complex_n_ice_matzler06(), complex_refr_indexIceWarren84(), GriddedField3::data, joker, max, min, n, ConstVectorView::nelem(), refice_(), GriddedField3::resize(), GriddedField::set_grid(), GriddedField::set_grid_name(), and SPEED_OF_LIGHT.

Referenced by complex_refr_indexIceMatzler06_g().

◆ complex_refr_indexIceWarren84()

void complex_refr_indexIceWarren84 ( GriddedField3 complex_refr_index,
const Vector data_f_grid,
const Vector data_T_grid,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexIceWarren84.

Refractive index of ice following Warren84 parameterization.

Calculates complex refractive index of Ice 1H for wavelengths between 45 nm and 8.6 m. For wavelengths above 167 microns, temperature dependence is included for temperatures between 213 and 272K. Mainly intended for applications in Earth ice clouds and snow, not other planets or interstellar space; the temperature dependence or crystalline form of ice may be incorrect for these latter applications.

Authors of Fortran function: Stephen Warren, Univ. of Washington (1983) Bo-Cai Gao, JCESS, Univ. of Maryland (1995) Warren Wiscombe, NASA Goddard (1995)

References: Warren, S., 1984: Optical Constants of Ice from the Ultraviolet to the Microwave, Appl. Opt. 23, 1206-1225

Kou, L., D. Labrie, and P. Chylek, 1994: Refractive indices of water and ice in the 0.65- to 2.5-micron spectral range, Appl. Opt. 32, 3531-3540

Perovich, D., and J. Govoni, 1991: Absorption Coefficients of Ice from 250 to 400 nm, Geophys. Res. Lett. 18, 1233-1235

Author
Oliver Lemke
Parameters
[out]complex_refr_indexWS Output
[in]data_f_gridGeneric Input
[in]data_T_gridGeneric Input

Definition at line 438 of file m_refraction.cc.

Referenced by complex_refr_indexIceMatzler06(), and complex_refr_indexIceWarren84_g().

◆ complex_refr_indexWaterLiebe93()

void complex_refr_indexWaterLiebe93 ( GriddedField3 complex_refr_index,
const Vector data_f_grid,
const Vector data_T_grid,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexWaterLiebe93.

Complex refractive index of liquid water according to Liebe 1993.

The method treats liquid water without salt. Thus, not valid below 10 GHz. Upper frequency limit not known, here set to 1000 GHz. Model parameters taken from Atmlab function epswater93 (by C. Maetzler), which refer to Liebe 1993 without closer specifications.

Temperatures must be between -40 and 100 degrees Celsius. The accuracy of the parametrization below 0 C is not known by us.

Author
Patrick Eriksson
Oliver Lemke
Parameters
[out]complex_refr_indexWS Output
[in]data_f_gridGeneric Input
[in]data_T_gridGeneric Input

Definition at line 325 of file m_refraction.cc.

References complex_n_water_liebe93(), CREATE_OUT1, GriddedField3::data, joker, min, ConstVectorView::nelem(), GriddedField3::resize(), GriddedField::set_grid(), and GriddedField::set_grid_name().

Referenced by complex_refr_indexWaterLiebe93_g().

◆ refr_index_airFreeElectrons()

void refr_index_airFreeElectrons ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Vector f_grid,
const ArrayOfArrayOfSpeciesTag abs_species,
const Vector rtp_vmr,
const Index demand_vmr_value,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airFreeElectrons.

Microwave refractive index due to free electrons.

The refractive index of free electrons is added to refr_index_air. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression applied is n=sqrt(1-wp^2/w^2) where wp is the plasma frequency, and w is the angular frequency (the function returns n-1, that here is slightly negative). This expressions is found in many textbooks, e.g. Rybicki and Lightman (1979). The above refers to refr_index_air. refr_index_air_group is sqrt(1+wp^2/w^2).

The expression is dispersive. The frequency applied is the mean of first and last element of f_grid is selected. This frequency must be at least twice the plasma frequency.

An error is issued if free electrons not are part of abs_species (and there exist a corresponding "vmr"-value). This demand is removed if demand_vmr_value is set to 0, but use this option with care.

Author
Patrick Eriksson
Parameters
[in,out]refr_index_airWS Input/Output
[in,out]refr_index_air_groupWS Input/Output
[in]f_gridWS Input
[in]abs_speciesWS Input
[in]rtp_vmrWS Input
[in]demand_vmr_valueGeneric Input (Default: "1")

Definition at line 60 of file m_refraction.cc.

Referenced by refr_index_airFreeElectrons_g().

◆ refr_index_airInfraredEarth()

void refr_index_airInfraredEarth ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airInfraredEarth.

Calculates the IR refractive index due to gases in the Earth's atmosphere.

Only refractivity of dry air is considered. The formula used is contributed by Michael Hoepfner, Forschungszentrum Karlsruhe.

The refractivity of dry air is added to refr_index_air. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression used is non-dispersive. Hence, refr_index_air and refr_index_air_group* are identical.

Author
Mattias Ekstrom
Parameters
[in,out]refr_index_airWS Input/Output
[in,out]refr_index_air_groupWS Input/Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input

Definition at line 120 of file m_refraction.cc.

References n, and sqrt().

Referenced by refr_index_airInfraredEarth_g().

◆ refr_index_airMicrowavesEarth()

void refr_index_airMicrowavesEarth ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Vector rtp_vmr,
const ArrayOfArrayOfSpeciesTag abs_species,
const Numeric k1,
const Numeric k2,
const Numeric k3,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airMicrowavesEarth.

Microwave refractive index in Earth's atmosphere.

This method just considers pressure, temperature and water vapour, which should suffice for Earth. For a more general method, see refr_index_airMicrowavesGeneral.

The refractivity of dry air and water vapour is added to refr_index_air*. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression used is non-dispersive. Hence, refr_index_air and refr_index_air_group are identical.

The standard expression for Earth and microwaves is used: <br> N = k1*(P-e)/T + k2*e/T + k3*e/T^2 where N is refractivity, P is pressure, T is temperature and e is water vapour partial pressure. The values of k1, k2 and k3 can be modified.

Many different values of k1, k2 and k3 can be found in the literature. The default values applied here are taken from Bevis et al., GPS meteorology: Mapping ..., JAM, 1994. More specifically, these value are found in Table 1, listed as "Present study". Note that in ARTS Pa is used for pressure and k1, k2 and k3 must be adjusted accordingly.

Author
Patrick Eriksson
Parameters
[in,out]refr_index_airWS Input/Output
[in,out]refr_index_air_groupWS Input/Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input
[in]rtp_vmrWS Input
[in]abs_speciesWS Input
[in]k1Generic Input (Default: "77.6e-8")
[in]k2Generic Input (Default: "70.4e-8")
[in]k3Generic Input (Default: "3.739e-3")

Definition at line 139 of file m_refraction.cc.

References find_first_species_tg(), Array< base >::nelem(), ConstVectorView::nelem(), and species_index_from_species_name().

Referenced by refr_index_airMicrowavesEarth_g().

◆ refr_index_airMicrowavesGeneral()

void refr_index_airMicrowavesGeneral ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Vector rtp_vmr,
const ArrayOfArrayOfSpeciesTag abs_species,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airMicrowavesGeneral.

Microwave refractive index due to gases in planetary atmospheres.

The refractivity of a specified gas mixture is calculated and added to refr_index_air. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression used is non-dispersive. Hence, refr_index_air and refr_index_air_group* are identical.

Uses the methodology introduced by Newell&Baird (1965) for calculating refractivity of variable gas mixtures based on refractivity of the individual gases at reference conditions. Assuming ideal gas law for converting reference refractivity to actual pressure and temperature conditions. Reference refractivities are also taken from Newell&Baird (1965) and are vailable for N2, O2, CO2, H2, and He. Additionally, H2O reference refractivity has been derived from H2O contribution in Thayer (see refr_index_airMicrowavesEarth*) for T0=273.15K. Any mixture of these gases can be taken into account.

Author
Jana Mendrok
Parameters
[in,out]refr_index_airWS Input/Output
[in,out]refr_index_air_groupWS Input/Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input
[in]rtp_vmrWS Input
[in]abs_speciesWS Input

Definition at line 174 of file m_refraction.cc.

References TORR2PA.

Referenced by refr_index_airMicrowavesGeneral_g().

Variable Documentation

◆ ELECTRON_CHARGE

const Numeric ELECTRON_CHARGE

◆ ELECTRON_MASS

const Numeric ELECTRON_MASS

◆ PI

const Numeric PI

◆ TORR2PA

const Numeric TORR2PA

◆ VACUUM_PERMITTIVITY

const Numeric VACUUM_PERMITTIVITY