Physics functions for the MUSE pipeline

Enumerations

enum  muse_phys_flags {
  MUSE_PHYS_AIR_STANDARD = 1, MUSE_PHYS_AIR_MEASURED = 3, MUSE_PHYS_METHOD_CIDDOR = 0, MUSE_PHYS_METHOD_OWENS = 1 << 2,
  MUSE_PHYS_METHOD_EDLEN = 2 << 2, MUSE_PHYS_METHOD_FILIPPENKO = 3 << 2
}
 

Flags with special bit setup to pass to muse_phys_air_to_vacuum().

More...

Functions

double muse_phys_nrindex_owens_saturation_pressure (double temp)
 Compute the saturation pressure using the Owens calibration.
void muse_phys_nrindex_owens_coeffs (double temp, double rhum, double pres, double *d1, double *d2)
 Compute the two coefficients for the Owens method.
double muse_phys_nrindex_owens (double l, double d1, double d2)
 Compute the refractive index for the given wavelength following Owens.
double muse_phys_nrindex_edlen (double l, double t, double p, double pv)
 Compute the refractive index for the given wavelength following Edlén.
double muse_phys_nrindex_ciddor (double l, double T, double p, double xv, double xCO2)
 Compute the refractive index for the given wavelength following Ciddor.
double muse_phys_nrindex_filippenko (double l, double T, double f, double P)
 Compute the refractive index for the given wavelength following Filippenko.
cpl_error_code muse_phys_air_to_vacuum (muse_pixtable *aPixtable, unsigned int aFlags)
 Convert a pixel table from air to vacuum wavelengths.

Detailed Description


Enumeration Type Documentation

Flags with special bit setup to pass to muse_phys_air_to_vacuum().

The 2nd bit determines the air parameter determination, higher bits the method to use for conversion. Use (flags & 0xC) to access the methods.

Enumerator:
MUSE_PHYS_AIR_STANDARD 

use standard air parameters

MUSE_PHYS_AIR_MEASURED 

use measured air parameters

MUSE_PHYS_METHOD_CIDDOR 

use Ciddor formulae for conversion

MUSE_PHYS_METHOD_OWENS 

use Owens formulae for conversion

MUSE_PHYS_METHOD_EDLEN 

use Edlen formulae for conversion

MUSE_PHYS_METHOD_FILIPPENKO 

use Filippenko formulae for conversion

Definition at line 53 of file muse_phys.h.


Function Documentation

cpl_error_code muse_phys_air_to_vacuum ( muse_pixtable aPixtable,
unsigned int  aFlags 
)

Convert a pixel table from air to vacuum wavelengths.

Parameters:
aPixtable input MUSE pixel table in air wavelength
aFlags flags to describe air properties used and the method
Returns:
CPL_ERROR_NONE on success, another CPL error code on failure

The argument aFlags is thought to be or'd with one to two of the flags of the muse_phys_flags enum. The MUSE_PHYS_AIR_* selection is mandatory to choose either conversion using "International Standard Atmosphere" (MUSE_PHYS_AIR_STANDARD; dry air, 15 degC, 1013.25 hPa, see e.g. https://de.wikipedia.org/w/index.php?title=Normatmosph%C3%A4re&oldid=145634782) or air condition measurements from the pixel table header (MUSE_PHYS_AIR_MEASURED).

