deshima_sensitivity.atmosphere module#
- eta_atm_func(F: Union[ndarray, List[float], List[int], float, int], pwv: float, EL: float = 60.0, R: float = 0.0) Union[ndarray, List[float], List[int], float, int] [source]#
Calculate eta_atm as a function of F by interpolation.
If R~=0 then the function will average the atmospheric transmission within each spectrometer channel.
- Parameters:
F (Union[ndarray, List[float], List[int], float, int]) – Frequency of the astronomical signal. Units: Hz (works also for GHz, will detect).
pwv (float) – Precipitable water vapour. Units: mm.
EL (float) – Telescope elevation angle. Units: degrees.
R (float) – Spectral resolving power in F/W_F where W_F is the ‘equivalent bandwidth’. R is used to average the atmospheric transmission within one spectrometer channel. If R = 0, then the function will return the transmission at that exact frequency. Units: None. See also: http://www.astrosurf.com/buil/us/spe2/hresol7.htm
- Returns:
Atmospheric tranmsmission. Units: None.
- Return type:
eta_atm
- eta_atm_interp(eta_atm_dataframe: DataFrame) Callable [source]#
Used in the function eta_atm_func().
Returns a function that interpolates atmospheric transmission data downloaded from ALMA (https://almascience.eso.org/about-alma/atmosphere-model).
The returned function has the form of eta = func(F [GHz], pwv [mm]). Note telescope EL = 90 (zenith).
- Parameters:
eta_atm_dataframe (DataFrame) – Pandas DataFrame of atmospheric transmission data.
- Returns:
Function that returns the atmospheric transmission.
- Return type:
func
Example
Read csv file with pandas (in e.g., Jupyter):
eta_atm_df = pd.read_csv("<desim-folder>/data/atm.csv",skiprows=4, delim_whitespace=True,header=0)
Make function from pandas file:
etafun = desim.eta_atm_interp(eta_atm_df)