Source code for pyarts.sensor

# -*- coding: utf-8 -*-
"""
Implementation of functions related to sensor settings.

"""

import numpy as np


__all__ = ['get_f_backend_rel_width',
           'get_f_backend_const_width',
           ]


[docs] def get_f_backend_rel_width(f_start, f_end, bandwidth): """Compute backend frequencies with relative bandwidth. This function computes backend frequencies for a given frequency range and a relative bandwidth. Parameters: f_start (float): beginning of frequency range [Hz] f_end (float): end of frequency range [Hz] bandwidth (float): relative bandwidth [dimensionless] Return: np.array, np.array: backend frequencies [Hz], channel widths [Hz] """ if f_start <= 0: raise Exception('Start frequency must be > 0.') if f_start > f_end: raise Exception('End frequency has to be larger than start frequency.') f_backend = [f_start] while f_backend[-1] <= f_end: f_backend.append(f_backend[-1] * (bandwidth + 2) / (2 - bandwidth)) # do not include last value in results as it exceeds f_end f_backend = np.array(f_backend[:-1]) backend_bandwidth = f_backend * bandwidth return f_backend, backend_bandwidth
[docs] def get_f_backend_const_width(f_start, f_end, bandwidth): """Compute backend frequencies with constant bandwidth. This function computes backend frequencies for a given frequency range and a constant bandwidth. Parameters: f_start (float): beginning of frequency range [Hz] f_end (float): end of frequency range [Hz] bandwidth (float): bandwidth [Hz] Return: np.array, np.array: backend frequencies [Hz], channel widths [Hz] """ if f_start <= 0: raise Exception('Start frequency must be > 0.') if f_start > f_end: raise Exception('End frequency has to be larger than start frequency.') f_backend = [f_start] while f_backend[-1] <= f_end: f_backend.append(f_backend[-1] + bandwidth) # do not include last value in results as it exceeds f_end f_backend = np.array(f_backend[:-1]) backend_bandwidth = np.array([bandwidth]) return f_backend, backend_bandwidth