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)