Table of Contents


velfit - fit rotation curve to coplanar disk (WWB73 method)


velfit [parameter=value]


VELFIT fits a theoretical velocity pattern (vmod) to an observed isovelocity image (vobs), optionally weighted by an intensity image and a geometric factor specified by model input parameters. The default option is to fit a rotation curve to an isovelocity image of a rotating disk. The rotation curve and rms for the fit are tabulated and can be used to find the best fit to the other parameters. For more details see Warner, Wright and Baldwin (1973MNRAS.163..163W). This may not be the best method to fit a rotation curve (see also rotcur(1NEMO) ), but it is very simple and elegant to program.

Optionally an output map can be generated with amusing quantities, as well an output table that contains, amongst, the rotation curve. For additional map manipulations, see also velmap(1NEMO) .

The name of this program, velfit, unfortunately collides with the same written by Spekkens & Sellwood, and a frontend in NEMO is available as runvelfitss07(1NEMO) . However, their program was updated, and is now available as diskfit, with a NEMO frontend called rundiskfit(1NEMO) .


The following parameters are recognized in any order if the keyword is also given:
input observed velocity field, in image(5NEMO) format. We refer to this as vobs. No default.
radii of the ring boundaries. For N rings, N+1 values need to be given. They need to be sorted by increasing radius. See nemoinp(1NEMO) for syntax, though rmin:rmax:rstep is a common shortcut. It uses units from the image, usually degrees if you come from a FITS file (see EXAMPLE below) No default.
position angle of disk, in degrees. [0]
inclination angle of disk, in degrees [45]
systemic velocity [0]
rotation center. Default is the mapcenter ((Nx-1)/2,Ny-1)/2) where 0,0=center of lower left pixel.
input density image, used to weigh the velocities. If missing, weights are uniform (but see coswt= below). Default: none.
free angle around minor axis (2*frang is the total angle around the minor axis used), where data are ignored. [Default: 0]
Value of the blank pixel to be ignored. Default: 0.0
power of cos(theta) weighting [1]
use the classic WWB73 method? Currently there is no other method. See rotcur(1NEMO) and rotcurshape(1NEMO) for alternate discussions. [t]
Output mode for the output image data file. Valid are: vtan (=(vobs-vsys)/(cost*sini)), vmod, vres (=vobs-vmod), vtan/r, ome (=vtan/r), vrad (=vres/(sint*sini)), or dv/dr (spline derivative of rotation curve)
Optional output image, if selected. See mode= what this image contains. Default: none.
Optional output table file. This will contain the radius, rotation speed, dispersion in the ring and some other values. Default: none

See Also

rotcur(1NEMO) , runvelfitss07(1NEMO) , rotcurshape(1NEMO) , velmap(1NEMO) , velfitpatch(1NEMO)


src/image/rotcur : velfit.c


The following example fits a velocity field for NGC 6503, produces a table and plots the rotation curve with error bars
% fitsccd N6503.xmom1.fits - | ccdmath - n6503.vel %1/1000.0
% velfit n6503.vel 0:1:0.002 -57 71.5 20 467,543 frang=0 tab=n6503.vtab
% tabplot n6503.vtab dycol=3 xmin=0 xmax=0.2
The N6503 example was taken from the 1996 VLA data, published in 2009 by Greisen et al. (2009AJ....137.4718G) and generally available.


Mel Wright (Fortran version), Peter Teuben (C version)

Update History

30-sep-92    new task in MIRIAD    MCHW
5-oct-2003    V1.0 : C version in NEMO    PJT
22-oct-2005    V1.1 : added out=    PJT
4-feb-2011    V1.2 : added tab= and mode=    PJT
10-apr-2011    V1.4 : added mode=dv/dr     PJT

Table of Contents