brutifus package¶
Submodules¶
brutifus.brutifus module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains the master brutifus routines. Most of these routines call sub-routines, after setting the scene/loading datasets/etc …
Any processing step MUST have a dediacted routine in this file called ‘run_XXX’, which can then refer to any existing/new brutifus/Python module.
Created November 2018, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
- 
brutifus.brutifus.run(procsteps_fn, params_fn)[source]¶ Run a given set of brutifus processing steps with certain parameters.
- Parameters
 procsteps_fn (string) – filename containing the processing steps
params_fn (string) – filename containing the scientific parameters
- 
brutifus.brutifus.run_adjust_WCS(fn_list, params, suffix=None, name_in=None, name_out=None)[source]¶ Adjust the WCS solution of the cube using Gaia.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
name_in (str) – name tag to identify which cube to use to run the routine
name_out (str) – name tag to identify which cube comes out of the routine
- Returns
 The updated dictionary of filenames.
- Return type
 dict
Note
Proper motions for the GAIA entries are propagated to the DATE-OBS of the data. Source identification in white-light image based on
photutils.DAOStarFinderTodo
Avoid using a hard-coded pixel FWHM for the cross-correlation?
- 
brutifus.brutifus.run_crude_snr_maps(fn_list, params, suffix=None, name_in=None, zcorr_lams=False)[source]¶ Computes a crude S/N ratio for a continuum range or emission line.
This function computes the SNR maps for the continuum or emission lines. It also creates a map of spaxels with any signal at all. The resulting maps are saved to a fits file with full header and WCS coordinates.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
name_in (str) – name tag to identify which cube to use to run the routine.
zcorr_lams (bool) – True -> correct the wavelength range for the target redshift.
- Returns
 The updated dictionary of filenames.
- Return type
 dict
Note
This function is a “first guess” of the SNR for latter use in the code. A more reliable measure of the SNR for the emission line should be computed after they have been fitted.
- 
brutifus.brutifus.run_fit_continuum(fn_list, params, suffix=None, name_in=None, start_row=None, end_row=None, method='lowess')[source]¶ Fits the stellar/nebular continuum using a specific method.
This function fits the continuum in the datacube. It is designed to use multiprocessing to speed things up on good computers. It deals with the data columns-per-columns, and can be restarted mid-course, in case of a crash.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
name_in (str) – name tag to identify which cube to use to run the routine
start_row (int) – the row from which to sart the fitting. None for min.
end_row (int) – the row on which to end the fitting (inclusive). None for max.
method (str) – which method to use for the fitting ?
- Returns
 The updated dictionary of filenames.
- Return type
 dict
- 
brutifus.brutifus.run_gal_dered(fn_list, params, suffix=None, name_in=None, name_out=None)[source]¶ Corrects for Galactic extinction, given the Ab and Av extinction.
This function derives the Alambda value for any wavelength, and corrects the data to correct for our “local” extinction. Intended for extragalactic sources.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
name_in (str) – name tag to identify which cube to use to run the routine
name_out (str) – name tag to identify which cube comes out of the routine
- Returns
 The updated dictionary of filenames.
- Return type
 dict
Note
To reproduce the approach from NED, use the Ab and Av value for you object from there, and set
curve='f99',rv=3.1in the params file.
- 
brutifus.brutifus.run_make_continuum_cube(fn_list, params, suffix=None, method='lowess')[source]¶ Assemble a continuum cube from the individually-pickled fits.
This function is designed to construct a “usable and decent” datacube out of the mess generated by the continuum fitting function, i.e. out of the many pickle files generated.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
method (str) – which fits to gather ?
- Returns
 The updated dictionary of filenames.
- Return type
 dict
- 
brutifus.brutifus.run_plot_BW(fn_list, params, suffix=None, name_in=None, bands=[[7500.0, 9300.0]], conts=[[None, None]], stretches=['arcsinh'], plims=[[10.0, 99.5]], vlims=[[None, None]], gauss_blurs=[None])[source]¶ Make some B&W images from slices in the cube.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (string) – The tag of this step, to be used in all files generated for rapid id.
name_in (string) – name tag to identify which cube to use to run the routine
bands (list) – A list of wavelength pairs.
conts (list) – A list of wavelength pairs channels associated continuum regions.
stretches (list) – The stretches to apply to the data, e.g. ‘linear’, ‘log’, ‘arcsinh’.
plims (list) – The limiting percentiles for the plot
vlims (list) – The limiting values for the plot (superseeds stretch_plims)
gauss_blurs (list) – Radius of gaussian blur, None for nothing
- Returns
 The updated dictionary of filenames.
