RSD marit's home projects

GOES Count to Brightness Temperature Conversion

Oct 2003

 

Updated July 2006 to include GOES-13 calibration constants

The GOES sectors that Dennis Chesters provides on his GOES Project Science webpage are usually provided as 8-bit tiffs with the data in Mode-A, however some sectors are provided in raw 10-bit counts and in the past almost all of the sectors were provided with a different calibration curve. If you have downloaded a tiff from the GOES server, it should have a comment in the Image Description tag that describes the format of the GOES data contained in the image. Dennis has a good description of the comment format on the GOES site.

Two ways I know of reading the tiff comment label are the sgi command line program 'imginfo' and the obsolete IDL routine 'tiff_dump'. Here is what the output of tiff_dump looks like:

IDL> tiff_dump,'0309171444uG12G12I01.tiff' Tiff File: byte order=II, Version = 42 *** IFD 0 starting at offset: 64583384 13 directory entries ImageWidth (256)UShort = 9409 ImageLength (257)UShort = 3432 BitsPerSample (258)UShort = 16 Compression (259)UShort = 1 PhotometricInterpretation (262)UShort = 1 ImageDescription (270)Ascii = GOES 12 Imager frame 119 at UTC 14:45:18.910 day 260 of 2003 Vis pixels: 4025, 24860 lines: 2445, 13264 Vis Lon :999999,999999 Lat :999999,999999 Imager ch1:count(0,1023) => [(count-0)/1]^1 =Ushort> (0,1023) (xscale,yscale) => (1,1) Vis pixels: 12796, 22204 lines: 3366, 6797 (xstride,ystride) => (1,1) StripOffsets (273)ULong = 8 Orientation (274)UShort = 1 StripByteCounts (279)ULong = 64583376 MinSampleValue (280)UShort = 0 MaxSampleValue (281)UShort = 32768 PlanarConfiguration (284)UShort = 1 SampleFormat (339)UShort = 1

This particular file is in the format I prefer - i.e. raw 10 bit counts:

Imager ch1:count(0,1023) => [(count-0)/1]^1 =Ushort> (0,1023)
and no spatial oversampling or undersampling:
(xscale,yscale) => (1,1)

The GOES Project Science Imager Calibration web page has a detailed description of how to convert imager counts to physical quantities. I've written an IDL raw 10bit counts to brightness temperature conversion program based on equations and constants from that page and this NOAA page. My program is called j_goes8_calib and though it refers to goes8 in the name, it can generate count-to-temperature lookup tables for any of the GOES I-M imagers. The program is called as follows:

j_goes8_calib, channel ,$ satellite = satellite ,$ Btemp = Btemp
Channel can equal 1-6 where 1 indicates the visible channel and 2-6 indicate the infrared channels. Satellite can be 8,9,10,11 or 12. Btemp is the output lookup table, it would be applied to raw counts as follows:
btemp_data = btemp[raw_counts_data]
Other output lookup table options include tscene, modea, radiance and albedo. You can look at the source for more details. The j_goes8_calib program also calls a few subroutines. The IDL source code files you will need are:

j_goes8_calib.pro
j_get_name_depth.pro
j_constants.pro
j_is_defined.pro
j_plkinv.pro

If you use the gvar program to generate a tscene or albedo file and a raw counts file of the same area and apply an IDL-generated lookup table to convert the raw counts to tscene or albedo, the gvar generated value and the IDL generated value can be different. This is probably because the gvar code and my IDL code use different calibration constants - however if you have downloaded my IDL code you can easily edit it to use whatever calibration constants you feel are most accurate.