This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Nick, re: > I’ve decoded most of the Himawari Area File, but I can’t find any > documentation > on the ‘Calibration Block’ in the AREA file. Ordinarily, one would find the information on the various header blocks in an AREA file in the McIDAS Programmer's Manual: http://www.ssec.wisc.edu/mcidas/doc/prog_man.html The Himawari server is new enough that the Programmer's Manual has not yet been updated to include the information you are looking for. But, since you have installed McIDAS-X v2015, you have the McIDAS source code that contains enough information to figure out what the calibration block values are and how they can be used to calculate calibrate values from pixel bits. The relevant files in McIDAS-X are: ~mcidas/mcidas2015/src: wariadir.cp - listing server wariaget.cp - data get server kbxwari.dlm - calibration 'integer function kbxcal' contains the lines that "define" (but don't explain) the values in the calibration block in a Himawari AREA file: c ------ values from CAL block go into JMA cal common calb_BlockLen = cal_block(2) calb_bandNo = cal_block(3) calb_bitPix = cal_block(4) calb_errorCount = cal_block(5) calb_outCount = cal_block(6) calb_invalidValue = cal_block(7) calb_waveLen = DBLE(cal_block(8)) *0.0000001D0 calb_gainCnt2rad = DBLE(cal_block(9)) *0.0000001D0 calb_cnstCnt2rad = DBLE(cal_block(10))*0.0000001D0 calb_rad2btpC0 = DBLE(cal_block(11))*0.0000001D0 calb_rad2btpC1 = DBLE(cal_block(12))*0.0000001D0 calb_rad2btpC2 = DBLE(cal_block(13))*0.000000000001D0 calb_btp2radC0 = DBLE(cal_block(14))*0.0000001D0 calb_btp2radC1 = DBLE(cal_block(15))*0.0000001D0 calb_btp2radC2 = DBLE(cal_block(16))*0.0000001D0 calb_rad2albedo = DBLE(cal_block(17))*0.0000001D0 The subroutine 'maktbl' contains the code that uses these parameters to convert from pixel counts to the various calibrated values: RAW RAW to RAD RAD to ALB/BRIT RAD to TEMP/BRIT The code seems easy enough to follow, so you should be able to get what you need. > I am attaching Matlab > code that can decode the Directory block and saves the pixel data, so > i just need to know how to decode the (sensor specific) Calibratoin block > ‘gain’ and > ‘constant’ offset data to get the final radiance values. > > Please let me know what byte fields these might be? Please let me know if what I wrote above is enough to get you going. Cheers, Tom -- **************************************************************************** Unidata User Support UCAR Unidata Program (303) 497-8642 P.O. Box 3000 address@hidden Boulder, CO 80307 ---------------------------------------------------------------------------- Unidata HomePage http://www.unidata.ucar.edu **************************************************************************** Ticket Details =================== Ticket ID: SKX-144523 Department: Support McIDAS Priority: Normal Status: Closed