- Return type
 dictionary
- 
brutifus.brutifus.run_plot_RGB(fn_list, params, suffix=None, name_in=None, bands=[[7500.0, 9300.0, 6000.0, 7500.0, 4800.0, 6000.0]], conts=[[None, None, None]], stretches=[['arcsinh', 'arcsinh', 'arcsinh']], plims=[[10.0, 99.5, 10.0, 99.5, 10.0, 99.5]], vlims=[[None, None, None, None, None, None]], gauss_blurs=[[None, None, None]])[source]¶ Make some RGB images from slices in the raw cube.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (string) – The tag of this step, to be used in all files generated for rapid id.
name_in (string) – name tag to identify which cube to use to run the routine
bands (list) – A list of 3 wavelength pairs.
conts (list) – A list of 3 wavelength pairs: channels associated continuum regions.
stretches (list) – The stretches to apply to each slice: ‘linear’, ‘log’, ‘arcsinh’, …
plims (list) – The limiting percentiles for the plot
vlims (list) – The limiting values for the plot (superseeds stretch_plims)
gauss_blurs (list) – Radius of gaussian blur, None for nothing
- Returns
 The updated dictionary of filenames.
- Return type
 dictionary
- 
brutifus.brutifus.run_sky_sub(fn_list, params, suffix=None, name_in=None, name_out=None)[source]¶ Performs a manual sky subtraction, when the observation strategy was flawed.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
name_in (str) – name tag to identify which cube to use to run the routine
name_out (str) – name tag to identify which cube comes out of the routine
- Returns
 The updated dictionary of filenames.
- Return type
 dict
- 
brutifus.brutifus.run_subtract_continuum(fn_list, params, suffix=None, name_in=None, name_out=None, method=None)[source]¶ Subtracts the sky from a given cube.
- Parameters
 fn_list (dict) – The dictionary containing all filenames created by brutifus.
params (dict) – The dictionary containing all paramaters set by the user.
suffix (str) – The tag of this step, to be used in all files generated for rapid id.
name_in (str) – name tag to identify which cube to use to run the routine
name_out (str) – name tag to identify which cube comes out of the routine
- Returns
 The updated dictionary of filenames.
- Return type
 dict
brutifus.brutifus_cof module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains functions related to the continuum fitting inside brutifus.
Created November 2018, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
- 
brutifus.brutifus_cof.lowess_fit(spec, lams, frac=0.05, it=5)[source]¶ Fit a spectrum using a Locally Weighted Scatterplot Smoothing approach.
Wraps around statsmodels.nonparametric.smoothers_lowess.lowess().
- Parameters
 spec (1-D numpy array) – The input spectrum.
lams (1-D numpy array) – The corresponding wavelength array.
frac (float [default:0.05]) – Between 0 and 1. The fraction of the data used when estimating each y-value. [From the statsmodel lowess function]
it (int [default:5]) – The number of residual-based reweightings to perform. [From the statsmodel lowess function]
- Returns
 The fitted array, with size equal to spec.
- Return type
 numpy array
Note
This function fits a spectrum using a LOWESS (Locally Weighted Scatterplot Smoothing) technique, described in: Cleveland, W.S. (1979) Robust Locally Weighted Regression and Smoothing Scatterplots. Journal of the American Statistical Association 74 (368): 829-836.
This is robust to outliers (hot pixels, cosmics), and is also efficient to ignore emission lines. frac=0.05 and it=5 seem to work very fine for spectra of any SNR, both lousy with no continuum, and good ones in the center of galaxies - modulo the stellar absorption features which are of course “ignored” by the LOWESS routine.
- ..warning:: If you have broad emission line in the spectrum, you want to be very
 careful with LOWESS !!!
brutifus.brutifus_metadata module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains some global metadata used throughout the brutifus code.
Created November 2018-2019, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
brutifus.brutifus_plots module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains tools for the brutifus routines to create pretty plots seamlessly.
Created November 2018, F.P.A. Vogt - - frederic.vogt@alumni.anu.edu.au
- 
brutifus.brutifus_plots.crosshair(inner_r=1, pa=0)[source]¶ The path of an emtpy cross, useful for indicating targets without crowding the field.
- Params inner_r
 empty inner radius. Default=1 (gap = tick length = 1/3 marker width)