Four methods are available to compute the refractive index of air:

  • "Ciddor": the algorithm from Phillip E. Ciddor, 1996 Applied Optics 35, 1566 - 1573. This method is supposed to be the most accurate way to compute the refractive index of air, with a validity range of at least 3000 to 17000 Angstrom, and was chosen by the International Association of Geodesy as their standard (http://emtoolbox.nist.gov/Wavelength/Documentation.asp#EdlenorCiddor). See http://emtoolbox.nist.gov/Wavelength/Documentation.asp#AppendixA for all formulae used here. This is active if aFlags was or'ed with MUSE_PHYS_METHOD_CIDDOR or by default.
  • "Owens": the formulae come from J. C. Owens, 1967 Applied Optics 6, 51 - 59, and are used here in the form as implemented by Sandin et al., 2008 A&A 486, 545 in the p3d program. This is active if aFlags was or'ed with MUSE_PHYS_METHOD_OWENS.
  • "Edlen": the algorithm from B. Edlén, 1966 Metrologia 2, 71 - 80 and K. P. Birch & M. J. Downs, 1993 Metrologia 30, 155 - 162. See http://emtoolbox.nist.gov/Wavelength/Documentation.asp for all formulae used. This is active if aFlags was or'ed with MUSE_PHYS_METHOD_EDLEN.
  • "Filippenko": The algorithm from Filippenko, 1982 PASP 94, 715. This uses the formula from Owens which converts relative humidity to water vapor pressure. This is active if aFlags was or'ed with MUSE_PHYS_METHOD_FILIPPENKO.
Note:
This function sets the keyword MUSE_HDR_PT_SPEC_TYPE with the content "WAVE" when finished successfully.
Exceptions:
set and return CPL_ERROR_NULL_INPUT aPixtable or its header or table components are NULL
set and return CPL_ERROR_DATA_NOT_FOUND aPixtable is not conforming to format muse_pixtable_def
set and return CPL_ERROR_UNSUPPORTED_MODE aFlags is zero
output warning, set and return CPL_ERROR_TYPE_MISMATCH header of aPixtable already contains MUSE_HDR_PT_SPEC_TYPE and it's not "AWAV"
set and return CPL_ERROR_DATA_NOT_FOUND atmosphere handling type is MUSE_PHYS_AIR_MEASURED, but pressure, temperature, humidity are not present in the input pixel table header

Definition at line 261 of file muse_phys.c.

References muse_pixtable::header, muse_cpltable_check(), MUSE_HDR_PT_SPEC_TYPE, muse_pfits_get_pres_end(), muse_pfits_get_pres_start(), muse_pfits_get_rhum(), muse_pfits_get_temp(), MUSE_PHYS_METHOD_CIDDOR, MUSE_PHYS_METHOD_EDLEN, MUSE_PHYS_METHOD_OWENS, muse_phys_nrindex_ciddor(), muse_phys_nrindex_edlen(), muse_phys_nrindex_filippenko(), muse_phys_nrindex_owens(), muse_phys_nrindex_owens_coeffs(), muse_phys_nrindex_owens_saturation_pressure(), muse_pixtable_compute_limits(), muse_pixtable_def, muse_pixtable_get_nrow(), and muse_pixtable::table.

Referenced by muse_postproc_cube_resample_and_collapse().

double muse_phys_nrindex_ciddor ( double  l,
double  T,
double  p,
double  xv,
double  xCO2 
)

Compute the refractive index for the given wavelength following Ciddor.

Parameters:
l the wavelength [um]
T temperature [K]
p pressure [Pa]
xv mole fraction
xCO2 CO2 concentration [umol / mol], use 450.0 for a good default value
Returns:
the refractive index

The source of the value xCO2 = 450 is Birch et al., 1993, Metrologia 30, 7 (see the routine p3d_darc_amplitude_iag in the p3d IFS reduction package).

Definition at line 148 of file muse_phys.c.

Referenced by muse_dar_correct(), and muse_phys_air_to_vacuum().

double muse_phys_nrindex_edlen ( double  l,
double  t,
double  p,
double  pv 
)

Compute the refractive index for the given wavelength following Edlén.

Parameters:
l the wavelength [um]
t temperature [Celsius]
p pressure [Pa]
pv partial pressure [Pa]
Returns:
the refractive index

Definition at line 115 of file muse_phys.c.

Referenced by muse_dar_correct(), and muse_phys_air_to_vacuum().

double muse_phys_nrindex_filippenko ( double  l,
double  T,
double  f,
double  P 
)

Compute the refractive index for the given wavelength following Filippenko.

Parameters:
l the wavelength (in um)
T temperature (in degrees Celsius)
f water vapor pressure (in mmHg)
P atmospheric pressure (in mmHg)
Returns:
the refractive index

Definition at line 193 of file muse_phys.c.

Referenced by muse_dar_correct(), and muse_phys_air_to_vacuum().

double muse_phys_nrindex_owens ( double  l,
double  d1,
double  d2 
)

Compute the refractive index for the given wavelength following Owens.

Parameters:
l the wavelength [um]
d1 coefficient 1
d2 coefficient 2
Returns:
the refractive index

Definition at line 95 of file muse_phys.c.

Referenced by muse_dar_correct(), and muse_phys_air_to_vacuum().

void muse_phys_nrindex_owens_coeffs ( double  temp,
double  rhum,
double  pres,
double *  d1,
double *  d2 
)

Compute the two coefficients for the Owens method.

Parameters:
temp temperature (in Kelvin)
rhum the relative humidity (in %)
pres atmospheric pressure (in hPa)
d1 coefficient 1
d2 coefficient 2

Definition at line 70 of file muse_phys.c.

References muse_phys_nrindex_owens_saturation_pressure().

Referenced by muse_dar_correct(), and muse_phys_air_to_vacuum().

double muse_phys_nrindex_owens_saturation_pressure ( double  temp  ) 

Compute the saturation pressure using the Owens calibration.

Parameters:
temp temperature (in Kelvin)
Returns:
the saturation pressure for the given temperature

This function is currently also used when choosing the Filippenko formulae.

Definition at line 54 of file muse_phys.c.

Referenced by muse_dar_correct(), muse_phys_air_to_vacuum(), and muse_phys_nrindex_owens_coeffs().


Generated on 26 Jan 2017 for MUSE Pipeline Reference Manual by  doxygen 1.6.1