Table of Contents
ccdvel - create a velocity field; grid or retrace
ccdvel creates a model velocity field for
a disk with material in circular orbits. The user supplies the program with
a table of a rotation curve (see also rotcurshape(3NEMO)
for another approach)
with a set of radii and rotation velocities. The position angle and inclination
of each ’ring’ can also be varied to simulate geometrical warps.
retracing: the GIPSY method retraces each pixel in the
sky plane to its (smallest) radius in the (warped) galactic disk: its
ring parameters (velocity, position angle, and inclination) are then (linearly)
interpolated from the input arrays, and that point is appropriately projected
into that pixel ( bug? it might still wind up in the next pixel)
the NEMO method places particles in rings, as prescribed by the input values,
and computes a properly intensity weighted (number of particles in this
case) mean velocity per pixel. This may however results in a ’meaningless’
mean velocity in areas where rings are projected on top of each other. Note:
This mode, originally the only one, merely served as a shortcut between
the various N-body creators, followed by subsequent gridding with snapgrid.
It may not work anymore, since it is not well maintained.
The center coordinates
and systemic velocity are currently fixed for all rings.
mexp= and phexp= a circular orbit can have its expansion velocity modulated:
instead of a constant vexp (i.e. mexp=0), where phi is measured from the
major axis in the plane of the disk (check!). This only works for the retracing
method though. Although the rotation speed has a similar modulation implemented,
it is not a good idea to use that. Instead, it will probably be better to
re-define this as
though this would suggest the local velocity ellipsoid to be isotropic
(cf. Binney & Tremaine ....)
The following parameters are recognized:
A velocity field
in a file map1 is fitted with rotcur, starting at the outskirts of the
galaxy, 100", and working on inwards to 10", the table is commented to
feed it into ccdvel (note the numeric sort) and compute a model velocity
field, after which that is subtracted from the observations (only in points
were both model and observations are not undefined, i.e. 0.0):
- Output velocity field map, will be in image(5NEMO)
- Radii (arcsec). Note they must be sorted by increasing
radius. The default is taken from the rotcur_table table below, or from
- Array of rotation velocities, one for each radius,
If less than the number of radii is given, the trailing ones are filled
with the last supplied value. The default values from the rotcur_table table
below can be also be overridden with this keyword.
- Array of
expansion velocities, one for each radius. If less than the number of radii
is given, the trailing ones are filled with the last supplied value. Default:
- Array of inclinations (degrees), one for each radius. The default
values from the rotcur_table table below can be also be overridden with
- Array of position angles (degrees), one for each
radius. The default values from the rotcur_table table below can be also
be overridden with this keyword.
- Array of rotation phase
angles (degrees), one for each radius. Don’t use this right now. Default:
- Array of expansion phase angles (degrees), one for each
radius, for the modulation of the expansion velocities.
- Fourier mode
for the rotation speed modulation. Currently not a good idea to use this,
since we would modulate the whole rotation, not a tiny bit on top of rotation.
Use mexp=,phexp=. Default: 0
- Fourier mode for the expansion speed
modulation. Default: 0
- Size of map, up to two numbers. If one
number supplied, the map will be square. Note that in NEMO (0-based) coordinates,
the center of rotation will be at ((nx-1)/2,(ny-1)/2). [Default: 128].
- Cell size, up to two numbers. If one number supplied, the cells will be
square. [Default: 1].
- Rotation center (grids with lower left
corner being 0,0). Default: center of map if rotcur_table is not used,
else the center_ring entry from the rotcur_table.
- Lower left
corner of the grid. Default: 0,0.
- Systemic velocity. Default: 0
if rotcur_table is not used, else the center_ring entry from the rotcur_table.
- All ring parameters can also be read from this table,
that is normally output by rotcur(1NEMO)
’s tab= keyword. That table needs
to be commented with tabcomment(1NEMO)
- Ring number
(1..Nring), from the rotcur_table, of which the center (vsys, center) is
used. If 0 is used, they must have been given by the appropriate keywords.
If a large number is given, the last table entry is used.
- Dispersion of the gaussian noise added to the map. Default: 0
set to true (or 1) it will create an amplitude (surface brightness) map,
instead of a velocity field. In this case, the rotation speed is taken as
the amplitude of the density map. See also ccdgen(1NEMO)
- Initial seed
for random number generator. See xrandom(3NEMO)
for defaults. Default: 0
- Template (2d)
image to provide the WCS for a cube. (deprecated)
- Interpolation method used for rings in retrace method.
For linear each computed galactic radius has linearly interpolated values
for the rotation curve, inclincation, position angle etc., whereas for constant
the starting value of ring is used. Default: linear.
verbiage added to the output image [Default: none].
1% rotcur in=map1 radii=100:10:-5 vrot=100 pa=20 inc=45 vsys=1200 \
center=100,110 fixed=center,vsys,inc tab=map1.tmp units=arcsec
2% tabcomment map1.rotcur - | sort -n > map1.rotcur
3% ccdvel out=map1.model rotcurfit=map1.rotcur
4% ccdmath in=map1,map1.model out=map1.diff \
One can also use ccdvel to create a surface brightness. Creating a functional
form for the density can be done using tabmath(1NEMO)
. E.g. the following
example creates an exponential surface density profile:
5% set rad=‘nemoinp 0:100:5‘
6% set den=‘nemoinp 0:100:5 | tabmath - - "exp(-%1/20)" all‘
7% ccdvel out=map1.den radii="$rad" vrot="$den" pa=30 inc=60 amp=t
8% nemoinp 0:100:5 > map1.radt
9% nemoinp 0:100:5 | tabmath - - "exp(-%1/20)" all > map1.dent
10% ccdvel out=map1.den firstname.lastname@example.org email@example.com pa=30 inc=60 amp=t
Now one can create a velocity field in a simular way,
11% nemoinp 0:100:5 | tabmath - - "%1/sqrt(40+%1*%1)" all > map1.velt
12% ccdvel out=map1.vel firstname.lastname@example.org email@example.com pa=30 inc=60
and with simulated beamsmearing create a beam smeared velocity field:
13% ccdsmooth map1.den map1.dens 4
13% ccdmath map1.den,map1.vel - "%1*%2" | ccdsmooth - map1.dvels 4
14% ccdmath map1.den,map1.dvels map1.vels "%2/%1"
Note however that this method of beamsmearing is only approximate, and
ignores the internal velocity dispersion, which can be very important in
areas of large velocity gradients.
The table rotcurfit assumes
the radius, systemic velocity, rotation velocity, position angle, inclination,
x center and y center are in columns 1, 2, 4, 6, 8, 10 and 12 resp.
output map is patched with the undefined value 0.0 where-ever no information
is requested for these pixels.
The gridding method is currently not available.
The retracing (GIPSY) method will be used.
Different versions of rotcur
exist (NEMO, Gipsy) that use different columns, so the rotcurfit= tables
should be used with caution.
20-may-91 original program PJT
31-jul-92 V1.3 new rotcurfit=; rings are now radii PJT
3-aug-92 (b) fixed mapsize bug; override center= PJT
12-aug-92 (d) added headline= PJT
oct-99 doc additions PJT
apr-01 V1.5b added in=, but deprecated it PJT
1-may-01 V1.6 added amp= for CARMA simulations PJT/LGM
3-may-01 V1.7 added vexp= PJT
29-jun-02 V1.8 added blc= keyword (Joshua Simon) PJT
6-feb-03 V2.0 modulated orbits (mexp,phexp,mrot,phrot) PJT
11-sep-03 V2.1 added intpol= PJT
Table of Contents