FIFI-LS Redux Developer’s Manual¶
Introduction¶
Document Purpose¶
This document is intended to provide all the information necessary to maintain the FIFI-LS Redux pipeline, used to produce Level 2, 3, and 4 reduced products for FIFI-LS data, in either manual or automatic mode. Level 2 is defined as data that has been processed to correct for instrumental effects; Level 3 is defined as data that has been flux-calibrated; Level 4 is any higher data product. A more general introduction to the data reduction procedure and the scientific justification of the algorithms is available in the FIFI-LS Redux User’s Manual.
This manual applies to FIFI-LS Redux version 2.7.0.
Redux Revision History¶
FIFI-LS Redux was developed as four separate reduction packages: PyFIFI, which provides the data processing algorithms; PypeUtils, which provides general-purpose scientific algorithms; PySpextool, which provides some supporting libraries for spectroscopic data reduction; and Redux, which provides the interactive GUI, the automatic pipeline wrapper, and the supporting structure to call the FIFI-LS algorithms.
PyFIFI is a Python translation of an IDL package developed for the reduction of FIFI-LS data. Dr. Kaori Nishikida and Dr. Randolf Klein initially developed a prototype of the algorithms, around 2004. Development in IDL was picked up in February 2015 by Jennifer Holt and Dr. William Vacca for USRA/SOFIA, with reference to a separate FIFI-LS pipeline, developed in LabView by Rainer Hoenle. Integration into the Redux interface and completion of the reduction algorithms was undertaken by Melanie Clarke and Dr. William Vacca in September 2015. Version 1.0.0 of the package was released for use at SOFIA in November 2015. Version 2.0.0 of the package was entirely reimplemented in Python, primarily by Daniel Perera, with support and integration by Melanie Clarke.
PypeUtils was developed as a shared code base for SOFIA Python pipelines, primarily by Daniel Perera for USRA/SOFIA. It contains any algorithms or utilities likely to be of general use for data reduction pipelines. From this package, the FIFI-LS pipeline uses some FITS handling utilities, multiprocessing tools, and interpolation and resampling functions.
Like PyFIFI, PySpextool is a translation of an earlier SOFIA IDL library, called FSpextool. FSpextool was built on top of a pre-release version of Spextool 4, an IDL-based package developed by Dr. Michael Cushing and Dr. William Vacca for the reduction of data from the SpeX instrument on the NASA Infrared Telescope Facility (IRTF). Spextool was originally released in October 2000, and has undergone a number of major and minor revisions since then. The last stable public release was v4.1, released January 2016. As Spextool does not natively support automatic command-line processing, FSpextool for SOFIA adapted the Spextool library to the SOFIA architecture and instruments; version 1.0.0 was originally released for use at SOFIA in July 2013. PySpextool is a Python translation of the core algorithms in this package, developed by Daniel Perera and Melanie Clarke, and first released at SOFIA for use in the FIFI-LS pipeline in October 2019.
Redux was originally developed to be a general-purpose interface to IDL data reduction algorithms. It provided an interactive GUI and an object-oriented structure for calling data reduction processes, but it did not provide its own data reduction algorithms. It was developed by Melanie Clarke, for the SOFIA DPS team, to provide a consistent front-end to the data reduction pipelines for multiple instruments and modes, including FIFI-LS. It was redesigned and reimplemented in Python, with similar functionality, to support Python pipelines for SOFIA. The first release of the IDL version was in December 2013; the Python version was first released to support the HAWC+ pipeline in September 2018.
In 2020, all SOFIA pipeline packages were unified into a single package,
called sofia_redux
. The interface package (Redux) was renamed to
sofia_redux.pipeline
, PypeUtils was renamed to sofia_redux.toolkit
,
PySpextool was renamed to sofia_redux.spectroscopy
, and the PyFIFI
package was renamed to sofia_redux.instruments.fifi_ls
. An additional
package, to support data visualization, was added as
sofia_redux.visualization
.
In 2021 and 2022, additional optional features from the sofia_redux
package were incorporated into the FIFI-LS pipeline. The interface provides
some interactive photometry routines via sofia_redux.calibration
and
some additional support for on-the-fly mode data via sofia_redux.scan
.
Overview of Software Structure¶
The sofia_redux package has several sub-modules organized by functionality:
sofia_redux
├── calibration
├── instruments
│ ├── exes
│ ├── fifi_ls
│ ├── flitecam
│ ├── forcast
│ └── hawc
├── pipeline
├── scan
├── spectroscopy
├── toolkit
└── visualization
The modules used in the FIFI-LS pipeline are described below.
sofia_redux.instruments.fifi_ls¶
The sofia_redux.instruments.fifi_ls
package is written in Python using
standard scientific tools and libraries.
The data reduction algorithms used by
the pipeline are straight-forward functions that generally take an
input file name, corresponding to a FIFI-LS FITS file, as an argument
and write an output file to disk as a result. The return value in this
case is the output file name. Optionally, the data may be supplied and
returned as an astropy.io.fits.HDUList
data structure.
Other optional parameters for these functions are provided via keyword parameters in the function calls.
sofia_redux.spectroscopy¶
The sofia_redux.spectroscopy
package contains a library of general-purpose
spectroscopic functions. The FIFI-LS pipeline uses a few of the algorithms
from this library, for spectroscopic smoothing and binning.
sofia_redux.toolkit¶
sofia_redux.toolkit
is a repository for classes and functions of general usefulness,
intended to support multiple SOFIA pipelines. It contains several submodules,
for interpolation, multiprocessing support, numerical calculations, and
FITS handling. Most utilities are simple functions that take input
as arguments and return output values. Some more complicated functionality
is implemented in several related classes; see the sofia_redux.toolkit.resampling
module documentation for more information.
sofia_redux.visualization¶
The sofia_redux.visualization
package contains plotting and display
routines, relating to visualizing SOFIA data. For the FIFI-LS pipeline,
this package currently provides a module that supports generating
quick-look preview images.
sofia_redux.calibration¶
The sofia_redux.calibration
module contains flux calibration algorithms
used to perform photometric or flux calibration calculations on
input images and return their results. For the FIFI-LS pipeline,
this package currently provides support for interactive photometry tools
in the pipeline interface.
sofia_redux.scan¶
The scan package (sofia_redux.scan
) package implements
an iterative map reconstruction algorithm, for reducing continuously
scanned observations. In the FIFI-LS pipeline, it is used to provide
optional support for removing residual correlated gain and noise in
on-the-fly (OTF) mode observations.
For more information on the design and structure of the scan package, see the HAWC+ pipeline developer’s manual and the software documentation for the sofia_redux.scan module.
sofia_redux.pipeline¶
Design¶
Redux is designed to be a light-weight interface to data reduction pipelines. It contains the definitions of how reduction algorithms should be called for any given instrument, mode, or pipeline, in either a command-line interface (CLI) or graphical user interface (GUI) mode, but it does not contain the reduction algorithms themselves.
Redux is organized around the principle that
any data reduction procedure can be accomplished by running a linear
sequence of data reduction steps. It relies on a Reduction
class that
defines what these steps are and in which order they should be run
(the reduction “recipe”). Reductions have an associated Parameter
class that defines what parameters the steps may accept. Because
reduction classes share common interaction methods, they can be
instantiated and called from a completely generic front-end GUI,
which provides the capability to load in raw data files, and then:
set the parameters for a reduction step,
run the step on all input data,
display the results of the processing,
and repeat this process for every step in sequence to complete the
reduction on the loaded data. In order to choose the correct
reduction object for a given data set, the interface uses a Chooser
class, which reads header information from loaded input files and
uses it to decide which reduction object to instantiate and return.
The GUI is a PyQt application, based around the Application
class. Because the GUI operations are completely separate from the
reduction operations, the automatic pipeline script is simply a wrapper
around a reduction object: the Pipe
class uses the Chooser to
instantiate the Reduction, then calls its reduce method, which calls
each reduction step in order and reports any output files generated.
Both the Application and Pipe classes inherit from a common Interface
class that holds reduction objects and defines the methods for
interacting with them. The Application
class additionally may
start and update custom data viewers associated with the
data reduction; these should inherit from the Redux Viewer
class.
All reduction classes inherit from the generic Reduction
class,
which defines the common interface for all reductions: how parameters
are initialized and modified, how each step is called.
Each specific reduction class must then define
each data reduction step as a method that calls the appropriate
algorithm.
The reduction methods may contain any code necessary to accomplish the data reduction step. Typically, a reduction method will contain code to fetch the parameters for the method from the object’s associated Parameters class, then will call an external data reduction algorithm with appropriate parameter values, and store the results in the ‘input’ attribute to be available for the next processing step. If processing results in data that can be displayed, it should be placed in the ‘display_data’ attribute, in a format that can be recognized by the associated Viewers. The Redux GUI checks this attribute at the end of each data reduction step and displays the contents via the Viewer’s ‘display’ method.
Parameters for data reduction are stored as a list of ParameterSet
objects, one for each reduction step. Parameter sets contain the key,
value, data type, and widget type information for every parameter.
A Parameters
class may generate these parameter sets by
defining a default dictionary that associates step names with parameter
lists that define these values. This dictionary may be defined directly
in the Parameters class, or may be read in from an external configuration
file or software package, as appropriate for the reduction.
FIFI-LS Redux¶
To interface to the FIFI-LS pipeline algorithms, Redux defines
the FIFILSReduction
and FIFILSParameters
classes.
See Fig. 113 for a sketch of
the Redux classes used by the FIFI-LS pipeline. The FIFILSReduction class
calls the sofia_redux.instruments.fifi_ls
reduction functions, with support
from the sofia_redux.toolkit
and sofia_redux.spectroscopy packages
.
The FIFILSParameters class defines default parameter values for all reduction
steps.
Since the FIFI-LS reduction algorithms are simple functions, the FIFILSReduction class provides a wrapper method for each step in the pipeline:
Check Headers: calls
sofia_redux.instruments.fifi_ls.make_header
Split Grating/Chop: calls
sofia_redux.instruments.fifi_ls.split_grating_and_chop
Fit Ramps: calls
sofia_redux.instruments.fifi_ls.fit_ramps
Subtract Chops: calls
sofia_redux.instruments.fifi_ls.subtract_chops
Combine Nods: calls
sofia_redux.instruments.fifi_ls.combine_nods
Lambda Calibrate: calls
sofia_redux.instruments.fifi_ls.lambda_calibrate
Spatial Calibrate: calls
sofia_redux.instruments.fifi_ls.spatial_calibrate
Apply Flat: calls
sofia_redux.instruments.fifi_ls.apply_static_flat
Combine Scans: calls
sofia_redux.instruments.fifi_ls.combine_grating_scans
Telluric Correct: calls
sofia_redux.instruments.fifi_ls.telluric_correct
Flux Calibrate: calls
sofia_redux.instruments.fifi_ls.flux_calibrate
Correct Wave Shift: calls
sofia_redux.instruments.fifi_ls.correct_wave_shift
Resample: calls
sofia_redux.instruments.fifi_ls.resample
Make Spectral Map: calls
sofia_redux.visualization.quicklook.make_image
The recipe attribute for the reduction class specifies the above steps, in that order. Most FIFI-LS steps provide a wrapper function that allows processing to proceed in parallel, if desired, when called on a list of input files. The FIFILSReduction interface uses these wrapper functions where appropriate, and the FIFILSParameters class defines the defaults for the parallel processing capabilities.
If an intermediate file is loaded, its product type is identified from the PRODTYPE keyword in its header, and the prodtype_map attribute is used to identify the next step in the recipe. This allows reductions to be picked up at any point, from a saved intermediate file. For more information on the scientific goals and methods used in each step, see the FIFI-LS Redux User’s Manual.
The FIFILSReduction class also contains several helper functions, that
assist in reading and writing files on disk, and identifying which
data to display in the interactive GUI. Display is performed via
the QADViewer
class provided by the Redux package.
Detailed Algorithm Information¶
The following sections list detailed information on the functions and procedures most likely to be of interest to the developer.
sofia_redux.instruments.fifi_ls¶
sofia_redux.instruments.fifi_ls.apply_static_flat Module¶
Functions¶
Clear all data from the flat cache. |
|
|
Retrieves flat data from the flat cache. |
|
Store flat data in the flat cache. |
|
Return flat data table |
|
Divide extension data by static flat. |
|
Apply pre-reduced and normalized flat to FIFI-LS data. |
|
Wrapper for apply_static_flat over multiple files. |
sofia_redux.instruments.fifi_ls.combine_grating_scans Module¶
Functions¶
|
Get overlapping wavelengths for all extensions. |
|
Combine all extensions into a single extension. |
|
Combine separate grating positions in FIFI-LS data. |
|
Wrapper for combine_grating_scans over multiple files. |
sofia_redux.instruments.fifi_ls.combine_nods Module¶
Functions¶
|
Extract various properties of all files for subsequent combination. |
|
Find a B nod for each A nod. |
|
Combine nods of ramp-fitted, chop-subtracted data. |
sofia_redux.instruments.fifi_ls.correct_wave_shift Module¶
Functions¶
|
Correct LAMBDA extension in HDU list. |
|
Correct wavelength shift due to motion of the Earth. |
|
Wrapper for correct_wave_shift over multiple files. |
sofia_redux.instruments.fifi_ls.fit_ramps Module¶
Functions¶
|
Returns the readout range as extracted from header. |
|
Trim and reshape data to separate ramps. |
|
Applies linear fit (y = ax + b) over the second dimension of a 4D array. |
|
Wrapper to process a single HDU extension. |
|
Fit straight lines to raw voltage ramps to calculate corresponding flux. |
|
Wrapper for fit_ramps over multiple files. |
sofia_redux.instruments.fifi_ls.flux_calibrate Module¶
Functions¶
|
Apply response data to data in an HDUList. |
|
Convert spectra to physical flux units. |
|
Wrapper for flux_calibrate over multiple files. |
sofia_redux.instruments.fifi_ls.get_atran Module¶
Functions¶
Clear all data from the atran cache. |
|
|
Retrieves atmospheric transmission data from the atran cache. |
|
Store atran data in the atran cache. |
|
Retrieve reference atmospheric transmission data. |
sofia_redux.instruments.fifi_ls.get_badpix Module¶
Functions¶
Clear all data from the badpix cache. |
|
|
Retrieves bad pixel masks or default file from the badpix cache. |
|
Store badpix data in the badpix cache. |
Read the badpix defaults table. |
|
|
Retrieve bad pixel data. |
sofia_redux.instruments.fifi_ls.get_lines Module¶
Functions¶
Retrieve FIFI-LS lines of interest. |
sofia_redux.instruments.fifi_ls.get_resolution Module¶
Functions¶
Clear all data from the resolution cache. |
|
|
Retrieves table from the resolution cache. |
|
Store resolution data in the resolution cache. |
|
Retrieve expected spectral or spatial resolution. |
sofia_redux.instruments.fifi_ls.get_response Module¶
Functions¶
Clear all data from the response cache. |
|
|
Retrieves response data from the response cache. |
|
Store response data in the response cache |
|
Retrieve instrumental response data. |
sofia_redux.instruments.fifi_ls.lambda_calibrate Module¶
Functions¶
Clear all data from the wavecal cache. |
|
|
Retrieves wavelength calibration data from the wavecal cache. |
|
Store wavecal data in the wavecal cache. |
|
Read and return the data from the wavecal file. |
|
Calculate wavelengths for each spectral pixel. |
|
Apply spectral calibration. |
|
Wrapper for lambda_calibrate over multiple files. |
sofia_redux.instruments.fifi_ls.make_header Module¶
Functions¶
|
Create the header keyword requirements definition table. |
Clear all data from the requirements cache. |
|
Get the keyword comments table from the cache. |
|
|
Returns a dataframe containing the header requirements. |
|
Returns a dictionary containing header keyword comments. |
|
Update the base header with values that may be missing. |
|
Order headers based on contents. |
|
Standardize and combine input headers. |
sofia_redux.instruments.fifi_ls.readfits Module¶
Functions¶
|
Read a FIFI-LS FITS file and return data and header. |
sofia_redux.instruments.fifi_ls.resample Module¶
Functions¶
|
Combine all files into a single dataset. |
|
Get output coordinate system and useful parameters. |
|
Create the exposure map from combined files. |
|
Combines multiple datasets using radial basis functions and mean combine. |
|
Resamples combined data on regular grid using local polynomial fitting. |
|
Create final HDU List from combined data and gridding info. |
|
Resample unevenly spaced FIFI-LS pixels to regular grid. |
|
Reduce the files using a scan reduction. |
|
Remove all temporary files created during a scan reduction. |
sofia_redux.instruments.fifi_ls.spatial_calibrate Module¶
Functions¶
Clear all data from the spatial cache. |
|
|
Retrieves spatial data from the spatial cache. |
|
Store spatial data in the spatial cache. |
|
Calculate X and Y offsets for each spaxel. |
|
Read the correct delta vector spatial coefficients. |
|
Calculate X and Y spatial offsets. |
|
Apply spatial calibration (x and y offsets). |
|
Wrapper for spatial_calibrate over multiple files. |
sofia_redux.instruments.fifi_ls.split_grating_and_chop Module¶
Functions¶
|
Returns RED or BLUE channel extracted from header and data. |
|
Check if a file can be split by basic header checks. |
|
Remove partial ramps and "unpaired" chop plateaus. |
|
Names the split files. |
|
Separate data into different files, by chop index. |
|
Split FIFI-LS raw data file into separate FITS files. |
|
Wrapper for split_grating_and_chop over multiple files. |
sofia_redux.instruments.fifi_ls.subtract_chops Module¶
Functions¶
|
Given the chop 0 filename, return the chop 0 and chop 1 HDU lists. |
|
Subtract extensions in the correct order. |
|
Subtract chops of ramp-fitted data. |
|
Wrapper for subtract_chops over multiple files. |
sofia_redux.instruments.fifi_ls.telluric_correct Module¶
Functions¶
|
Apply transmission data to data in an HDUList. |
|
Correct spectra for atmospheric absorption features. |
|
Wrapper for telluric_correct over multiple files. |
sofia_redux.toolkit¶
sofia_redux.toolkit.utilities.fits Module¶
Functions¶
|
Insert or replace a keyword and value in the header |
|
Add HISTORY message to a FITS header before the pipeline. |
|
Make a function to add HISTORY messages to a header, prefixed with a string. |
|
Retrieve the data and header from a FITS file |
|
Returns the header of a FITS file |
|
Returns the data from a FITS file |
|
Convert a FITS header to an array of strings |
|
Convert an array of strings to a FITS header |
|
Returns the HDUList from a FITS file |
|
Write a HDULists to disk. |
|
Get a key value from a header. |
|
Context manager to temporarily set the log level. |
|
Order headers based on contents. |
|
Merge input headers. |
sofia_redux.toolkit.utilities.multiprocessing Module¶
Functions¶
|
Returns the maximum number of CPU cores available |
|
Return the actual number of cores to use for a given number of jobs. |
|
Return a valid number of jobs in the range 1 <= jobs <= max_cores. |
|
Process a series of tasks in serial, or in parallel using joblib. |
|
Pickle a object and save to the given filename. |
|
Unpickle a string argument if it is a file, and return the result. |
|
Pickle a list of objects to a temporary directory. |
|
Restore pickle files to objects in-place. |
Return whether the process is running in the main thread. |
|
|
Context manager to temporarily log messages for unique processes/threads |
|
Context manager to output log messages during multiprocessing. |
|
Remove all temporary logging files/directories and handle log records. |
|
Return the results of the function in multitask and save log records. |
|
Store the log records in a pickle file rather than emitting. |
|
Wrap a function for use with |
Classes¶
A log handler for multitask. |
Class Inheritance Diagram¶
digraph inheritance7a3b669de2 { bgcolor=transparent; rankdir=LR; size=""; "Filterer" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="A base class for loggers and handlers which allows them to share"]; "Handler" [URL="https://docs.python.org/3/library/logging.html#logging.Handler",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Handler instances dispatch logging events to specific destinations."]; "Filterer" -> "Handler" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "MultitaskHandler" [URL="../../../api/sofia_redux.toolkit.utilities.multiprocessing.MultitaskHandler.html#sofia_redux.toolkit.utilities.multiprocessing.MultitaskHandler",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A log handler for multitask."]; "Handler" -> "MultitaskHandler" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.toolkit.resampling Package¶
Functions¶
|
Set certain arrays to a fixed size based on a mask array. |
|
Return the sum of an array. |
Returns distance weights based on offsets and scaled adaptive weighting. |
|
Returns distance weights based on offsets and shaped adaptive weighting. |
|
|
Returns a distance weighting based on coordinate offsets. |
Returns distance weights based on coordinate offsets and matrix operation. |
|
|
Calculate the final weighting factor based on errors and other weights. |
|
Defines a hyperrectangle edge around a coordinate distribution. |
|
Defines an edge based on statistical deviation from a sample distribution. |
|
Defines an ellipsoid edge around a coordinate distribution. |
|
Defines an edge based on the range of coordinates in each dimension. |
|
Determine whether a reference position is within a distribution "edge". |
|
Checks the sample distribution is suitable for a polynomial fit order. |
|
Checks maximum order for sample coordinates bounding a reference. |
|
Checks maximum order based only on the number of samples. |
|
Checks maximum order based on unique samples, irrespective of reference. |
|
Uses |
|
Converts a Python iterable to a Numba list for use in jitted functions. |
|
Calculate the covariance of a distribution. |
|
Returns the mean coordinate of a distribution. |
|
Calculates the inverse covariance matrix inverse of the fit coefficients. |
|
Return the weighted mean-square-cross-product (mscp) of sample derivatives. |
|
Return variance at each coordinate based on coordinate distribution. |
|
Calculates covariance matrix inverse of fit coefficients from mean error. |
|
Calculates the derivative of a polynomial at a single point. |
|
Calculates the derivative of a polynomial at multiple points. |
|
Fast 1-D integration using Trapezium method. |
|
Returns the dot product of phi and coefficients. |
|
Calculates variance given the polynomial terms of a coordinate. |
|
Calculates the residual of a polynomial fit to data. |
|
Evaluate a special case of the logistic function where f(x0) = 0.5. |
|
Evaluate the generalized logistic function. |
|
Derive polynomial terms for a coordinate set given polynomial exponents. |
|
Return values of a multivariate Gaussian in K-dimensional coordinates. |
|
Fill output arrays with set values on fit failure. |
|
Variance at reference coordinate derived from distribution uncertainty. |
|
Creates a mapping from polynomial exponents to derivatives. |
|
Define a set of polynomial exponents. |
|
Derive polynomial terms given coordinates and polynomial exponents. |
|
Returns the relative density of samples compared to a uniform distribution. |
|
ResamplePolynomial data using local polynomial fitting. |
|
ResamplePolynomial data using local polynomial fitting. |
|
Apply scaling factors and offsets to N-dimensional data. |
|
Applies the function |
|
Applies the function |
|
Applies the function |
|
Applies the function |
|
Wrapper for |
|
Scales a Gaussian weighting kernel based on a prior fit. |
|
Wrapper for |
|
Shape and scale the weighting kernel based on a prior fit. |
|
Evaluate a scaled and shifted logistic function. |
|
Derive polynomial terms for a single coordinate given polynomial exponents. |
|
Convenience function returning matrices suitable for linear algebra. |
|
Find least squares solution of Ax=B and rank of A. |
|
Solve for a fit at a single coordinate. |
|
Solve all fits within one intersection block. |
|
Inverse covariance matrices on fit coefficients from errors and residuals. |
|
Return the weighted mean of data, variance, and reduced chi-squared. |
|
Derive a polynomial fit from samples, then calculate fit at single point. |
|
Return the reduced chi-squared given residuals and sample errors. |
|
Return the reduced chi-squared given residuals and constant variance. |
|
Calculate the sum-of-squares-and-cross-products of a matrix. |
|
A sigmoid function used by the "shaped" adaptive resampling algorithm. |
|
Updates a mask, setting False values where weights are zero or non-finite. |
|
Determine the variance given offsets from the expected value. |
|
Calculate variance of a fit from the residuals of the fit to data. |
|
Calculate the weighted mean of a data set. |
|
Calculated mean weighted variance. |
|
Utility function to calculate the biased weighted variance. |
Classes¶
|
Define and initialize a resampling grid. |
|
Create a tree structure for use with the resampling algorithm. |
alias of |
|
|
Class to resample data using kernel convolution. |
|
Class to resample data using local polynomial fits. |
sofia_redux.spectroscopy¶
sofia_redux.spectroscopy.earthvelocity Module¶
Functions¶
|
Find the radial LSR velocity towards sky coordinates. |
|
Calculate the Cartesian velocity of the Sun. |
|
Provide velocities of the Earth towards a celestial position. |
sofia_redux.spectroscopy.radvel Module¶
Functions¶
|
Calculate the expected extrinsic radial velocity wavelength shift. |
sofia_redux.spectroscopy.smoothres Module¶
Functions¶
|
Smooth a data to a constant resolution |
sofia_redux.calibration¶
sofia_redux.calibration.pipecal_photometry Module¶
Fit a source and perform aperture photometry.
Functions¶
|
Perform aperture photometry and profile fits on image data. |
sofia_redux.scan¶
sofia_redux.scan.reduction.reduction Module¶
Classes¶
|
Initialize the reduction object. |
Class Inheritance Diagram¶
digraph inheritancee2df6a715d { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "Reduction" [URL="../../../api/sofia_redux.scan.reduction.reduction.Reduction.html#sofia_redux.scan.reduction.reduction.Reduction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ReductionVersion" -> "Reduction" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ReductionVersion" [URL="../../../api/sofia_redux.scan.reduction.version.ReductionVersion.html#sofia_redux.scan.reduction.version.ReductionVersion",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "ReductionVersion" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.channels.channels Module¶
Classes¶
|
Initialize FIFI-LS channels. |
Class Inheritance Diagram¶
digraph inheritance71de4c5caf { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "Camera" [URL="../../../api/sofia_redux.scan.channels.camera.camera.Camera.html#sofia_redux.scan.channels.camera.camera.Camera",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "Channels" -> "Camera" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "Channels" [URL="../../../api/sofia_redux.scan.channels.channels.Channels.html#sofia_redux.scan.channels.channels.Channels",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "Channels" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ColorArrangement" [URL="../../../api/sofia_redux.scan.channels.camera.color_arrangement.ColorArrangement.html#sofia_redux.scan.channels.camera.color_arrangement.ColorArrangement",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="The color arrangement channels expand upon the camera channels by defining"]; "Camera" -> "ColorArrangement" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsChannels" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.channels.channels.FifiLsChannels.html#sofia_redux.scan.custom.fifi_ls.channels.channels.FifiLsChannels",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaCamera" -> "FifiLsChannels" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SingleColorArrangement" [URL="../../../api/sofia_redux.scan.channels.camera.single_color_arrangement.SingleColorArrangement.html#sofia_redux.scan.channels.camera.single_color_arrangement.SingleColorArrangement",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Expands upon the color arrangement channels by defining each pixel as a"]; "ColorArrangement" -> "SingleColorArrangement" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaCamera" [URL="../../../api/sofia_redux.scan.custom.sofia.channels.camera.SofiaCamera.html#sofia_redux.scan.custom.sofia.channels.camera.SofiaCamera",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SingleColorArrangement" -> "SofiaCamera" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.channels.channel_numba_functions Module¶
Functions¶
|
Calculate the relative frame weights from the input variance. |
sofia_redux.scan.custom.fifi_ls.channels.channel_data.channel_data Module¶
Classes¶
|
Initialize the channel data for the FIFI-LS instrument. |
Class Inheritance Diagram¶
digraph inheritancee34475cfa8 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "ChannelData" [URL="../../../api/sofia_redux.scan.channels.channel_data.channel_data.ChannelData.html#sofia_redux.scan.channels.channel_data.channel_data.ChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "FlaggedData" -> "ChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ColorArrangementData" [URL="../../../api/sofia_redux.scan.channels.channel_data.color_arrangement_data.ColorArrangementData.html#sofia_redux.scan.channels.channel_data.color_arrangement_data.ColorArrangementData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Expands upon the channel data by defining each channel as a pixel on a"]; "ChannelData" -> "ColorArrangementData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsChannelData" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.channels.channel_data.channel_data.FifiLsChannelData.html#sofia_redux.scan.custom.fifi_ls.channels.channel_data.channel_data.FifiLsChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SingleColorChannelData" -> "FifiLsChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaChannelData" -> "FifiLsChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FlaggedData" [URL="../../../api/sofia_redux.scan.flags.flagged_data.FlaggedData.html#sofia_redux.scan.flags.flagged_data.FlaggedData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "FlaggedData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SingleColorChannelData" [URL="../../../api/sofia_redux.scan.channels.channel_data.single_color_channel_data.SingleColorChannelData.html#sofia_redux.scan.channels.channel_data.single_color_channel_data.SingleColorChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ColorArrangementData" -> "SingleColorChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaChannelData" [URL="../../../api/sofia_redux.scan.custom.sofia.channels.channel_data.channel_data.SofiaChannelData.html#sofia_redux.scan.custom.sofia.channels.channel_data.channel_data.SofiaChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ColorArrangementData" -> "SofiaChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.channels.channel_group.channel_group Module¶
Classes¶
|
Initialize a FIFI-LS channel group. |
Class Inheritance Diagram¶
digraph inheritancecf4f132c11 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "ChannelData" [URL="../../../api/sofia_redux.scan.channels.channel_data.channel_data.ChannelData.html#sofia_redux.scan.channels.channel_data.channel_data.ChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "FlaggedData" -> "ChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ChannelGroup" [URL="../../../api/sofia_redux.scan.channels.channel_group.channel_group.ChannelGroup.html#sofia_redux.scan.channels.channel_group.channel_group.ChannelGroup",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "FlaggedDataGroup" -> "ChannelGroup" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ChannelData" -> "ChannelGroup" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ColorArrangementData" [URL="../../../api/sofia_redux.scan.channels.channel_data.color_arrangement_data.ColorArrangementData.html#sofia_redux.scan.channels.channel_data.color_arrangement_data.ColorArrangementData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Expands upon the channel data by defining each channel as a pixel on a"]; "ChannelData" -> "ColorArrangementData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsChannelData" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.channels.channel_data.channel_data.FifiLsChannelData.html#sofia_redux.scan.custom.fifi_ls.channels.channel_data.channel_data.FifiLsChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SingleColorChannelData" -> "FifiLsChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaChannelData" -> "FifiLsChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsChannelGroup" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.channels.channel_group.channel_group.FifiLsChannelGroup.html#sofia_redux.scan.custom.fifi_ls.channels.channel_group.channel_group.FifiLsChannelGroup",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "FifiLsChannelData" -> "FifiLsChannelGroup" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "ChannelGroup" -> "FifiLsChannelGroup" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FlaggedData" [URL="../../../api/sofia_redux.scan.flags.flagged_data.FlaggedData.html#sofia_redux.scan.flags.flagged_data.FlaggedData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "FlaggedData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FlaggedDataGroup" [URL="../../../api/sofia_redux.scan.flags.flagged_data_group.FlaggedDataGroup.html#sofia_redux.scan.flags.flagged_data_group.FlaggedDataGroup",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "FlaggedData" -> "FlaggedDataGroup" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SingleColorChannelData" [URL="../../../api/sofia_redux.scan.channels.channel_data.single_color_channel_data.SingleColorChannelData.html#sofia_redux.scan.channels.channel_data.single_color_channel_data.SingleColorChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ColorArrangementData" -> "SingleColorChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaChannelData" [URL="../../../api/sofia_redux.scan.custom.sofia.channels.channel_data.channel_data.SofiaChannelData.html#sofia_redux.scan.custom.sofia.channels.channel_data.channel_data.SofiaChannelData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ColorArrangementData" -> "SofiaChannelData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.frames.frames Module¶
Classes¶
Initialize FIFI-LS frames. |
Class Inheritance Diagram¶
digraph inheritance9892ce9ae4 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "FifiLsFrames" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.frames.frames.FifiLsFrames.html#sofia_redux.scan.custom.fifi_ls.frames.frames.FifiLsFrames",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaFrames" -> "FifiLsFrames" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FlaggedData" [URL="../../../api/sofia_redux.scan.flags.flagged_data.FlaggedData.html#sofia_redux.scan.flags.flagged_data.FlaggedData",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "FlaggedData" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "Frames" [URL="../../../api/sofia_redux.scan.frames.frames.Frames.html#sofia_redux.scan.frames.frames.Frames",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "FlaggedData" -> "Frames" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "HorizontalFrames" [URL="../../../api/sofia_redux.scan.frames.horizontal_frames.HorizontalFrames.html#sofia_redux.scan.frames.horizontal_frames.HorizontalFrames",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "Frames" -> "HorizontalFrames" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaFrames" [URL="../../../api/sofia_redux.scan.custom.sofia.frames.frames.SofiaFrames.html#sofia_redux.scan.custom.sofia.frames.frames.SofiaFrames",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "HorizontalFrames" -> "SofiaFrames" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.frames.fifi_ls_frame_numba_functions Module¶
Functions¶
|
Utility function to validate HAWC+ frames following a data read. |
|
Calculate the relative frame weights from the input variance. |
sofia_redux.scan.custom.fifi_ls.info.info Module¶
Functions¶
|
Convert (frame, pixel) indexed data to consistent flat arrays. |
|
Use the calculated gains from the scan reduction to normalize data. |
Classes¶
|
Initialize the FIFI-LS information. |
Class Inheritance Diagram¶
digraph inheritance6f9f54edc9 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "CameraInfo" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Info" -> "CameraInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsInfo" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.info.info.FifiLsInfo.html#sofia_redux.scan.custom.fifi_ls.info.info.FifiLsInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaInfo" -> "FifiLsInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "Info" [URL="../../../api/sofia_redux.scan.info.info.Info.html#sofia_redux.scan.info.info.Info",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "Info" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaInfo" [URL="../../../api/sofia_redux.scan.custom.sofia.info.info.SofiaInfo.html#sofia_redux.scan.custom.sofia.info.info.SofiaInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "WeatherInfo" -> "SofiaInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "CameraInfo" -> "SofiaInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "WeatherInfo" [URL="../../../api/sofia_redux.scan.info.weather_info.WeatherInfo.html#sofia_redux.scan.info.weather_info.WeatherInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="An abstract class used to retrieve information on environmental conditions"]; "Info" -> "WeatherInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.info.astrometry Module¶
Classes¶
Initialize astrometry information for FIFI-LS observations. |
Class Inheritance Diagram¶
digraph inheritancec136787a9e { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "AstrometryInfo" [URL="../../../api/sofia_redux.scan.info.astrometry.AstrometryInfo.html#sofia_redux.scan.info.astrometry.AstrometryInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "InfoBase" -> "AstrometryInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsAstrometryInfo" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.info.astrometry.FifiLsAstrometryInfo.html#sofia_redux.scan.custom.fifi_ls.info.astrometry.FifiLsAstrometryInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaAstrometryInfo" -> "FifiLsAstrometryInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "InfoBase" [URL="../../../api/sofia_redux.scan.info.base.InfoBase.html#sofia_redux.scan.info.base.InfoBase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "InfoBase" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaAstrometryInfo" [URL="../../../api/sofia_redux.scan.custom.sofia.info.astrometry.SofiaAstrometryInfo.html#sofia_redux.scan.custom.sofia.info.astrometry.SofiaAstrometryInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "AstrometryInfo" -> "SofiaAstrometryInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.info.detector_array Module¶
Classes¶
Initialize the FIFI-LS detector array information. |
Class Inheritance Diagram¶
digraph inheritanceab1f282e56 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "FifiLsDetectorArrayInfo" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.info.detector_array.FifiLsDetectorArrayInfo.html#sofia_redux.scan.custom.fifi_ls.info.detector_array.FifiLsDetectorArrayInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaDetectorArrayInfo" -> "FifiLsDetectorArrayInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "InfoBase" [URL="../../../api/sofia_redux.scan.info.base.InfoBase.html#sofia_redux.scan.info.base.InfoBase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "InfoBase" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaDetectorArrayInfo" [URL="../../../api/sofia_redux.scan.custom.sofia.info.detector_array.SofiaDetectorArrayInfo.html#sofia_redux.scan.custom.sofia.info.detector_array.SofiaDetectorArrayInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "InfoBase" -> "SofiaDetectorArrayInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.info.instrument Module¶
Classes¶
Initialize the FIFI-LS instrument information. |
Class Inheritance Diagram¶
digraph inheritance52fed885f9 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "CameraInstrumentInfo" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled"]; "InstrumentInfo" -> "CameraInstrumentInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "FifiLsInstrumentInfo" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.info.instrument.FifiLsInstrumentInfo.html#sofia_redux.scan.custom.fifi_ls.info.instrument.FifiLsInstrumentInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaInstrumentInfo" -> "FifiLsInstrumentInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "InfoBase" [URL="../../../api/sofia_redux.scan.info.base.InfoBase.html#sofia_redux.scan.info.base.InfoBase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "InfoBase" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "InstrumentInfo" [URL="../../../api/sofia_redux.scan.info.instrument.InstrumentInfo.html#sofia_redux.scan.info.instrument.InstrumentInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "InfoBase" -> "InstrumentInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaInstrumentInfo" [URL="../../../api/sofia_redux.scan.custom.sofia.info.instrument.SofiaInstrumentInfo.html#sofia_redux.scan.custom.sofia.info.instrument.SofiaInstrumentInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "CameraInstrumentInfo" -> "SofiaInstrumentInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.info.telescope Module¶
Classes¶
Initialize the FIFI-LS telescope information. |
Class Inheritance Diagram¶
digraph inheritance892c4992c0 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "FifiLsTelescopeInfo" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.info.telescope.FifiLsTelescopeInfo.html#sofia_redux.scan.custom.fifi_ls.info.telescope.FifiLsTelescopeInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaTelescopeInfo" -> "FifiLsTelescopeInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "InfoBase" [URL="../../../api/sofia_redux.scan.info.base.InfoBase.html#sofia_redux.scan.info.base.InfoBase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "InfoBase" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaTelescopeInfo" [URL="../../../api/sofia_redux.scan.custom.sofia.info.telescope.SofiaTelescopeInfo.html#sofia_redux.scan.custom.sofia.info.telescope.SofiaTelescopeInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "TelescopeInfo" -> "SofiaTelescopeInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "TelescopeInfo" [URL="../../../api/sofia_redux.scan.info.telescope.TelescopeInfo.html#sofia_redux.scan.info.telescope.TelescopeInfo",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "InfoBase" -> "TelescopeInfo" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.integration.integration Module¶
Classes¶
|
Initialize a FIFI-LS integration. |
Class Inheritance Diagram¶
digraph inheritanceaecf46bda5 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "FifiLsIntegration" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.integration.integration.FifiLsIntegration.html#sofia_redux.scan.custom.fifi_ls.integration.integration.FifiLsIntegration",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaIntegration" -> "FifiLsIntegration" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "Integration" [URL="../../../api/sofia_redux.scan.integration.integration.Integration.html#sofia_redux.scan.integration.integration.Integration",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "Integration" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaIntegration" [URL="../../../api/sofia_redux.scan.custom.sofia.integration.integration.SofiaIntegration.html#sofia_redux.scan.custom.sofia.integration.integration.SofiaIntegration",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "Integration" -> "SofiaIntegration" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.scan.custom.fifi_ls.integration.fifi_ls_integration_numba_functions Module¶
Functions¶
|
Flag channels with the DISCARD flag if all frame data are zero valued. |
sofia_redux.scan.custom.fifi_ls.scan.scan Module¶
Classes¶
|
Initialize a FIFI-LS scan. |
Class Inheritance Diagram¶
digraph inheritanceb70b6c9d50 { bgcolor=transparent; rankdir=LR; size=""; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "FifiLsScan" [URL="../../../api/sofia_redux.scan.custom.fifi_ls.scan.scan.FifiLsScan.html#sofia_redux.scan.custom.fifi_ls.scan.scan.FifiLsScan",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "SofiaScan" -> "FifiLsScan" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "Scan" [URL="../../../api/sofia_redux.scan.scan.scan.Scan.html#sofia_redux.scan.scan.scan.Scan",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "Scan" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; "SofiaScan" [URL="../../../api/sofia_redux.scan.custom.sofia.scan.scan.SofiaScan.html#sofia_redux.scan.custom.sofia.scan.scan.SofiaScan",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,margin=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "Scan" -> "SofiaScan" [arrowsize=1.2,arrowtail=empty,dir=back,style="setlinewidth(0.5)"]; }sofia_redux.visualization¶
sofia_redux.visualization.quicklook Module¶
Functions¶
|
Generate a map image from a FITS file. |
|
Generate a plot of spectral data. |
sofia_redux.pipeline¶
The Redux application programming interface (API), including the FIFI-LS
interface classes, are documented in the sofia_redux.pipeline
package.
Appendix A: Pipeline Recipe¶
This JSON document is the black-box interface specification for the FIFI-LS Redux pipeline, as defined in the Pipetools-Pipeline ICD.
{
"inputmanifest" : "infiles.txt",
"outputmanifest" : "outfiles.txt",
"env" : {
"DPS_PYTHON": "$DPS_SHARE/share/anaconda3/envs/fifi_ls/bin"
},
"knobs" : {
"REDUX_CONFIG" : {
"desc" : "Redux parameter file containing custom configuration.",
"type" : "string",
"default": "None"
}
},
"command" : "$DPS_PYTHON/redux_pipe infiles.txt -c $DPS_REDUX_CONFIG"
}