Table of Contents

Name

snapfit - fit a (6D) snapshot to a (3D) data cube

Synopsis

snapfit [parameter=value]

Description

snapfit attempts to match an observed 3D datacube (where X and Y are normally positions on the sky, and Z the radial velocity) with a 6D model snapshot (with the usual x,y,z,vx,vy,vz coordinates, see bodytrans(1NEMO) ). It finds the best match by varying the two viewing angles, two scale factors and three offsets of the model. The scalefactors in X and Y are forced to be the same, whereas the one in Z is usually independantly determined (though this can be changed with the parameter zmode).

Weights can be given to invidual model points, as well as (to some degree) the data points. The weight of the data will be taken as the intensity at the observed pixel, it’s up to pre-processing to set proper weights. The weight of the model can be modified using a standard bodytrans(5) expression, applied to each particle individually, using the weight parameter.

Currently the match is done in a rather primitive way: with respect to their center of mass the two moments of inertia (see snapinert(1NEMO) ) of the model and data are compared, after which the rotation matrix for each is derived (see also snaprect(1NEMO) ). Then the product of one and the inverse of the other is compared with the unity matrix, and the norm of this difference matrix is going to be minimized (a perfect fit should return 0). We shall refer to this norm as sum. The output will contain the log(sum).

Parameters

The following parameters are recognized in any order if the keyword is also given:
in=in_snapshot
Input model snapshot(5NEMO) . No default.
cube=in_image
Input data. This can be either a 3D datacube in standard image(5NEMO) format or an ascii table, with x,y,vz,I in the first four columns. In the latter case the intensity I is optional, a default value of 1.0 will be taken for data with missing intensity. No default.
cutoff=data_cutoff
Cutoff applied to data cube, if needed: data values less then data_cutoff are ignored. Default: no cutoff given, all data from image (table) are used.
weight=body_weight
Weight (see bodytrans(1NEMO) ) given to model particles. Bodies with weight less or equal zero are ignored. [default: 1].
out=out_snapshot
Optional output snapshot(1NEMO) . It can also be controlled by the minchi and frame parameters. No name, and this is the default, there will be no output snapshot. If selected, of the phase space coordinates only the x, y and z coordinates are written. ** not implemented **
minchi=
Minimum log(sum) needed for an output snapshot. ** not implemented **
frame=model|data
Select to output the re-oriented snapshot in model or data coordinates. [Default: model]. ** not implemented **
zmode=sim|sep
Selection if the zvar coordinate should be treated equal (sim) or seperately (sep) in the minimization. [Default: sep].
theta1=i1,i2,...
the first rotation angle to fit. Fixed values can be given, in which case these are tested against. By default no values are given. This angle can be associated with the inclination of a disk, if this is kept in mind.
theta2=p1,p2,...
the second rotation angle to fit. see comments above. This angle can be associated with the position angle of a disk, if this is kept in mind.
contour=out_image
Optional output file, in which for all input angles (theta1,theta2) the values of the logarithm of the norm of the difference matrix (log(sum)) is stored in standard image(5NEMO) format. Contour plots can be made with ccdplot(1NEMO) Default: none.
iter=
Number of extra iterations needed for the best model from choosen values of the matrix of theta1,theta2 angles to narrow down the search. ** not implemented **
times=t1:t2,t3,...
Standard selection of the (ranges of) times to be selected from the input snapshot [Default: all].

Bugs

A time-scale factor should be absorbed by the user into the zvar expression. This is the factor by which the (model/data?) velocities are multiplied in order to compute a properly dimensioned for chi-squared. This problem is only partially overcome by using zmode=separate

snapfit only works for NDIM=3: the input data must be a 3D datacube.

May work reasonably well for single features to fit, for double features a principle component analysis may have to be done beforehand.

See Also

tablsqfit(1NEMO) , snaprect(1NEMO) , snapinert(1NEMO)

Author

Peter Teuben

Update History


30-May-92    V0.0 Prototype created                   PJT
15-jul-03    V0.7 documentated some recent changes    PJT


Table of Contents