Fit module

ORCS (Outils de Réduction de Cubes Spectraux) provides tools to extract data from ORBS spectral cubes.

This module contains the fitting classes

class orcs.fit.SpectralCube(*args: Any, **kwargs: Any)

Bases: orb.cube.

Extension of orcs.core.SpectralCube

Gives access to an HDF5 cube with extended fit functionalities.

The child class SpectralCube may be prefered in general for its broader functionality.

See also

orb.core.SpectralCube

_get_estimated_frame_path(param, comp)

Return path to the estimated parameter frame

_get_integrated_spectrum_fit_path(region_name)

Return the path to an integrated spectrum fit

Parameters

region_name – Name of the region

_get_integrated_spectrum_path(region_name)

Return the path to an integrated spectrum

Parameters

region_name – Name of the region

estimate_parameters_in_region(region, lines, vel_range, subtract_spectrum=None, binning=3, precision=10, max_comps=1, threshold=1, prod=True)
Parameters
  • lines – Emission lines to fit (must be in cm-1 if the cube is in wavenumber. must be in nm otherwise).

  • region – Region to fit. Multiple regions can be used to define the fitted region. They do not need to be contiguous.

  • threshold – Detection threshold as a factor of the std of the calculated score.

fit_integrated_spectra(regions_file_path, lines, fmodel='sinc', nofilter=True, subtract_spectrum=None, plot=True, verbose=True, max_iter=None, **kwargs)

Fit integrated spectra and their emission lines parameters.

Parameters
  • regions_file_path – Path to a ds9 reg file giving the positions of the regions. Each region is considered as a different region.

  • subtract – Spectrum to subtract (must be a spline)

  • plot – (Optional) If True, plot each intergrated spectrum along with the its fit (default True).

  • verbose – (Optional) If True print the fit results (default True).

  • max_iter – (Optional) Maximum number of iterations (default None)

fit_lines_in_integrated_region(*args, **kwargs)

Fit lines of a spectrum integrated over a given region (can be a list of pixels as returned by the function numpy.nonzero() or a ds9 region file).

Parameters
  • region – Region to integrate (can be a list of pixel coordinates as returned by the function numpy.nonzero() or the path to a ds9 region file). If it is a ds9 region file, multiple regions can be defined and all will be integrated into one spectrum.

  • lines – Emission lines to fit (must be in cm-1 if the cube is in wavenumber. must be in nm otherwise).

  • nofilter – (Optional) If True, Filter model is not added and the fit is made with a single range set to the filter bandpass.

  • subtract_spectrum – (Optional) Remove the given spectrum from the extracted spectrum before fitting parameters. Useful to remove sky spectrum. Both spectra must have the same size.

  • max_iter – (Optional) Maximum number of iterations (default None)

  • mean_flux – (Optional) If True the flux of the spectrum is the mean flux of the extracted region (default False).

  • kwargs – Keyword arguments of the function _fit_lines_in_spectrum().

Returns

a tuple (axis, spectrum, fit_dict). fit_dict is a dictionary containing the fit results (same output as _fit_lines_in_spectrum())

fit_lines_in_region(region, lines, fmodel='sinc', binning=1, nofilter=True, subtract_spectrum=None, max_iter=None, timeout=None, **kwargs)

Fit lines in a given region of the cube. All the pixels in the defined region are fitted one by one and a set of maps containing the fitted paramaters are written. Note that the pixels can be binned.

Parameters
  • region – Region to fit. Can be a path to a ds9 file, a string defining the region in ds9 format or a boolean map (i.e. a mask) of the same dimension as the cube field of view where 1s stand for pixels that should be fitted. If a ds9 file, multiple regions can be used to define the fitted region. They do not need to be contiguous.

  • lines – Emission lines to fit (must be in cm-1 if the cube is in wavenumber. must be in nm otherwise).

  • binning – Binning of the extracted spectra.

  • nofilter – (Optional) If True, Filter model is not added and the fit is made with a single range set to the filter bandpass (default True).

  • subtract_spectrum – (Optional) Remove the given spectrum from the extracted spectrum before fitting parameters. Useful to remove sky spectrum. Both spectra must have the same size.

  • max_iter – (Optional) Maximum number of iterations (default None)

  • kwargs – Keyword arguments of the function _fit_lines_in_spectrum().

Timeout

(Optional) max processing time per pixel. If reached, the given pixel is passed (default None).

Note

You can pass the fitting parameters (e.g. pos_cov, sigma_cov etc.) as maps (a 2d numpy.ndarray instance or a path to a map). But you have to append the suffix ‘_map’ to the parameter you want to map. Nans will generate errors. This mode is best used once the velocity parameter has been estimated with estimate_parameters_in_region().

fit_lines_in_spectrum(*args, **kwargs)

Fit lines of a spectrum extracted from a circular region of a given radius.

Parameters
  • x – X position of the center

  • y – Y position of the center

  • r – Radius. If 0, only the central pixel is extracted.

  • lines – Emission lines to fit (must be in cm-1 if the cube is in wavenumber. must be in nm otherwise).

  • nofilter – (Optional) If True, Filter model is not added and the fit is made with a single range set to the filter bandpass.

  • subtract_spectrum – (Optional) Remove the given spectrum from the extracted spectrum before fitting parameters. Useful to remove sky spectrum. Both spectra must have the same size.

  • max_iter – (Optional) Maximum number of iterations (default None)

  • mean_flux – (Optional) If True the flux of the spectrum is the mean flux of the extracted region (default False).

  • kwargs – Keyword arguments of the function _fit_lines_in_spectrum().

Returns

a tuple (axis, spectrum, fit_dict). fit_dict is a dictionary containing the fit results (same output as orb.fit.fit_lines_in_spectrum())

fit_lines_in_spectrum_bin(*args, **kwargs)

Fit lines of a spectrum extracted from a squared region of a given size.

Parameters
  • x – X position of the bottom-left pixel

  • y – Y position of the bottom-left pixel

  • b – Binning. If 0, only the central pixel is extracted.

  • lines – Emission lines to fit (must be in cm-1 if the cube is in wavenumber. must be in nm otherwise).

  • nofilter – (Optional) If True, Filter model is not added and the fit is made with a single range set to the filter bandpass.

  • subtract_spectrum – (Optional) Remove the given spectrum from the extracted spectrum before fitting parameters. Useful to remove sky spectrum. Both spectra must have the same size.

  • max_iter – (Optional) Maximum number of iterations (default None)

  • mean_flux – (Optional) If True the flux of the spectrum is the mean flux of the extracted region (default False).

  • kwargs – Keyword arguments of the function orb.fit.fit_lines_in_spectrum().

Returns

a tuple (axis, spectrum, fit_dict). fit_dict is a dictionary containing the fit results (same output as orb.fit.fit_lines_in_spectrum())

get_amp_ratio_from_flux_ratio(line0, line1, flux_ratio)

Return the amplitude ratio (amp(line0) / amp(line1)) to define from the flux ratio (at constant fwhm and broadening).

Parameters
  • line0 – Wavenumber of the line 0 (in cm-1).

  • line1 – Wavenumber of the line 1 (in cm-1).

  • flux_ratio – Flux ratio: flux(line0) / flux(line1).