>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
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.