[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

19990401: dynamic calibration "KB1OPT"

>From: Craig Motell <address@hidden>
>Organization: University of Hawaii
>Keywords: 199904012145.OAA23393 McIDAS-X KBXOPT


First, sorry I couldn't get to this sooner...

>I'm trying to use the function KB1OPT.
>This function like others is not documented, however source code suggest
>that it may be called by as part of KBPREP.

You are correct on both counts.

>Can you tell me the following:
>1) What is a generated file?

At first I had no idea of what you were referring to here.  Finally,
I realized that you were referring to the comments in kbprep.for.
This file is created dynamically by the mcidas build process (as
is nvprep.for).  The idea is that a script (cal_init.sh) is run from
the makefile to create the source for nvprep.for on the fly.  The
entries included in kbprep.for are determined by the list of calibration
modules in makefile.  Here is the rule for nvprep.for:

kbprep.for      :: cal_init $(CalDlm_Srcs)
            rm -f kbprep.for
            @$(MCLOG) ./cal_init $(CalDlm_Srcs) -o kbprep.for

The macro CalDlm_Srcs is the list:

CalDlm_Srcs     = \
            kbxaaa.dlm  \
            kbxavhr.dlm \
            kbxeas.dlm  \
            kbxgms.dlm  \
            kbxgvar.dlm     \
            kbxhirs.dlm \
            kbxmi.dlm   \
            kbxmsat.dlm \
            kbxmsu.dlm  \
            kbxnids.dlm \
            kbxols.dlm  \
            kbxprd.dlm  \
            kbxprdx.dlm \
            kbxqtir.dlm \
            kbxtiro.dlm \
            kbxvas.dlm  \
            kbxvisr.dlm \

This structure lets a site (like Unidata, for instance) create a new
calibration module and have it callable from kbprep.  I did just this
for the WSI NIDS products.  The module that I added was kbxnids.dlm.

>2) How do I use KB1OPT or I do know what parameters it needs and
>   why I should not call something like kb1ini?

The answer your second question is not something that can be gone over
in a couple of sentences.

A decent program to look at to see the needed sequence of calls to
the calibration modules is d.pgm.

The first answer is that you need to call KBPREP before you can call
KB1OPT.  KBPREP must be given the image "source type".  This
4-character ASCII value (packed inside a 4-byte integer) sets up all of
the KBX...  routines that will be used by the program.  This means that
after you call KBPREP, for instance for VISR data, a call to KB1OPT
will be translated into a call to KB1OPTVISR inside of KBPREP.  This
seemingly very complicated way of doing things was SSEC's way of
converting routines that used dynamic link libraries on a system (Unix)
that doesn't support dynamic link libraries).

The calling sequence in d.pgm shows the calls that have to be made
in order to extract the value of a displayed image element in all of
its units.  For instance, I displayed a GOES-10 IR image and ran D
from a McIDAS-X session and got back:

AREA       AREA       NOMINAL  IMAGE     RAW      TEMP     MODB
        LINE/ELEMENT   LINE/ELEMENT               K        IRTEMP
 130     472/  801     4521/14405         111      274.5     111

RAW, TEMP, and MODB (modified brightness; different from RAW on a
calibrated image only when the image is loaded using a stretch table).
For a WSI NIDS image, there are more valid units:

AREA       AREA       NOMINAL  IMAGE     RAW      VIP      ECHO     BRIT
        LINE/ELEMENT   LINE/ELEMENT                        dBZ
 331     408/  184      409/  185          10          4      50     160

Here, the values can be represented as RAW (a number between 0 and 15),
VIP (old radar VIP level), ECHO (in dBZ since the image was reflectivity),
and BRIT (brightness, a number that ranges from 0 to 255).

I want to dash this off without going into more specifics just in case
you have already figured all of this out.  Please let me know...


>From address@hidden  Wed Apr  7 14:23:56 1999

Thankyou Tom, 

Has always for your detailed answers.

craig motell

Craig Motell
University of Hawaii
2525 Correa Road
Honolulu, HI 96822

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.