[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
19990401: dynamic calibration "KB1OPT"
- Subject: 19990401: dynamic calibration "KB1OPT"
- Date: Tue, 06 Apr 1999 17:58:32 -0600
>From: Craig Motell <address@hidden>
>Organization: University of Hawaii
>Keywords: 199904012145.OAA23393 McIDAS-X KBXOPT
Craig,
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 \
kbxwsi.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...
Tom
>From address@hidden Wed Apr 7 14:23:56 1999
Thankyou Tom,
Has always for your detailed answers.
Aloha,
craig motell
Craig Motell
University of Hawaii
2525 Correa Road
Honolulu, HI 96822
808-956-8302