Hi Brad,
The (very) latest version of 3dAllineate now outputs transformation matrices in ALLINEATE_MATVEC_B2S_* and ALLINEATE_MATVEC_S2B_* in the output dataset's header.
You can get at these matrices using catmatvec.
For example, say you registered source+orig to base+orig with:
3dAllineate -input source+orig -base base+orig -prefix source_2_base
You can get that transform with:
cat_matvec 'source_2_base+orig::ALLINEATE_MATVEC_S2B_000000' > S2B.1D
(the inverse transform, from base to source, is stored under ALLINEATE_MATVEC_B2S_* )
To apply the same transform you can use :
3dWarp -matvec_in2out S2B.1D -prefix source_2_base_manual -gridset base+orig source+orig
In this trivial example, source_2_base_manual+orig is the same as source_2_base+orig
To combine successive transforms together, you also use: cat_matvec and then apply the combined transform with 3dWarp as shown above. You'll need to read the help for cat_matvec for more info. The transforms are stored in the output's header under a name that is based on the program used to create them. cat_matvec allows you to get at all of them.
Note that you might be a little confused with the names of the transforms (whichwhat is forward and whichwhat is backward) but dumping the individual matrices and testing them separately as shown above will show you which to use at every step.
Keep in mind that 3dAllineate is still changing, send us datasets that fail to register properly, if you can.
cheers,
-ziad