Difference between revisions of "Imfit"

From CASA Guides
Jump to navigationJump to search
(Created page with '<pre> Help on imfit task: Fit one or more elliptical Gaussian components on an image region(s) PARAMETER SUMMARY imagename Name of the input image box One or…')
 
(Replaced content with "{{imfit}}")
 
Line 1: Line 1:
<pre>
+
{{imfit}}
Help on imfit task:
 
 
 
Fit one or more elliptical Gaussian components on an image region(s)
 
PARAMETER SUMMARY
 
imagename        Name of the input image
 
box              One or more box regions to use for fitting,
 
                eg "100, 120, 200, 220, 300, 300, 400, 400"
 
                to use two boxes. If both box and region
 
                parameters are specified, box is used.
 
region          Region name or region specified using rg tool.
 
                A region from another image can be specified using the
 
                imagename:regionname syntax, eg "mycontinuumimage:mysourceregion"
 
chan            Spectral channel on which to perform fit (only one may be specified).
 
stokes          Stokes parameter to fit.
 
mask            Mask to be applied to the image. Can be a mask associated with the
 
                image or an LEL expression.
 
includepix      Range of pixel values to include for fitting. Array of two numeric
 
                values assumed to have same units as image pixel values. Only one
 
                of includepix or excludepix can be specified.
 
excludepix      Range of pixel values to exclude for fitting. Array of two numeric
 
                values assumed to have same units as image pixel values. Only one
 
                of includepix or excludepix can be specified.
 
residual        Name of the residual image to write.
 
model            Name of the model image to write.
 
estimates        Name of file containing initial estimates of component parameters
 
                (see below for formatting details).
 
logfile          Name of file to write fit results.
 
append          If logfile exists, append to it (True) or overwrite it (False).
 
newestimates    File to write fit results which can be used as initial estimates
 
                for next run.
 
 
 
OVERVIEW
 
 
 
Imfit is used to fit one or more gaussians to sources in an image.
 
Fitting is limited to a single spectral channel and a single polarization.
 
If the image has a clean beam, the task will report both the convolved
 
and the deconvolved fit results.
 
 
 
The task returns a dictionary with two keys, 'converged' and 'results'.
 
The value of 'converged' is a boolean which indicates if the fit converged.
 
The value of 'results' is a component list reflecting the fit results. In the
 
case of a clean image, the results are the convolved results.
 
 
 
The region can either be specified by a box (blc,trc) or a region (if both
 
are given, the box is used). Ranges of pixel values can be included or
 
excluded from the fit.
 
If specified, the task will write the residual and/or model images for
 
successful fits.
 
 
 
If an estimates file is not specified, the task will attempt to estimate
 
initial parameters and fit a single Gaussian. If a multiple Gaussian fit
 
is desired, the user must specify initial estimates via a text file
 
(see below for details).
 
 
 
The user has the option of writing the result of the fit to a log file,
 
and has the option of either appending to or overwriting an existing file.
 
 
 
The user has the option of writing the (convolved) parameters of a successful
 
fit to a file which can be fed back to imfit as the estimates file for a
 
subsequent run.
 
 
 
MASK SPECIFICATION
 
 
 
Mask specification can be done using an LEL expression. For example
 
 
 
mask = '"myimage">5' will use only pixels with values greater than 5.
 
 
 
INCLUDING AND EXCLUDING PIXELS
 
 
 
Pixels can be included or excluded from the fit based on their values
 
using these parameters. Note that specifying both is not permitted and
 
will cause an error. If specified, both take an array of two numeric
 
values.
 
 
 
ESTIMATES
 
 
 
Initial estimates of fit parameters may be specified via an estimates
 
text file. Each line of this file should contain a set of parameters for
 
a single gaussian. Optionally, some of these parameters can be fixed during
 
the fit. The format of each line is
 
 
 
peak intensity, peak x-pixel value, peak y-pixel value, major axis, minor axis, position angle, fixed
 
 
 
The fixed parameter is optional. The peak intensity is assumed to be in the
 
same units as the image pixel values (eg Jy/beam). The peak coordinates are specified
 
by pixel values. The major and minor axes and the position angle are the convolved
 
parameters if the image has been convolved with a clean beam and are specified as quantities.
 
The fixed parameter is optional and is a string. It may contain any combination of the
 
following characters 'f' (peak intensity), 'x' (peak x position), 'y' (peak y position),
 
'a' (major axis), 'b' (minor axis), 'p' (position angle).
 
 
 
In addition, lines in the file starting with a "#" are considered comments.
 
 
 
An example of such a file is:
 
 
 
# peak intensity must be in map units
 
120, 150, 110, 23.5arcsec, 18.9arcsec, 120deg 
 
90, 60, 200, 46arcsec, 23arcsec, 140deg, fxp
 
 
 
This is a file which specifies that two gaussians are to be simultaneously fit,
 
and for the second gaussian the specified peak intensity, x position, and position angle
 
are to be held fixed during the fit.
 
 
 
EXAMPLE:
 
 
 
Here is how one might fit two gaussians to multiple channels of a cube using the fit
 
from the previous channel as the initial estimate for the next. It also illustrates
 
how one can specify a region in the associated continuum image as the region to use
 
as the fit for the channel.
 
 
 
imagename = "co_cube.im"
 
# specify region using region from continuum
 
region = "continuum.im:source.rgn"
 
chan = 2
 
# only use pixels with positive values in the fit
 
excludepix = [-1e10,0]
 
# estimates file contains initial parameters for two Gaussians in channel 2
 
estimates = "initial_estimates.txt"
 
logfile = "co_fit.log"
 
# append results to the log file for all the channels
 
append = "True"
 
# write file to use as estimates for next channel
 
newestimates = "estimates3.txt"
 
imfit
 
# now loop through channels
 
for x in range(3,20):
 
    chan = x
 
    # feed initial estimates using results of last fit
 
    estimates = "estimates" + str(x) + ".txt"
 
    newestimates = "estimates" + str(x + 1) + ".txt"
 
    imfit
 
</pre>
 

Latest revision as of 19:29, 6 May 2015