| pipeline.pedantic | bool | true, false | true | If set to `true`, the pipeline will terminate with an error message if an unknown parameter name is encountered in the input parameter file. If set to `false`, unknown parameters will instead be ignored. |
| pipeline.threads | int | ≥ 0 | 0 | Sets the maximum number of parallel threads that multi-threaded algorithms within SoFiA are allowed to use. If set to 0 (default value), then the `OMP_NUM_THREADS` environment variable is used to control the number of threads. If the value equals (or exceeds) the number of available threads, then all CPU cores will be utilised, which minimises the runtime of the pipeline at the cost of maximal CPU load. |
| pipeline.pedantic | bool | true, false | true | If set to `true` then the pipeline will terminate with an error message if an unknown parameter name is encountered in the input parameter file. If set to `false` then unknown parameters will be ignored and only prompt a warning. |
| pipeline.threads | int | ≥ 0 | 0 | Sets the maximum number of CPU threads that multi-threaded algorithms within SoFiA are allowed to utilise. If set to `0` (default value) then the `OMP_NUM_THREADS` environment variable will be used to control the number of threads. If `OMP_NUM_THREADS` is undefined or the user-defined value of `pipeline.threads` exceeds the number of available threads, then all CPU cores will be utilised which minimises the runtime of the pipeline at the cost of maximal CPU load. |
| pipeline.verbose | bool | true, false | false | Determines the level of output messages produced by the pipeline. Additional warning messages can be enabled by setting the value to `true`. |
| input.data | string | | | Name of the input data cube on which to run the source finder. The absolute path to the data file must be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS format is supported. |
| input.gain | string | | | Name of an optional data cube containing the gain across the image. If specified, the input data cube will be divided by the gain cube prior to source parameterisation to ensure that the correct flux values are extracted. The gain cube must have the same dimensions as the input data cube. The absolute path to the gain file must be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS format is supported. |
| input.data | string | | | Name of the input data cube on which to run the source finder. The absolute path to the data file should be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS file format is supported. |
| input.gain | string | | | Name of an optional data cube containing the gain across the image. If specified, the input data cube will be divided by the gain cube prior to source parameterisation to ensure that the correct flux values are extracted. The gain cube must have the same dimensions as the input data cube. The absolute path to the gain file should be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS file format is supported. |
| input.invert | bool | true, false | false | If set to `true`, invert the data cube prior to processing. This is useful when searching for negative rather than positive signals such as absorption lines. Note that all flux-related parameters and maps will be inverted, too, in this case and hence be positive rather than negative. |
| input.mask | string | | | File name of an input mask cube. Any additional pixels detected by the source finder will be added to the input mask. This can be useful if the results from two different source finding runs should be combined into a single mask. The mask cube must have the same dimensions as the input data cube. The absolute path to the mask file must be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS format is supported. |
| input.noise | string | | | Name of an optional data cube containing the noise levels across the image. If specified, the input data cube will be divided by the noise cube prior to source finding to ensure that a constant source finding threshold can be applied. The noise cube must have the same dimensions as the input data cube. The absolute path to the noise file must be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS format is supported. Note that either a noise cube, a weights cube or a primary beam cube should be applied, but not more than one of these. |
| input.primaryBeam | string | | | Name of an optional data cube containing the primary beam response. If specified, the input data cube will be multiplied by the primary beam cube prior to source finding to ensure that a constant source finding threshold can be applied. The primary beam cube must have the same dimensions as the input data cube. The absolute path to the primary beam file must be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS format is supported. Note that either a noise cube, a weights cube or a primary beam cube should be applied, but not more than one of these. |
| input.region | list | | | Region of the input data cube to be searched. Only the specified region will be loaded into memory and processed. A region must contain six comma-separated integer values of the following format: `x_min`, `x_max`, `y_min`, `y_max`, `z_min`, `z_max` (all in units of pixels and 0-based). If no region is specified, then the entire data cube will be loaded. |
| input.weights | string | | | Name of an optional data cube containing the weights across the image. If specified, the input data cube will be multiplied by the square root of the weights cube prior to source finding to ensure that a constant source finding threshold can be applied. The weights cube must have the same dimensions as the input data cube. The absolute path to the weights file must be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS format is supported. Note that either a noise cube, a weights cube or a primary beam cube should be applied, but not more than one of these. |
| input.mask | string | | | File name of an input mask cube. The mask must be of integer type, and all pixels with a value > 0 will be considered as part of a source. Any additional pixels detected by the source finder will be added to the input mask. This can be useful if the results from two different source finding runs need to be combined into a single mask. The mask cube must have the same dimensions as the input data cube. The absolute path to the mask file should be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS file format is supported. |
| input.noise | string | | | Name of an optional data cube containing the noise levels across the image. If specified, the input data cube will be divided by the noise cube prior to source finding to ensure that a constant source finding threshold can be applied. The noise cube must have the same dimensions as the input data cube. The absolute path to the noise file should be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS file format is supported. Note that either a noise cube, a weights cube or a primary beam cube should be applied, but not more than one of these. |
| input.primaryBeam | string | | | Name of an optional data cube containing the primary beam response. If specified, the input data cube will be multiplied by the primary beam cube prior to source finding to ensure that a constant source finding threshold can be applied. The primary beam cube must have the same dimensions as the input data cube. The absolute path to the primary beam file should be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS file format is supported. Note that either a noise cube, a weights cube or a primary beam cube should be applied, but not more than one of these. |
| input.region | list | | | Region of the input data cube to be searched. Only the specified region will be loaded into memory and processed. A region must contain six comma-separated integer values of the following format: `x_min`, `x_max`, `y_min`, `y_max`, `z_min`, `z_max` (all in units of pixels and 0-based). If no region is specified then the entire data cube will be loaded. |
| input.weights | string | | | Name of an optional data cube containing the weights across the image. If specified, the input data cube will be multiplied by the square root of the weights cube prior to source finding to ensure that a constant source finding threshold can be applied. The weights cube must have the same dimensions as the input data cube. The absolute path to the weights file should be provided. If only the file name is specified, the pipeline will assume the file to be located in the current working directory. Currently, only the FITS file format is supported. Note that either a noise cube, a weights cube or a primary beam cube should be applied, but not more than one of these. |
| contsub.enable | bool | true, false | false | If enabled, SoFiA will try to subtract any residual continuum emission from the data cube prior to source finding by fitting and subtracting a polynomial of order 0 (offset) or 1 (offset + slope). The order of the polynomial is defined by `contsub.order`. |
| contsub.order | int | 0...1 | 0 | Order of the polynomial to be used in continuum subtraction if `contsub.enable` is set to `true`. Can either be `0` for a simple offset or `1` for an offset + slope. Higher orders are not currently supported. |
| contsub.order | int | 0...1 | 0 | Order of the polynomial to be used in continuum subtraction if `contsub.enable = true`. Can either be `0` for a simple offset or `1` for an offset + slope. Higher orders are not currently supported. |
| contsub.padding | int | ≥ 0 | 3 | The amount of additional padding (in channels) applied to either side of channels excluded from the fit. |
| contsub.shift | int | ≥ 1 | 4 | The number of channels by which the spectrum will be shifted (symmetrically in both directions) before self-subtraction. |
| contsub.threshold | float | ≥ 0.0 | 2.0 | Relative clipping threshold. All channels with a flux density > `contsub.threshold` times the noise will be clipped and excluded from the polynomial fit. |
| flag.auto | string | true, false, channels, pixels | false | If set to `true`, SoFiA will attempt to automatically flag spectral channels and spatial pixels affected by interference or artefacts based on their RMS noise level. If set to `channels`, only spectral channels will be flagged. If set to `pixels`, only spatial pixels will be flagged. If set to `false`, auto-flagging will be disabled. Please see the user manual for details. |
| flag.catalog | string | | | Path to a catalogue file containing two columns that specify the longitude and latitude coordinates of sky positions to be flagged in the native coordinate system and units of the input data cube. The two columns can be separated by spaces, tabulators or commas. Also see `flag.radius`. |
| flag.auto | string | true, false, channels, pixels | false | If set to `true`, SoFiA will attempt to automatically flag spectral channels and spatial pixels affected by interference or artefacts based on their noise level. If set to `channels`, only spectral channels will be flagged. If set to `pixels`, only spatial pixels will be flagged. If set to `false`, auto-flagging will be disabled. Please see the user manual for details. |
| flag.catalog | string | | | Path to a catalogue file containing two columns that specify the longitude and latitude of sky positions to be flagged. Coordinate values must be in the native coordinate system and units of the input data cube (e.g., RA/Dec in decimal degrees). The two columns can be separated by spaces, tabulators or commas. Also see `flag.radius`. |
| flag.cube | string | | | Optional path to a data cube containing flagging information. All pixels with a value greater than 0 in the flagging data cube will be flagged in the input data cube. The flagging cube must be of integer type and must have the same dimensions as the input data cube. |
| flag.log | bool | true, false | false | If set to `true`, write a list of the channels and pixels flagged by the auto-flagger to a log file. Note that if no channels or pixels were found to be in need of flagging, then the log file will not be written irrespective of the value of `flag.log`. |
| flag.log | bool | true, false | false | If set to `true`, write a list of the channels and pixels flagged by the auto-flagger to a log file with the file name extension: `_flags.log`. Note that if no channels or pixels are found to be in need of flagging, the log file will not be written irrespective of the value of `flag.log`. |
| flag.radius | int | ≥ 0 | 5 | Radius around the sky positions listed in the catalogue provided by `flag.catalog` that should be flagged. If `0`, then only the nearest pixel to the position will be flagged. Otherwise, pixels within the specified radius around the nearest pixel will be flagged. |
| flag.region | list | | | Region(s) to be flagged in the input data cube prior to processing. The flagging region must contain a multiple of six comma-separated integer values of the following format: `x_min`, `x_max`, `y_min`, `y_max`, `z_min`, `z_max`, ... (all in units of pixels and 0-based). Pixels within those regions will be set to blank in the input cube. If unset, no flagging will occur. |
| flag.threshold | float | | 5.0 | Relative threshold in multiples of the standard deviation to be applied by the automatic flagging algorithm. Only relevant if `flag.auto` is enabled. Please see the documentation for details. |
| rippleFilter.enable | bool | true, false | false | If set to `true`, then the ripple filter will be applied to the data cube prior to source finding. The filter works by measuring and subtracting either the mean or median across a running window. This can be useful if a DC offset or spatial/spectral ripple is present in the data. |
| rippleFilter.gridXY | int | ≥ 0 | 0 | Spatial grid separation in pixels for the running window used in the ripple filter. The value must be an odd integer value and specifies the spatial step by which the window is moved. Alternatively, it can be set to 0, in which case it will default to half the spatial window size (see `rippleFilter.windowXY`). |
| rippleFilter.gridZ | int | ≥ 0 | 0 | Spectral grid separation in channels for the running window used in the ripple filter. The value must be an odd integer value and specifies the spectral step by which the window is moved. Alternatively, it can be set to 0, in which case it will default to half the spectral window size (see `rippleFilter.windowZ`). |
| rippleFilter.interpolate | bool | true, false | false | If set to `true`, then the mean or median values measured across the running window in the ripple filter will be linearly interpolated in between the grid points. If set to `false`, the mean or median will be subtracted from the entire grid cell without interpolation. |
| rippleFilter.statistic | string | mean, median | median | Controls whether the mean or median should be measured and subtracted in the running window of the ripple filter. The median is strongly recommended, as it is more robust. |
| rippleFilter.windowXY | int | ≥ 1 | 31 | Spatial size in pixels of the running window used in the ripple filter. The size must be an odd integer number. |
| rippleFilter.windowZ | int | ≥ 1 | 15 | Spectral size in channels of the running window used in the ripple filter. The size must be an odd integer number. |
| scaleNoise.enable | bool | true, false | false | If set to `true`, noise scaling will be enabled. The purpose of the noise scaling modules is to measure the noise level in the input cube and then divide the input cube by the noise. This can be used to correct for spatial or spectral noise variations across the input cube prior to running the source finder. |
| scaleNoise.fluxRange | string | positive, negative, full | negative | Flux range to be used in the noise measurement. If set to `negative` or `positive`, only pixels with negative or positive flux will be used, respectively. This can be useful to prevent real emission or artefacts from affecting the noise measurement. If set to `full`, all pixels will be used in the noise measurement irrespective of their flux. |
| scaleNoise.gridXY | int | ≥ 0 | 0 | Size of the spatial grid across which noise measurement window will be moved across the data cube. It must be an odd integer value. If set to 0 instead, the spatial grid size will default to half the spatial window size. |
| scaleNoise.gridZ | int | ≥ 0 | 0 | Size of the spectral grid across which noise measurement window will be moved across the data cube. It must be an odd integer value. If set to 0 instead, the spectral grid size will default to half the spectral window size. |
| scaleNoise.interpolate | bool | true, false | false | If set to `true`, linear interpolation will be used to interpolate the measured local noise values in between grid points. If set to `false`, the entire grid cell will instead be filled with the measured noise value. |
| scaleNoise.mode | string | spectral, local | spectral | Noise scaling mode. If set to `spectral`, the noise level will be determined for each spectral channel by measuring the noise within each image plane. This is useful for data cubes where the noise varies with frequency. If set to `local`, the noise level will be measured locally in window running across the entire cube in all three dimensions. This is useful for data cubes with more complex noise variations, such as interferometric images with primary-beam correction applied. |
| scaleNoise.scfind | bool | true, false | false | If `true` and global or local noise scaling is enabled, then noise scaling will additionally be applied after each smoothing operation in the S+C finder. This might be useful in certain situations where large-scale artefacts are present in interferometric data. However, this feature should be used with great caution, as it has the potential to do more harm than good. |
| scaleNoise.statistic | string | std, mad, gauss | mad | Statistic to be used in the noise measurement process. Possible values are `std`, `mad` and `gauss` for standard deviation, median absolute deviation and Gaussian fitting to the flux histogram, respectively. Standard deviation is by far the fastest algorithm, but it is also the least robust one with respect to emission and artefacts in the data. Median absolute deviation and Gaussian fitting are far more robust in the presence of strong, extended emission or artefacts, but will usually take longer. |
| scaleNoise.windowXY | int | ≥ 0 | 25 | Spatial size of the window used in determining the local noise level. It must be an odd integer value. If set to 0, the pipeline will use the default value instead. |
| scaleNoise.windowZ | int | ≥ 0 | 15 | Spectral size of the window used in determining the local noise level. It must be an odd integer value. If set to 0, the pipeline will use the default value instead. |
| rippleFilter.enable | bool | true, false | false | If set to `true` then the background subtraction filter will be applied to the data cube prior to source finding. The filter works by measuring and subtracting either the mean or median across a running window. This can be useful if a background offset or large-scale spatial/spectral ripple is present in the data. |
| rippleFilter.gridXY | int | ≥ 0 | 0 | Spatial grid separation in pixels for the running window used by the background subtraction filter. The value must be an odd integer value and specifies the spatial step by which the window is moved. Alternatively, it can be set to `0` in which case it will default to half the spatial window size (see `rippleFilter.windowXY`). |
| rippleFilter.gridZ | int | ≥ 0 | 0 | Spectral grid separation in channels for the running window used by the background subtraction filter. The value must be an odd integer value and specifies the spectral step by which the window is moved. Alternatively, it can be set to `0`, in which case it will default to half the spectral window size (see `rippleFilter.windowZ`). |
| rippleFilter.interpolate | bool | true, false | false | If set to `true` then the mean or median values measured across the running window in the background subtraction filter will be linearly interpolated in between grid points. If set to `false` then the mean or median will be subtracted from the entire grid cell without interpolation. |
| rippleFilter.statistic | string | mean, median | median | Controls whether the mean or median should be measured and subtracted in the running window of the background subtraction filter. The median is strongly recommended as it is more robust against real signal and artefacts. |
| rippleFilter.windowXY | int | ≥ 1 | 31 | Spatial size in pixels of the running window used by the background subtraction filter. The size must be an odd integer number. |
| rippleFilter.windowZ | int | ≥ 1 | 15 | Spectral size in channels of the running window used by the background subtraction filter. The size must be an odd integer number. |
| scaleNoise.enable | bool | true, false | false | If set to `true` then noise scaling will be enabled. The purpose of the noise scaling module is to measure the noise level in the input data cube and then divide the input cube by that noise level. This can be used to correct for any spatial and/or spectral noise variations in the input data cube prior to running the source finder. |
| scaleNoise.fluxRange | string | positive, negative, full | negative | Flux density range to be used in the noise measurement. If set to `negative` or `positive` then only pixels with negative or positive flux density will be used, respectively. This can be helpful to prevent real emission or artefacts from affecting the noise measurement. If set to `full` then all pixels will be used in the noise measurement irrespective of their flux density. |
| scaleNoise.gridXY | int | ≥ 0 | 0 | Size of the spatial grid by which the noise measurement window is moved across the data cube. It must be an odd integer value. If set to `0` then the spatial grid size will default to half the spatial window size. |
| scaleNoise.gridZ | int | ≥ 0 | 0 | Size of the spectral grid by which the noise measurement window is moved across the data cube. It must be an odd integer value. If set to `0` then the spectral grid size will default to half the spectral window size. |
| scaleNoise.interpolate | bool | true, false | false | If set to `true` then linear interpolation will be used to interpolate the measured local noise values in between grid points. If set to `false` then the entire grid cell will instead be filled with the measured noise value. |
| scaleNoise.mode | string | spectral, local | spectral | Noise scaling mode. If set to `spectral` then the noise level will be determined in each spectral channel by measuring the noise within each image plane. This is useful for data cubes where the noise varies with frequency. If set to `local` then the noise level will be measured locally in a window running across the entire data cube in all three dimensions. This is useful for data cubes with more complex spatial and spectral noise variations, e.g. interferometric data with primary-beam correction applied. |
| scaleNoise.scfind | bool | true, false | false | If `true` and global or local noise scaling is enabled then noise scaling will additionally be applied after each smoothing operation in the S+C finder. This might be useful in certain situations where large-scale artefacts are present in interferometric data. However, this feature should be used with great caution as it has the potential to do more harm than good. |
| scaleNoise.statistic | string | std, mad, gauss | mad | Statistic to be used in the noise measurement process. Possible values are `std`, `mad` and `gauss` for standard deviation, median absolute deviation and fitting of a Gaussian function to the flux histogram, respectively. Standard deviation is by far the fastest algorithm, but it is also the least robust with respect to emission and artefacts in the data. Median absolute deviation and Gaussian fitting are far more robust in the presence of strong, extended emission and artefacts, but will take slightly more time. |
| scaleNoise.windowXY | int | ≥ 0 | 25 | Spatial size of the window used in determining the local noise level. It must be an odd integer value. If set to `0` then the pipeline will use the default value instead. |
| scaleNoise.windowZ | int | ≥ 0 | 15 | Spectral size of the window used in determining the local noise level. It must be an odd integer value. If set to `0` then the pipeline will use the default value instead. |
| scfind.enable | bool | true, false | true | If set to `true`, the Smooth + Clip (S+C) finder will be enabled. The S+C finder operates by iteratively smoothing the data cube with a user-defined set of smoothing kernels, measuring the noise level on each smoothing scale, and adding all pixels with an absolute flux above a user-defined relative threshold to the source detection mask. |
| scfind.fluxRange | string | positive, negative, full | negative | Flux range to be used in the noise measurement. If set to `negative` or `positive`, only pixels with negative or positive flux will be used, respectively. This can be useful to prevent real emission or artefacts from affecting the noise measurement. If set to `full`, all pixels will be used in the noise measurement irrespective of their flux. |
| scfind.kernelsXY | list | ≥ 0 | 0, 3, 6 | Comma-separated list of spatial Gaussian kernel sizes to apply. The individual kernel sizes must be floating-point values and denote the full width at half maximum (FWHM) of the Gaussian used to smooth the data in the spatial domain. A value of 0 means that no spatial smoothing will be applied. |
| scfind.kernelsZ | list | ≥ 0 | 0, 3, 7, 15 | Comma-separated list of spectral Boxcar kernel sizes to apply. The individual kernel sizes must be odd integer values of 3 or greater and denote the full width of the Boxcar filter used to smooth the data in the spectral domain. A value of 0 means that no spectral smoothing will be applied. |
| scfind.replacement | float | | 2.0 | Before smoothing the data cube during an S+C iteration, every pixel in the data cube that was already detected in a previous iteration will be replaced by this value multiplied by the original noise level in the non-smoothed data cube, while keeping the original sign of the data value. This feature can be disabled altogether by specifying a value of < 0. |
| scfind.statistic | string | std, mad, gauss | mad | Statistic to be used in the noise measurement process. Possible values are `std`, `mad` and `gauss` for standard deviation, median absolute deviation and Gaussian fitting to the flux histogram, respectively. Standard deviation is by far the fastest algorithm, but it is also the least robust one with respect to emission and artefacts in the data. Median absolute deviation and Gaussian fitting are far more robust in the presence of strong, extended emission or artefacts, but will usually take longer. |
| scfind.threshold | float | ≥ 0.0 | 5.0 | Flux threshold to be used by the S+C finder relative to the measured noise level in each smoothing iteration. In practice, values in the range of about 3 to 5 have proven to be useful in most situations, with lower values in that range requiring use of the reliability filter to reduce the number of false detections. |
| threshold.enable | bool | true, false | false | If set to true, the threshold finder will be enabled. The threshold finder is a very basic source finder that simply applies a fixed threshold (either absolute or relative to the noise) to the original data cube. It can be useful if a simple flux threshold is to be applied to a pre-processed or filtered data cube. |
| threshold.fluxRange | string | positive, negative, full | negative | Flux range to be used in the noise measurement. If set to `negative` or `positive`, only pixels with negative or positive flux will be used, respectively. This can be useful to prevent real emission or artefacts from affecting the noise measurement. If set to `full`, all pixels will be used in the noise measurement irrespective of their flux. |
| threshold.mode | string | absolute, relative | relative | If set to `absolute`, the flux threshold of the threshold finder will be interpreted as an absolute flux threshold in the native flux unit of the data cube. If set to `relative`, the threshold will be interpreted in units of the noise level across the data cube. |
| threshold.statistic | string | std, mad, gauss | mad | Statistic to be used in the noise measurement process if `threshold.mode` is set to `relative`. Possible values are `std`, `mad` and `gauss` for standard deviation, median absolute deviation and Gaussian fitting to the flux histogram, respectively. Standard deviation is by far the fastest algorithm, but it is also the least robust one with respect to emission and artefacts in the data. Median absolute deviation and Gaussian fitting are far more robust in the presence of strong, extended emission or artefacts, but will usually take longer. |
| threshold.threshold | float | ≥ 0.0 | 5.0 | Flux threshold to be applied by the threshold finder. Depending on the `threshold.mode` parameter, this can either be absolute (in native flux units of the data cube) or relative to the noise level of the cube. |
| scfind.enable | bool | true, false | true | If set to `true` then the Smooth + Clip (S+C) finder will be enabled. The S+C finder operates by iteratively smoothing the data cube with a user-defined set of spatial and spectral smoothing kernels, measuring the noise level at each smoothing scale and adding all pixels with an absolute flux density above a user-defined relative threshold (parameter `scfind.threshold`) to the source detection mask. |
| scfind.fluxRange | string | positive, negative, full | negative | Flux range to be used in the S+C finder noise measurement. If set to `negative` or `positive` then only pixels with negative or positive flux density will be used, respectively. This can be useful to prevent real emission or artefacts from affecting the noise measurement. If set to `full` then all pixels will be used in the noise measurement irrespective of their flux. |
| scfind.kernelsXY | list | ≥ 0 | 0, 3, 6 | Comma-separated list of spatial Gaussian kernel sizes to apply. The individual kernel sizes must be floating-point values and denote the full width at half maximum (FWHM) of the 2D Gaussian filter used to smooth the data in the spatial domain. A value of `0` means that no spatial smoothing will be applied. |
| scfind.kernelsZ | list | ≥ 0 | 0, 3, 7, 15 | Comma-separated list of spectral boxcar kernel sizes to apply. The individual kernel sizes must be odd integer values of 3 or greater and denote the full width of the boxcar filter used to smooth the data in the spectral domain. A value of `0` means that no spectral smoothing will be applied. |
| scfind.replacement | float | | 2.0 | Before smoothing the data cube during an S+C iteration, every pixel in the data cube that was already detected by the S+C finder in a previous iteration will be replaced by this value multiplied by the original noise level in the non-smoothed data cube while keeping the original sign of the data value. The purpose of this feature is to prevent bright emission from being smeared out too much when convolving with large spatial and spectral filters. It can be disabled altogether by setting `scfind.replacement` to a negative value. |
| scfind.statistic | string | std, mad, gauss | mad | Statistic to be used in the S+C finder noise measurement process. Possible values are `std`, `mad` and `gauss` for standard deviation, median absolute deviation and fitting of a Gaussian function to the flux histogram, respectively. Standard deviation is by far the fastest algorithm, but it is also the least robust with respect to emission and artefacts in the data. Median absolute deviation and Gaussian fitting are far more robust in the presence of strong, extended emission or artefacts, but will take slightly more time. |
| scfind.threshold | float | ≥ 0.0 | 5.0 | Flux threshold to be used by the S+C finder relative to the measured noise level in each smoothing iteration. In practice, values in the range of about 3 to 5 have proven to be useful in most situations, with lower values in that range requiring use of the reliability filter to reduce the number of false detections. Larger values are more robust in the presence of artefacts, but will result in a reduced completeness of the source catalogue. |
| threshold.enable | bool | true, false | false | If set to `true` then the threshold finder will be enabled. The threshold finder is a very basic source finder which simply applies a fixed threshold (either absolute or relative to the noise) to the original data cube. It can be useful if a simple flux threshold is to be applied to a pre-processed or filtered data cube. |
| threshold.fluxRange | string | positive, negative, full | negative | Flux range to be used in the threshold finder noise measurement. If set to `negative` or `positive` then only pixels with negative or positive flux density will be used, respectively. This can be helpful to prevent real emission or artefacts from affecting the noise measurement. If set to `full` then all pixels will be used in the noise measurement irrespective of their flux. |
| threshold.mode | string | absolute, relative | relative | If set to `absolute` then the flux threshold of the threshold finder will be interpreted as an absolute flux density threshold in the native flux unit of the input data cube. If set to `relative` then the threshold will be relative to the noise level in the input data cube. |
| threshold.statistic | string | std, mad, gauss | mad | Statistic to be used in the noise measurement process if `threshold.mode` is set to `relative`. Possible values are `std`, `mad` and `gauss` for standard deviation, median absolute deviation and fitting of a Gaussian function to the flux histogram, respectively. Standard deviation is by far the fastest algorithm, but it is also the least robust with respect to emission and artefacts in the data. Median absolute deviation and Gaussian fitting are far more robust in the presence of strong, extended emission or artefacts, but will usually take slightly more time. |
| threshold.threshold | float | ≥ 0.0 | 5.0 | Flux threshold to be applied by the threshold finder. Depending on the `threshold.mode` parameter, this can either be absolute (in native flux units of the input data cube) or relative to the noise level of the cube. |
| linker.enable | bool | true, false | true | If `true`, then the linker will be run to merge the pixels detected by the source finder into coherent detections that can then be parameterised and catalogued. If `false`, the pipeline will be terminated after source finding, and no catalogue or source products will be created. Disabling the linker can be useful if only the raw mask from the source finder is needed. |
| linker.keepNegative | bool | true, false | false | If set to `true`, then the linker will not discard detections with negative flux. Reliability filtering must be disabled for negative sources to be retained. Also note that negative sources will not appear in moment 1 and 2 maps. This option should only ever be used for testing or debugging purposes, but never in production mode. |
| linker.enable | bool | true, false | true | If `true` then the linker will be run to merge the raw pixels detected by the source finder into coherent sources which can then be parameterised and catalogued. Disabling the linker is only meaningful in two situations: (1) only the raw binay source mask from the source finder is need, or (2) a labelled input mask is supplied from which source catalogues and other output products can be generated without running the source finder and linker again. |
| linker.keepNegative | bool | true, false | false | If set to `true` then the linker will not discard detections with negative flux. Reliability filtering must be disabled for negative sources to be retained. Also note that negative sources will not appear in moment 1 and 2 maps. This option should only ever be used for testing or debugging purposes, but never in production mode. |
| linker.maxFill | float | ≥ 0.0 | 0.0 | Maximum allowed filling factor of a source within its rectangular bounding box, defined as the number of spatial and spectral pixels that make up the source divided by the number of pixels in the bounding box. The default value of `0.0` disables maximum filling factor filtering. |
| linker.maxPixels | int | ≥ 0 | 0 | Maximum allowed number of spatial and spectral pixels that a source must not exceed. The default value of `0` disables maximum size filtering. |
| linker.maxSizeXY | int | ≥ 0 | 0 | Maximum size of sources in the spatial dimension in pixels. Sources that exceed this limit will be discarded by the linker. If the value is set to 0, maximum size filtering will be disabled. |
| linker.maxSizeZ | int | ≥ 0 | 0 | Maximum size of sources in the spectral dimension in pixels. Sources that exceed this limit will be discarded by the linker. If the value is set to 0, maximum size filtering will be disabled. |
| linker.maxSizeXY | int | ≥ 0 | 0 | Maximum size of sources in the spatial dimension in pixels. Sources that exceed this limit will be discarded by the linker. If the value is set to `0`, maximum size filtering will be disabled. |
| linker.maxSizeZ | int | ≥ 0 | 0 | Maximum size of sources in the spectral dimension in pixels. Sources that exceed this limit will be discarded by the linker. If the value is set to `0`, maximum size filtering will be disabled. |
| linker.minFill | float | ≥ 0.0 | 0.0 | Minimum allowed filling factor of a source within its rectangular bounding box, defined as the number of spatial and spectral pixels that make up the source divided by the number of pixels in the bounding box. The default value of `0.0` disables minimum filling factor filtering. |
| linker.minPixels | int | ≥ 0 | 0 | Minimum allowed number of spatial and spectral pixels that a source must have. The default value of `0` disables minimum size filtering. |
| linker.minSizeXY | int | ≥ 1 | 5 | Minimum size of sources in the spatial dimension in pixels. Sources that fall below this limit will be discarded by the linker. |
| linker.minSizeZ | int | ≥ 1 | 5 | Minimum size of sources in the spectral dimension in pixels. Sources that fall below this limit will be discarded by the linker. |
| linker.positivity | bool | true, false | false | If set to `true`, then the linker will only merge positive pixels and discard all negative pixels by removing them from the mask. This option should be used with extreme caution and will render the reliability filter useless. It can be useful, though, if there are significant negative artefacts such as residual sidelobes in the data. |
| linker.positivity | bool | true, false | false | If set to `true` then the linker will only merge positive pixels and discard all negative pixels by removing them from the mask. This option should be used with extreme caution and will render the reliability filter useless. It can be useful, though, if there are significant negative artefacts such as residual sidelobes in the data. |
| linker.radiusXY | int | ≥ 1 | 1 | Maximum merging length in the spatial dimension. Pixels with a separation of up to this value will be merged into the same source. |
| linker.radiusZ | int | ≥ 1 | 1 | Maximum merging length in the spectral dimension. Pixels with a separation of up to this value will be merged into the same source. |
| reliability.autoKernel | bool | true, false | false | If set to `true`, SoFiA will try to automatically determine the optimal reliability kernel scale factor by iteratively increasing the kernel size until the absolute value of the median of the Skellam distribution decreases below `reliability.tolerance`. If the algorithm fails to converge after `reliability.iterations` steps, then the default value of `reliability.scaleKernel` will be used instead. |
| reliability.catalog | string | | | Path to a file containing positions on the sky to be excluded from the reliability analysis. The file must contain two columns separated by a space, tabulator or comma that specify the longitude and latitude of the position to be excluded in the native WCS coordinates and units of the input FITS file. Negative detections that contain any of those positions within their bounding box will be excluded from the reliability analysis, although they will still show up in the reliability plot. |
| reliability.debug | bool | true, false | false | If set to `true` and the reliability module is enabled, then two catalogue files containing relevant reliability parameters of negative and positive detections are created for debugging purposes. The catalogues will be written in VOTable format. |
| reliability.enable | bool | true, false | false | If set to `true`, reliability calculation and filtering will be enabled. This will determine the reliability of each detection with positive total flux by comparing the density of positive and negative detections in a three-dimensional parameter space. Sources below the specified reliability threshold will then be discarded. Note that this will require a sufficient number of negative detections, which can usually be achieved by setting the source finding threshold to somewhere around 3 to 4 times the noise level. |
| reliability.iterations | int | ≥ 1 | 30 | Maximum number of iterations for the reliability kernel auto-scaling algorithm to converge. If convergence is not achieved, then`reliability.scaleKernel` will instead be applied. |
| reliability.autoKernel | bool | true, false | false | If set to `true` then SoFiA will try to automatically determine the optimal reliability kernel scale factor by iteratively increasing the kernel size until the absolute value of the median of the Skellam distribution decreases below `reliability.tolerance`. If the algorithm fails to converge after `reliability.iterations` steps then the default value of `reliability.scaleKernel` will be used instead. |
| reliability.catalog | string | | | Path to a file containing positions on the sky to be excluded from the reliability analysis. The file must contain two columns separated by a space, tabulator or comma that specify the longitude and latitude of the position to be excluded in the native WCS coordinates and units of the input FITS file (e.g., RA/Dec in decimal degrees). Negative detections which contain any of those positions within their bounding box will be excluded from the reliability analysis, although they will still show up in the reliability plot. |
| reliability.debug | bool | true, false | false | If set to `true` and the reliability module is enabled then two catalogue files containing relevant reliability parameters of negative and positive detections are created for debugging purposes. The catalogues will be written in VOTable format with the suffixes `_rel_cat_neg.xml` and `_rel_cat_pos.xml`. |
| reliability.enable | bool | true, false | false | If set to `true` then reliability calculation and filtering will be enabled. This will determine the reliability of each detection with positive total flux by comparing the density of positive and negative detections in a three-dimensional parameter space. Sources below the specified reliability threshold will be discarded. Note that this requires a sufficiently large number of negative detections to be accurate and hence a sufficiently large data cube combined with a somewhat lower source finding threshold. |
| reliability.iterations | int | ≥ 1 | 30 | Maximum number of iterations of the reliability kernel auto-scaling algorithm. If convergence is not achieved within this number of iterations then a scaling factor of`reliability.scaleKernel` will instead be applied. |
| reliability.minPixels | int | ≥ 0 | 0 | Minimum total number of spatial and spectral pixels within the source mask for detections to be considered reliable. The reliability of any detection with fewer pixels will be set to zero by default. |
| reliability.minSNR | float | ≥ 0.0 | 3.0 | Lower signal-to-noise limit for reliable sources. Detections that fall below this threshold will be deemed unreliable and assigned a reliability of 0. The value denotes the integrated signal-to-noise ratio, SNR = F_sum / \[RMS * sqrt(N *Ω)\], of the source, where Ω is the solid angle (in pixels) of the point spread function of the data, N is the number of spatial and spectral pixels of the source, F_sum is the summed flux density and RMS is the local RMS noise level (assumed to be constant). Note that the spectral resolution is assumed to be equal to the channel width. |
| reliability.parameters | list | peak, sum, mean, chan, pix, fill, std, skew, kurt | peak, sum, mean | Parameter space to be used in deriving the reliability of detections. This must be a list of parameters the number of which defines the dimensionality of the parameter space. Possible values are `peak` for the peak flux density, `sum` for the summed flux density, `mean` for mean flux density, `chan` for the number of spectral channels, `pix` for the total number of spatial and spectral pixels, `fill` for the filling factor, `std` for the standard deviation, `skew` for the skewness and `kurt` for the kurtosis across the source mask. Flux densities will be divided by the global RMS noise level. `peak`, `sum`, `mean`, `pix` and `fill` will be logarithmic, all other parameters linear. |
| reliability.minSNR | float | ≥ 0.0 | 3.0 | Lower signal-to-noise limit for reliable sources. Detections that fall below this threshold will be deemed unreliable and assigned a reliability of 0. The value denotes the integrated signal-to-noise ratio, SNR = F_sum / \[RMS * sqrt(N *Omega)\], of the source, where Omega is the solid angle (in pixels) of the point spread function of the data, N is the number of spatial and spectral pixels of the source, F_sum is the summed flux density and RMS is the local RMS noise level (assumed to be constant). Note that the spectral resolution is assumed to be equal to the channel width. If `BMAJ` and `BMIN` are not defined in the input FITS file header then Omega will be set to 1 by default, thus assuming a beam size of 1 pixel. |
| reliability.parameters | list | peak, sum, mean, chan, pix, fill, std, skew, kurt | peak, sum, mean | Parameter space to be used in deriving the reliability of detections. This must be a list of parameters the number of which defines the dimensionality of the parameter space. Possible values are `peak` for the peak flux density, `sum` for the summed flux density, `mean` for mean flux density, `chan` for the number of spectral channels, `pix` for the total number of spatial and spectral pixels, `fill` for the filling factor, `std` for the standard deviation, `skew` for the skewness and `kurt` for the kurtosis across the source mask. Flux densities will be divided by the global noise level. `peak`, `sum`, `mean`, `pix` and `fill` will be logarithmic, all other parameters linear. |
| reliability.plot | bool | true, false | true | If set to `true`, diagnostic plots (in EPS format) will be created to allow the quality of the reliability estimation to be assessed. It is advisable to generate and inspect these plots to ensure that the outcome of the reliability filtering procedure is satisfactory. |
| reliability.plotExtra | bool | true, false | false | If set to `true` then additional diagnostic lines of SNR = 2, 4 and 8 as well as a line of the current `reliability.minPixels` setting will be included in the reliability plot, if possible. |
| reliability.scaleKernel | float | | 0.4 | When estimating the density of positive and negative detections in parameter space, the size of the Gaussian kernel used in this process is determined from the covariance of the distribution of negative detections in parameter space. This parameter setting can be used to scale that kernel by a constant factor. |
| reliability.scaleKernel | float | | 0.4 | When estimating the density of positive and negative detections in parameter space, the size of the Gaussian kernel used in this process is determined from the covariance of the distribution of negative detections in parameter space. This parameter setting can be used to scale that kernel size by a constant factor. |
| reliability.threshold | float | 0.0...1.0 | 0.9 | Reliability threshold in the range of 0 to 1. Sources with a reliability below this threshold will be discarded. |
| reliability.tolerance | float | | 0.05 | Convergence tolerance for the reliability kernel auto-scaling algorithm. Convergence is achieved when the absolute value of the median of the Skellam distribution drops below this tolerance. |
| dilation.enable | bool | true, false | false | Set to `true` to enable source mask dilation whereby the mask of each source will be grown outwards until the resulting increase in integrated flux drops below a given threshold or the maximum number of iterations is reached. |
| dilation.enable | bool | true, false | false | Set to `true` to enable source mask dilation. The mask of each source will be iteratively expanded outwards until the resulting increase in integrated flux drops below a given threshold (parameter `dilation.threshold`) or the maximum number of iterations is reached (set by `dilation.iterationsXY`, `dilation.iterations.Z`). |
| dilation.iterationsXY | int | ≥ 1 | 10 | Sets the maximum number of spatial iterations for the mask dilation algorithm. Once this number of iterations has been reached, mask dilation in the spatial plane will stop even if the flux increase still exceeds the threshold set by `dilation.threshold`. |
| dilation.iterationsZ | int | ≥ 1 | 5 | Sets the maximum number of spectral iterations for the mask dilation algorithm. Once this number of iterations has been reached, mask dilation along the spectral axis will stop even if the flux increase still exceeds the threshold set by `dilation.threshold`. |
| dilation.threshold | float | | 0.001 | If a positive value is provided, mask dilation will end when the increment in the integrated flux during a single iteration drops below this value times the total integrated flux (from the previous iteration), or when the maximum number of iterations has been reached. Specifying a negative threshold will disable flux checking altogether and always carry out the maximum number of iterations. |
| parameter.enable | bool | true, false | true | If set to `true`, the parametrisation module will be enabled to measure the basic parameters of each detected source. |
| parameter.offset | bool | true, false | false | If set to `false` and a region of the data cube is read in using the `input.region` parameter, then the position parameters `x`, `y`, `z`, `x_min`, `x_max`, `y_min`, `y_max`, `z_min` and `z_max` in the source catalogue will be specified relative to the region. If set to `true`, the position parameters will instead be relative to the full cube. Note that the auto-flagging log file will also adhere to this setting. |
| parameter.physical | bool | true, false | false | If set to `true`, SoFiA will attempt to convert relevant parameters to physical units. This involves conversion of channel widths to frequency/velocity units and division of flux-based parameters by the solid angle of the beam. For this to work, the relevant header parameters, including `CTYPE3`, `CDELT3`, `BMAJ` and `BMIN`, must have been correctly set. It is further assumed that the beam does not vary with frequency or position. |
| parameter.enable | bool | true, false | true | If set to `true` then the parametrisation module will be enabled to determine the basic parameters of every detected source. |
| parameter.offset | bool | true, false | false | If set to `false` and a region of the data cube is read in using the `input.region` parameter then the position parameters `x`, `y`, `z`, `x_min`, `x_max`, `y_min`, `y_max`, `z_min` and `z_max` in the source catalogue will be specified relative to the region. If set to `true` then the position parameters will instead be relative to the full cube. Note that the auto-flagging log file will also adhere to this setting. |
| parameter.physical | bool | true, false | false | If set to `true` then SoFiA will attempt to convert relevant parameters to physical units. This involves conversion of channel widths to frequency/velocity units and division of flux-based parameters by the solid angle of the beam. For this to work, the relevant header parameters, including `CTYPE3`, `CDELT3`, `BMAJ` and `BMIN`, must have been correctly set. It is further assumed that the beam does not vary with frequency or position. |
| parameter.prefix | string | | SoFiA | Prefix to be used in source names. The default prefix is `SoFiA`, and the resulting default source name is `SoFiA Jhhmmss.ss-ddmmss.s` for J2000 equatorial coordinates (and likewise for other coordinate types). |
| parameter.wcs | bool | true, false | true | If set to `true`, SoFiA will attempt to convert the source centroid position (x, y, z) to world coordinates using the WCS information stored in the header. In addition, spectra and moment map units will be converted from channels to WCS units as well. |
| parameter.wcs | bool | true, false | true | If set to `true` then SoFiA will attempt to convert the source centroid position (`x`, `y`, `z`) to world coordinates using the WCS information stored in the FITS file header. In addition, spectra and moment map units will be converted from channels to WCS units as well. |
| output.directory | string | | | Full path to the directory to which all output files will be written. If unset, the directory of the input data cube will be used by default. |
| output.filename | string | | | File name that will be used as the template for all output files. For example, if `output.filename = my_data`, then the output files will be named `my_data_cat.xml`, `my_data_mom0.fits`, etc. If unset, the name of the input data cube will be used as the file name template by default. |
| output.marginAperSpec | int | ≥ 0 | 10 | Margin (in channels) to be added to either side of the aperture spectrum produced by SoFiA. The aperture spectrum will be automatically truncated at the spectral boundaries of the cube if the margin is chosen too large. |
| output.marginCubelets | int | ≥ 0 | 10 | Margin (in pixels) around detections to be added when creating cubelets, moment maps and spectra of individual sources. The same margin will be applied to all axes of the cube. A value of 0 will create tight cutouts without any extra margin, thus minimising file sizes. The default is 10 pixels. |
| output.overwrite | bool | true, false | true | If `true`, existing output files will be overwritten without warning. If `false`, SoFiA will refuse to run if any of the output files and directories to be created already exists. |
| output.thresholdMom12 | float | | 0.0 | If `output.cubelets` is enabled, then the moment 1 and 2 maps for each individual detection will be created using only those spectral channels where the flux density exceeds this value times the local RMS noise level. E.g., setting `output.thresholdMom12` to a value of 3.0 would set a 3-sigma flux density threshold for moments 1 and 2. Note that this setting has no effect on moment 0 maps or global moment 1 and 2 maps. |
| output.writeCatASCII | bool | true, false | true | If set to `true`, an output source catalogue will be produced in human-readable ASCII format. The catalogue file will have the suffix `_cat.txt`. |
| output.writeCatSQL | bool | true, false | false | If set to `true`, an output source catalogue will be produced in SQL format. The catalogue file will have the suffix `_cat.sql`. The SQL catalogue can be imported into any SQL-compatible database. A new data table containing the source parameters, named `SoFiA-Catalogue` by default, will be generated. |
| output.writeCatXML | bool | true, false | true | If set to `true`, an output source catalogue will be produced in VO-compatible XML format. The catalogue file will have the suffix `_cat.xml`. |
| output.writeCubelets | bool | true, false | false | If set to `true`, then individual source products for each detected source will be created, including sub-cubes, masks, moment maps and integrated spectra. The source products will be written to a sub-directory with the suffix `_cubelets`. Each source product will be labelled with the source ID number for identification. |
| output.writeFiltered | bool | true, false | false | If set to `true` and any input filtering algorithm is enabled, then a data cube containing the filtered data will be written in FITS format. The filtered cube will have the suffix `_filtered.fits`. |
| output.writeKarma | bool | true, false | false | If set to `true` then a Karma annotation file will be created that contains the source IDs of all detections in the catalogue. This can be used to display source IDs on output images in Karma packages such as kvis. The annotation file will have the suffix `_cat.ann`. |
| output.writeMask | bool | true, false | false | If set to `true`, then a data cube containing the final source mask produced by the source finder will be written in FITS format. The pixel values in the source mask will correspond to the respective source ID numbers in the catalogue. The mask cube will have the suffix `_mask.fits`. |
| output.writeMask2d | bool | true, false | false | If set to `true`, then an image containing a two-dimensional projection of the 3D mask cube will be written in FITS format. The 2D mask image will have the suffix `_mask-2d.fits`. Note that some sources may be hidden behind others in this 2D projection. |
| output.writeMoments | bool | true, false | false | If set to `true`, then images of the spectral moments 0, 1 and 2 and the number of channels in each pixel of the moment 0 map will be written in FITS format. The maps will have the suffix `_mom0.fits`, `_mom1.fits`, `_mom2.fits` and `_chan.fits`. Note that moments 1 and 2 and the number of channels will not be produced if the input data cube is only two-dimensional. |
| output.writeNoise | bool | true, false | false | If set to `true` and local noise scaling is enabled, then a data cube containing the measured local noise values will be written in FITS format. The noise cube will have the suffix `_noise.fits`. If spectral noise scaling is enabled, then the measured noise in each channel (in native data cube flux units) will be written to a plain text file with the suffix `_noise.txt`. |
| output.writePV | bool | true, false | false | If set to `true` then position-velocity diagrams along the kinematic major and minor axis of the data cube and mask cube of each detection will be created. Note that `output.writeCubelets` must also be set to `true`. |
| output.writeRawMask | bool | true, false | false | If set to `true`, then a data cube containing the raw, binary source mask produced by the source finder prior to linking will be written in FITS format. The raw mask cube will have the suffix `_mask-raw.fits`. |
\ No newline at end of file
| output.filename | string | | | File name to be used as the template for all output files. For example, if `output.filename = my_data`, then the output files will be named `my_data_cat.xml`, `my_data_mom0.fits`, etc. If unset, the name of the input data cube will be used as the file name template by default. |
| output.marginAperSpec | int | ≥ 0 | 10 | Padding (in channels) to be added to either side of the aperture spectrum produced by SoFiA. The aperture spectrum will be automatically truncated at the spectral boundaries of the cube if the margin is chosen too large. |
| output.marginCubelets | int | ≥ 0 | 10 | Padding (in pixels) around detections to be added when creating cubelets, moment maps and spectra of individual sources. The same margin will be applied to all axes of the cube. A value of 0 will create tight cutouts without any extra padding, thus minimising file sizes. The default is 10 pixels/channels. |
| output.overwrite | bool | true, false | true | If `true` then existing output files will be overwritten without warning. If `false` then SoFiA will refuse to run if any of the output files and directories to be created already exists. |
| output.thresholdMom12 | float | | 0.0 | If `output.cubelets` is enabled, then the moment 1 and 2 maps for each individual detection will be created using only those spectral channels where the flux density exceeds this value times the local noise level. E.g., setting `output.thresholdMom12 = 3.0` would set a 3-sigma flux density threshold for moments 1 and 2. Note that this setting has no effect on moment 0 maps or global moment 1 and 2 maps. |
| output.writeCatASCII | bool | true, false | true | If set to `true` then an output source catalogue will be produced in plain-text ASCII format. The catalogue file will have the suffix `_cat.txt`. |
| output.writeCatSQL | bool | true, false | false | If set to `true` then an output source catalogue will be produced in SQL format. The catalogue file will have the suffix `_cat.sql`. The SQL catalogue can be imported into any SQL-compatible database. A new data table, named `SoFiA-Catalogue` by default, will be generated and filled with the source parameters measured by SoFiA. |
| output.writeCatXML | bool | true, false | true | If set to `true`, an output source catalogue will be produced in VO-compatible XML format. The catalogue file will have the suffix `_cat.xml` and can be loaded into any VO-compatible software such as TopCat. |
| output.writeCubelets | bool | true, false | false | If set to `true` then individual output products for each detected source will be created, including subcubes, masks, moment maps, integrated spectra, etc. The source products will be written to a sub-directory with the suffix `_cubelets`. Each source product will be labelled with the source ID number for identification. |
| output.writeFiltered | bool | true, false | false | If set to `true` then a data cube containing the filtered input data will be written in FITS file format. This contains the data values after running all of the preprocessing filters enabled in SoFiA (if any), e.g. noise scaling or data flagging. The filtered data cube will have the suffix `_filtered.fits`. |
| output.writeKarma | bool | true, false | false | If set to `true` then a Karma annotation file will be created that contains the source IDs of all detections in the catalogue. This can be used to display source IDs on output images in Karma packages such as `kvis`. The Karma annotation file will have the suffix `_cat.ann`. |
| output.writeMask | bool | true, false | false | If set to `true` then a data cube containing the final source mask produced by the source finder will be written in FITS file format. The pixel values in the source mask will correspond to the respective source ID numbers in the catalogue. The mask cube will have the suffix `_mask.fits`. |
| output.writeMask2d | bool | true, false | false | If set to `true` then an image containing a two-dimensional spatial projection of the 3D mask cube will be written in FITS file format. The 2D mask image will have the suffix `_mask-2d.fits`. Note that some sources may be partially or fully hidden behind others in this 2D projection. |
| output.writeMoments | bool | true, false | false | If set to `true` then images of the spectral moments 0, 1 and 2 as well as the number of channels and integrated signal-to-noise ratio in each pixel of the moment 0 map will be written in FITS format. The maps will have the suffixes `_mom0.fits`, `_mom1.fits`, `_mom2.fits`, `_chan.fits` and `_snr.fits`. Note that moments 1 and 2 and the number of channels/SNR will not be created if the input data cube is only two-dimensional. |
| output.writeNoise | bool | true, false | false | If set to `true` and local noise scaling is enabled then a data cube containing the measured local noise values will be written in FITS file format. The noise cube will have the suffix `_noise.fits`. If only spectral noise scaling is enabled then the measured noise in each channel (in the native flux density units of the data cube) will be written to a plain-text file with the suffix `_noise.txt` instead. |
| output.writePV | bool | true, false | false | If set to `true` then position-velocity diagrams along the kinematic major and minor axis of the data cube and mask cube of each detection will be written in FITS file format. Note that `output.writeCubelets` must also be set to `true`. The resulting PV diagrams will have the suffixes `_pv.fits`, `_pv_min.fits`, `_pv_mask.fits` and `_pv_min_mask.fits`. |
| output.writeRawMask | bool | true, false | false | If set to `true` then a data cube containing the raw binary source mask produced by the source finder prior to linking will be written in FITS file format. The raw mask cube will have the suffix `_mask-raw.fits`. |