- Params pa
 position angle (degrees)
- Returns
 path
- Return type
 matplotlib.path.Path
- 
brutifus.brutifus_plots.finetune_WCSAxes(im_ax)[source]¶ Fine-tune the look of WCSAxes plots to my liking.
Currently, this changes the tick label format to show integer seconds, sets the separators to hms/d ‘ “, enables minor ticks, and tweaks the axis labels to be R.A. and Dec. (with dots!).
- Parameters
 im_ax (
matplotlib.axes) – the axes to be improved- Returns
 (ra,dec), the axes coordinates.
- Return type
 matplotlib ax.coords
- 
brutifus.brutifus_plots.get_fig_dims(nx, ny)[source]¶ - Returns all the necessary figure dimensions for gridspec, given the size of the
 image to plot.
- Parameters
 nx (int) – number of pixels along x axis
ny (int) – number of pixels along y axis
- Returns
 list containing the figure parameters [width, height, height_ratios, width_ratios, left, right, botom, top, wspace, hspace]
- Return type
 list
- 
brutifus.brutifus_plots.get_im_interval(pmin=10, pmax=99.9, vmin=None, vmax=None)[source]¶ Returns an interval, to feed the ImageNormalize routine from Astropy.
- Parameters
 pmin (float) – lower-limit percentile
pmax (float) – upper-limit percentile
vmin (float) – absolute lower limit
vmax (float) – absolute upper limit
- Returns
 an
astropy.visualization.intervalthingy …- Return type
 astropy.visualization.interval
Note
Specifying both vmin and vmax will override pmin and pmax.
- 
brutifus.brutifus_plots.get_im_stretch(stretch)[source]¶ Returns a stretch to feed the ImageNormalize routine from Astropy.
- Parameters
 stretch (string) – short name for the stretch I want. Possibilities are ‘arcsinh’ or ‘linear’.
- Returns
 A
astropy.visualization.stretchthingy …- Return type
 astropy.visualization.stretch
- 
brutifus.brutifus_plots.make_2Dplot(fn, ext=0, ofn='plot.pdf', stretch='arcsinh', vlims=[None, None], plims=[10.0, 99.99], gauss_blur=None, cmap=None, cblabel=None, scalebar=None)[source]¶ Creates an image from a 2-D fits image with WCS info.
- Parameters
 fn (string) – The filename (+path!) fo the fits file to display.
ext (int) – The extension of the image to display. The data in this extension MUST be 2-D.
ofn (string) – The output filename (+path!)
stretch (string) – The stretch of the image, fed to aplpy.FITSFigure. ‘linear’, ‘arcsinh’, …
vmin (float) – If set, the lower bound of the colorbar
vmax (float) – If set, the upper bound of the colorbar
pmin (float) – If set, the lower percentile bound of the colorbar
pmax (float) – If set, the upper percentile bound of the colorbar
cmap (string) – If set, the colormap to use. Use ‘alligator’ for the special brutifus cmap.
cblabel (string) – If set, the label of the colorbar.
scalebar (list of len(3)) – If set, adds a scale bar to the plot. Format: [lenght arcsec, length kpc, loc, unit]
- Returns
 a list containing the figure, the ax1 and the plot filename.
- Return type
 list
Note
This function absolutely requires WCS coordinates, and a 2-D array.
- 
brutifus.brutifus_plots.make_RGBplot(fns, ofn, ext=[0, 0, 0], stretch=['linear', 'linear', 'linear'], plims=[0.25, 99.75, 0.25, 99.75, 0.25, 99.75], vlims=[None, None, None, None, None, None], gauss_blur=[None, None, None], title=None, scalebar=None)[source]¶ Creates an RGB image from three fits files.
- Parameters
 fns (list) – The filename (+path!) fo the 3 fits file to display (in R, G and B orders).
