View on GitHub

IRAF Community Distribution

IRAF maintained by the community

Home | Installation | Packages | X11IRAF | PyRAF | Forum

Where are LTV and WAXMAP header cards written?

Thomas Wentzel wrote on Jan 12, 2006

Hello, IRAFers!

I'm rewriting some old code for GONG at NSO to speed up its operation, and I'm trying to figure out what IRAF routines are writing some particular header cards in an image. The header cards being written are:
WCSDIM = 3
LTV3 = -2.
LTM1_1 = 1.
LTM2_2 = 1.
LTM3_3 = 1.
WAXMAP01= '1 0 2 0 0 2 '
WAT0_001= 'system=physical'
WAT1_001= 'wtype=linear'
WAT2_001= 'wtype=linear'
WAT3_001= 'wtype=linear'

What would write this information? I think the cards from WAXMAP onwards are being written by sys/mwcs/mwsaveim.x, but I can't figure out what routine is writing the previous cards. I also can't figure out how these two routines are being called from the shell code I'm revamping (or called by something called by something...called by the shell code). The only likely IRAF call that I see in the shell code is
$IMAGES_BIN imcopy input="@$inlist" output="@$ot1list" verbose=no @$dummy_par
but imcopy just calls iki_init and iki_copy, which do not seem to trouble themselves with writing header values.
The very next IRAF call in our shell code is to a routine of our own called DONUT, and I don't see anything in that code that would call anything to write the above header cards, before DONUT goes on to write its own DONUT-related header cards.

Your thoughts? Assistance? Many thanks,

Tom

Mike Fitzpatrick wrote on Jan 12, 2006

Did you check whether the keywords appeared between the IMCOPY and the DONUT calls? My guess, your input list contains image sections and the keywords are appearing from the immap() call itself (more specifically where
im_make_newcopy() is called -- see imio$immaky.x) to update the WCS of the copy.

-Mike

Thomas Wentzel wrote on Jan 12, 2006

Hi, Fitz,

Your suggestions led me to the right piece of code. The beginning of our DONUT code has two calls to immap prior to where the code really gets down to business. And immap calls immapz, which calls im_make_newcopy (immaky), which calls mwloadim...and leads to where the cards are written for WCSDIM, LTV3, LTM1_1, LTM2_2, LTM3_3, WAXMAP01, WAT0_001, WAT1_001, WAT2_001, and WAT3_001.

Thanks!

--Tom

Last post on Jan 12, 2006