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. | |
| enum muse_phys_flags |
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.
Definition at line 53 of file muse_phys.h.
| cpl_error_code muse_phys_air_to_vacuum | ( | muse_pixtable * | aPixtable, | |
| unsigned int | aFlags | |||
| ) |
Convert a pixel table from air to vacuum wavelengths.
| aPixtable | input MUSE pixel table in air wavelength | |
| aFlags | flags to describe air properties used and the method |
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:
| 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.
| 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 |
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.
| l | the wavelength [um] | |
| t | temperature [Celsius] | |
| p | pressure [Pa] | |
| pv | partial pressure [Pa] |
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.
| l | the wavelength (in um) | |
| T | temperature (in degrees Celsius) | |
| f | water vapor pressure (in mmHg) | |
| P | atmospheric pressure (in mmHg) |
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.
| l | the wavelength [um] | |
| d1 | coefficient 1 | |
| d2 | coefficient 2 |
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.
| 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.
| temp | temperature (in Kelvin) |
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().
1.6.1