ofn (str) – The filneame (+path) of the output file.
ext (list) – What HDU extension to read ?
stretch (list) – The stretch to apply to the data, e.g. ‘linear’, ‘log’, ‘arcsinh’.
plims (list) – The limiting percentiles for the plot, as [pmin_r, pmax_r, pmin_g, pmax_g, pmin_b, pmax_b]
vlims (list) – The limting values for the plot (superseeds plims), as [vmin_r, vmax_r, vmin_g, vmax_g, vmin_b, vmax_b]
gauss_blur (list) – list of radius (in pixels) for gaussian_blur. None = no blur
title (str) – Title to display above the image
scalebar (list) – If set, adds a scale bar to the plot. Format: [lenght arcsec, length kpc, loc, unit]
- Returns
 a list containing the figure, the ax1 and the plot filename.
- Return type
 list
- 
brutifus.brutifus_plots.make_galred_plot(lams, alams, etau, Ab, Av, ofn)[source]¶ Plots the extinction Alambda and flux correction factor for galactic extinction.
- Parameters
 lams (float) – The wavelength nodes.
alams – The corresponding values of Alambda.
etau – The flux correction factor, i.e. F_(unextinct)/F_(observed).
Ab – The value of Ab.
Av – The value of Av.
ofn (string) – path+name of where to save the plot
- 
brutifus.brutifus_plots.reverse_colourmap(cdict)[source]¶ Returns the inverted colorbar dictionary.
I most definitely got this from the web somewhere … Stackoverflow?
- Params cdict
 a colorbar dictionary
- Returns
 the flipped dictionary
- Return type
 dict
- 
brutifus.brutifus_plots.show_scale(ax, scale_length=<Quantity 10. arcsec>, scale_text=None, scale_loc='lower left')[source]¶ Adds a scalebar to a given 2D plot.
- Parameters
 ax – The axes to which to add the sale.
scale_length – The scale length in astropy.units
scale_text – the string to print as the scalebar, or None
scale_loc – string [default: ‘top left’] The location of the scale bar. e.g ‘top right’, ‘bottom left’, etc …
brutifus.brutifus_red module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains several function and tools used by the brutifus routines to correct emission line fluxes for galactic and extragalactic reddening.
Created November 2018, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
- 
brutifus.brutifus_red.D_fm90(x, gamma, x0)[source]¶ The UV points from Fitzpatrick & Massa (1990).
- Parameters
 x (float) – Wavelength in 1/microns.
gamma (float) – The gamma factor.
x0 – The x0 factor.
- 
brutifus.brutifus_red.F_fm90(x)[source]¶ The UV points from Fitzpatrick & Massa (1990).
- Parameters
 x (float) – Wavelength in 1/microns.
- 
brutifus.brutifus_red.alam(lams, ab, av, curve='f99', rv=None, rva=4.3)[source]¶ Calculate the value of A_lambda for different extinction/attenuation laws.
- Parameters
 lams (numpy array) – The values at which to evaluate the attenuation/extinction.
ab (float) – The extinction in B (e.g. according to NED)
av – The extinction in V (e.g. according to NED)
curve (str) – extinction/attenuation curve to use: ‘f99’, ‘fd05’, ‘cal00’, ‘cal00*’, ‘ccm89’
rv (float) – The value of Rv.
rva (float) – The value of Rva, if using curve=’fd05’.
Note
To reproduce the values given in NED, set curve=’f99’, and rv=3.1. The default value of Rv will depend on the curve used (if not specified). rv=3.1 for ‘f99’, rv=3.08 for ‘fd05’, rv=4.05 for ‘cal00’ and ‘cal00*’, and rv=3.1 for ‘ccm89’. ‘cal00*’ includes a 0.44 correction factor to derive the stellar extinction.
- 
brutifus.brutifus_red.cal00_ke(lams, rv)[source]¶ The Calzetti (2000) law.
- Parameters
 lams (numpy array) – the wavelength array in Angstroem.
rv (float) – the Rv value
- Returns
 ke from Calzetti (2000)
- Return type
 numpy array
Note
This does NOT include the 0.44 correction factor to apply for stellar extinction.
- 
brutifus.brutifus_red.ccm89_alav(lams, rv)[source]¶ The law from Caredelli, Clayton and Mathis (1989).
- Parameters
 lams (numpy array) – the wavelength array in Angstroem
rv (float) – the Rv value
- Returns
 alav from CCM 1989.
- Return type
 numpy array
- 
brutifus.brutifus_red.check()[source]¶ Visually check the reddening routines with some plots.
Make some quick plots to test the reddening functions of brutifus, by comparing with the original papers. And make sure I did not mess things up …
- 
brutifus.brutifus_red.extragalactic_red(lam, hahb, hahb_0, curve='fd05', rv=None, rva=4.3)[source]¶ Calculate the extragalactic attenuation (based on Halpha/Hbeta).
- Parameters
 lam (float) – The wavelength at which to evaluate the attenuation/extinction.
