# Spectral Modelling Functions¶

spectralradex.noise_from_spectrum(intensities)

Estimate the rms noise level from a spectrum by assuming it is a gaussian noise distribution plus positive signal. If this is true, the median should be the peak of the noise distribution and values smaller are just noise. Thus, the mean square difference between the median and smaller values is the square of the noise rms.

Parameters: intensities (float, iterable) – An array of the intensity values representing a spectrum The rms noise value float
spectralradex.convert_intensity_to_kelvin(frequencies, intensities, minor_beam, major_beam)

Convert a spectrum from jy/beam to kelvin. All spectra produced by spectralradex use kelvin so this function is intended to convert observed spectra for fitting. Treatment taken from https://science.nrao.edu/facilities/vla/proposing/TBconv

Parameters: intensities (float, iterable) – An array of the frequency values representing a spectrum, in GHz intensities – An array of the intensity values at each of the frequencies in the frequency array in Jy/beam. minor_beam (float) – beamsize along minor axis in arcseconds major_beam (float) – beamsize along major axis in arcseconds
spectralradex.maxwellian_distribution(v0, delta_v, tau_0, velocities)

Returns the optical depth as a function of velocity, assuming gaussian line profiles and given an optical depth a line centre

Parameters: v0 (float) – Peak velocity of the emission delta_v – FWHM of the peaks, taken from linewidth parameter of RADEX when called via model_spectrum() tau_0 (float) – The optical depth at line centre. Taken from RADEX when called via model_spectrum() velocities (float, iterable) – An iterable containing the velocity values at which to calculate tau An array with the tau value at each velocity in velocities ndarray,float
spectralradex.model_spectrum(obs_freqs, v0, radex_params, tau_profile=<function maxwellian_distribution>)

Calculates the brightness temperature as a function of frequency for given input frequencies, $$V_{LSR}$$ velocity and RADEX parameters.

Parameters: obs_freqs (iterable, float) – An array of frequency values in GHz at which the brightness temperature should be calculated. v0 (float) – The $$V_{LSR}$$ velocity of the emitting object to be modelled in km/s radex_params (dict) – A dictionary containing the inputs for the RADEX model. See radex.get_default_parameters() for a list of possible parameters. Note this includes the linewidth in km/s that will be used to set the shape of the emission lines. tau_profile (function, optional) – A function with the same arguments as maxwellian_distribution() that returns the optical depth as a function of velocity. If not set, spectralradex will assume gaussian line profiles centred on v0 and a FWHM taken from the RADEX parameters.