hahb (numpy array) – The observed Halpha/Hbeta flux ratio. Can be a 2-D map.
hahb_0 (float) – The reference theoretical unreddened Halpha/Hbeta flux ratio.
curve (str) – Which extinction/attenuation curve to use.
rv (float) – Rv value.
rva (float) – The value of Rva, if using curve=’fd05’.
- Returns
 The ratio of Flux_(unattenuated)/ Flux_(attenuated)
- Return type
 numpy array
Note
See also Vogt+ (2013), Appendix A. By default, Rv=3.08 and Rva=4.3, which gives a curve vey close to that of Calzetti (2000) below the 2000 Ansgtroem bump. Supported curves are
fd05,f99,ccm89,cal00andcal00*.cal00*includes a 0.44 correction factor to derive the stellar extinction.
- 
brutifus.brutifus_red.f99_alebv(lams, rv=3.1)[source]¶ The spline-interpolated Fitzpatrick, PASP (1999) Alambda/E(B-V) function.
- Parameters
 lams (numpy array) – The wavelengths in Angstroem.
rv (float) – The Rv value.
- 
brutifus.brutifus_red.fd05_elvebv(lams, rv=3.08, rva=4.3)[source]¶ Compute E(lambda-V)/E(B-V) according to Fischera&Dopita (2005), given Rv and Rva.
This function reproduces Table 1 in the article. Unlike in Appendix 1 of Vogt et al. (2013), this function relies on the polynomials defined in the text to reproduce the values of E(lambda-V)/E(B-V) for any Rv and Rva.
- Parameters
 lams (numpy array) – The wavelengths at which to evaluate the attenutation.
rv (float) – The Rv value, following Fischera & Dopita.
rva (float) – The Rva value, following Fischera & Dopita.
- Returns
 The value of E(lambda-V)/E(B-V), as in Table 1 and Fig.3 of the article.
- Return type
 numpy array
Note
By default, Rv = 3.08 and Rva = 4.3, which gives a curve vey close to that of Calzetti (2000) below the 2000 Ansgtroem bump. Thanks to R. Sutherland at ANU/RSAA for sharing his reddening code (included in MAPPINGS V), which helped me implement this function properly.
- 
brutifus.brutifus_red.galactic_red(lams, ab, av, curve='f99', rv=None, rva=4.5)[source]¶ Calculate the galactic extinction for a given sight-line, using Ab and Av.
- Parameters
 lams (numpy array) – The values at which to evaluate the attenuation/extinction.
ab (float) – The extinction in B (e.g. according to NED).
av (float) – The extinction in V (e.g. according to NED).
curve (str) – extinction/attenuation curve to use: ‘f99’, ‘fd05’, ‘cal00’, ‘cal00*’, ‘ccm89’
rv (float) – Rv value.
rva (float) – The value of Rva, if using curve=’fd05’.
- Returns
 The ratio of Flux_(unreddened)/ Flux_(observed).
- Return type
 numpy array
Note
To follow NED, set curve=’f99’, and rv = 3.1. The default value of Rv will depend on the curve used (if not specified). rv=3.1 for ‘f99’, rv=3.08 for
fd05, rv=4.05 for ‘cal00’ and ‘cal00*’, and rv=3.1 for ‘ccm89’.cal00*includes a 0.44 correction factor to derive the stellar extinction.
- 
brutifus.brutifus_red.hahb_to_av(hahb, hahb_0, curve='fd05', rv=None, rva=4.3)[source]¶ Get the reddening in Av mag, from Ha/Hb ratio.
- Parameters
 ha_hb (numpy array) – The flux ratio of Halpha to Hbeta (NOT the log!)
ha_hb_0 (float) – The theoretical value of Halpha/Hbeta. (2.86 for SB, more for AGNs)
curve (str) – Which reddeing law to use ?
rv (float) – The value of Rv to use. None for the default.
- Returns
 The corrseponding values of Av.
- Return type
 1D numpy array
Note
See also Vogt+ (2013), Appendix A. By default, Rv = 3.08 and Rva = 4.3, which gives a curve vey close to that of Calzetti (2000) below the 2000 Ansgtroem bump.
brutifus.brutifus_tools module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains general tools for the brutifus routines to fit the stellar continuum and the emission lines in an IFU data cube.
Created November 2018, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
- 
brutifus.brutifus_tools.extract_cube(fn, inst)[source]¶ Extracts the data and error associated with a given datacube.
- Parameters
 fn (string) – relative path to file
inst (string) – Name of the instrument that took the data
- Returns
 [[lams,data,error], [header0, header_data, header_error]]
- Return type
 list
- 
brutifus.brutifus_tools.hdu_add_brutifus(hdu, procstep)[source]¶ Adds dedicated brutifus keywords to a FITS file header.
- Parameters
 hdu – The destination hdu to which the brutifus keywords must be added.
procstep (str) – The name of the processing step creating the FITS file.
- Returns
 The newheader with brutifus info included.
- 
brutifus.brutifus_tools.hdu_add_lams(newhdu, refheader)[source]¶ Adds the wavelength information from a reference header to a new hdu.
- Parameters
 newhdu – The destination hdu to which the wavelength keywords must be added.
refheader – The reference header, from which to transer the wavelength keywords.
- Returns
 FITS HDU, the newheader with wavelength info included.
Note
Keywords transfered are ‘CTYPE3’, ‘CUNIT3’, ‘CD3_3’, ‘CRPIX3’, ‘CRVAL3’, ‘CD1_3’, ‘CD2_3’, ‘CD3_1’ and ‘CD3_2’.
- 
brutifus.brutifus_tools.hdu_add_wcs(newhdu, refheader)[source]¶ Adds the WCS coordinates from a reference header to a new hdu.
- Parameters
 newheader – The destination hdu to which the WCS keywords must be added.
refheader – The reference header, from which to transer the WCS keywords.
- Returns
 The new hdu with WCS info included.
Note
Keywords transfered are ‘CRPIX1’, ‘CD1_1’, ‘CTYPE1’, ‘CUNIT1’, ‘CRPIX2’, ‘CD2_2’, ‘CTYPE2’, ‘CUNIT2’, ‘CD1_2’, ‘CD2_1’, ‘CRVAL1’ and ‘CRVAL2’.
- 
brutifus.brutifus_tools.inst_resolution(inst='MUSE', get_ff=False, show_plot=False)[source]¶ Returns the functional resolution of an instrument as a function of the wavelength.
Returns a callable function of the wavelength (in Angstroem !).
- Parameters
 inst (str) – The name tag referring to a given instrument.
get_ff (bool) – Whether to recompute the given function from a reference dataset or not. Only valid with inst = ‘MUSE’.
show_plot (bool) – Whether to make a plot of the function.
- Returns
 A function that takes a float (lambda in Angstroem), and returns the corresponding value of the chosen instrument resolution.
- Return type
 func
Note
Supported instruments: ‘MUSE’
- 
brutifus.brutifus_tools.nearest_2dpoint(point, points)[source]¶ Returns the nearest neighbor from a bung of points, and the distance
- Parameters
 point (numpy array) – 1x2 array with x, y coord
points (numpy array) – Nx2 array with x, y coords
- Returns
 the min distance, the delta-x and delta-y, and the closest point
- Return type
 list
brutifus.brutifus_version module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains the version of the code.
Created August 2019, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
brutifus.brutifus_wcs module¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file contains WCS-related function for the higher-leve brutifus routines.
Created August 2019, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au
- 
brutifus.brutifus_wcs.get_linear_WCS_corr(fn, obstime=None, verbose=True, suffix=None, target=None)[source]¶ Identify the linear offset between Gaia and the WCS solution of a given 2D image.
- Parameters
 fn (string) – 2D FITS image filename (and location)
obstime (astropy.Time()) – Observing time and date
suffix (str) – the tag of this step (for plot filename)
target (str) – target name (for plot filename)
verbose (bool) – print some info to screen
- Returns
 (dx,dy), the linear offsets in pixels
- Return type
 tuple
Note
Assumes the image is in the primary extension.
Module contents¶
brutifus: a set of Python modules to process datacubes from integral field spectrographs.
Copyright (C) 2018-2019, F.P.A. Vogt
This file specifies the kind of functions that are made directly available to the user.
Created November 2018, F.P.A. Vogt - frederic.vogt@alumni.anu.edu.au