NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Pete, Here's what I see in the imagery you provided: Examining the cloud feature in the Bay of Campeche for channel 13, the AOS image shows bright greens to a peak near orange which I would value in a range from 215 to 230 K (-58 to -43 C) using the AOS scale. For the NESDIS image, the colors range from navy blue to moderately bright green. Using the NESDIS scale you attached, I would value that range from -55 to -40 C. The difference between these two images is about 3 C which I would attribute to the limits of the subjective evaluation of the color ranges. Doing the same for channel 7, the AOS image shows light blues to navy blue which I would value in a range from 242 to 252 K (-31 to -21 C) using the AOS scale. For the NESDIS image, the colors range from light blue (or even starts in the gray) to navy blue or a range of about -40 to -25 C. The warmer end of this range is within the limitations of guessing at the color values, but the colder end is about 10 C different. Put another way, both the AOS and NESDIS images show about the same color for the coldest clouds (navy blue), but navy blue on the AOS curve is about 243 K (-30 C) versus -40 C for the NESDIS curve. The difference is more apparent when you replicate the NESDIS curve and plot the images comparing them side by side. I've attached channel 7 imagery from NESDIS and also what I created from the GRB data for 14:27Z this morning to show what I mean (although there's not a lot of high cloud out there today). The ColorBar image applies to the NESDIS image and I've tried to replicate that in my image. I'm convinced there's a difference in what's being shown on the NESDIS site versus what we're calculating from the GRB data... but why? It only appears to be channel 7 related, although I haven't looked at other channels besides 13 (which you provided here) and 14. Art > From: "Pete Pokrandt" <poker@xxxxxxxxxxxx> > To: "ARTHUR AUGUST PERSON" <aap1@xxxxxxx> > Cc: "ldm-users" <ldm-users@xxxxxxxxxxxxxxxx> > Sent: Thursday, January 25, 2018 5:20:24 PM > Subject: Re: [ldm-users] Problem calculating GOES-16 brightness temperature > from > radiance > Art, > It's a little hard, since we are using slightly different color tables. > The NESDIS color table (attached) first uses color - cyan- at -30C (243K) and > then goes through a rainbow color table up to about -70C (203K) and then black > to white. > My color table, based on what I had seen CIMSS using, first uses cyan at 253K > (-20C) and cycles through colors up to about 203K (also -70C). > These same color tables are used for all of the IR images except the WV (so > ABI > 7 and 11-13) > I've attached copies of the NESDIS and UW-AOS versions of both channels 7 and > 13, all valid at 1930 UTC today, and the color table used by NESDIS since > theirs are not on the image like mine are - and also an image from last April > showing the IR color table that CIMSS used that I was trying to re[produce - > although now that I look, I think my purple should go to 183K, not 180. That > might be a bug for me, but only on the most cold temps. > A visual comparison of both of these - their ABI7 to mine, and their ABI13 to > mine - looks like we're the same, just using a different color scale.. > I also attempted to overlay their color scale with mine so the temps lined up > (AOS_Color_Table_vs_NESDIS.png). The differences in our color scales would be > most evident at warmer temps - so maybe they are more prominent at ABI 7 which > is warmer than ABI 13 or 14, which are colder? > Thoughts? > Pete > [ > http://www.weather.com/tv/shows/wx-geeks/video/the-incredible-shrinking-cold-pool > ] -- > Pete Pokrandt - Systems Programmer > UW-Madison Dept of Atmospheric and Oceanic Sciences > 608-262-3086 - poker@xxxxxxxxxxxx > From: Arthur A Person <aap1@xxxxxxx> > Sent: Thursday, January 25, 2018 8:04 AM > To: Pete Pokrandt > Cc: ldm-users > Subject: Re: [ldm-users] Problem calculating GOES-16 brightness temperature > from > radiance > Pete, > No, I didn't. With your plots, I just did some more checking... Approximating > your curve, I got similar results > using GRB data from amazon. However, when I switch back to approximating the > curve on > https://www.star.nesdis.noaa.gov/GOES/GOES16_FullDisk_Band.php?band=07&length=24 > and plotting, my image again appears warmer. How do your plots compare to > what's > on the star site? > Thanks... Art >> From: "Pete Pokrandt" <poker@xxxxxxxxxxxx> >> To: "ARTHUR AUGUST PERSON" <aap1@xxxxxxx> >> Cc: "ldm-users" <ldm-users@xxxxxxxxxxxxxxxx> >> Sent: Wednesday, January 24, 2018 10:48:46 PM >> Subject: Re: [ldm-users] Problem calculating GOES-16 brightness temperature >> from >> radiance >> Art, >> Did you ever get this figured out? I plotted up an ABI full disk image from >> the >> GRB Radiance data coming in from both the Unidata DIFAX feed and from the >> tiled >> NOAAPORT CMI data. They seem pretty much the same to me, considering >> resolution >> differences - 2km for GRB vs 6km for the NOAAPORT data. >> GRB image - [ >> http://whirlwind.aos.wisc.edu/~wxp/goes16/test/201801210430_fulldisk_grb.jpg >> | >> http://whirlwind.aos.wisc.edu/~wxp/goes16/test/201801210430_fulldisk_grb.jpg >> ] >> NOAAPORT image - [ >> http://whirlwind.aos.wisc.edu/~wxp/goes16/test/201801210430_fulldisk.jpg | >> http://whirlwind.aos.wisc.edu/~wxp/goes16/test/201801210430_fulldisk.jpg ] >> Pete >> [ >> http://www.weather.com/tv/shows/wx-geeks/video/the-incredible-shrinking-cold-pool >> ] -- >> Pete Pokrandt - Systems Programmer >> UW-Madison Dept of Atmospheric and Oceanic Sciences >> 608-262-3086 - poker@xxxxxxxxxxxx >> From: ldm-users-bounces@xxxxxxxxxxxxxxxx >> <ldm-users-bounces@xxxxxxxxxxxxxxxx> on >> behalf of Arthur A Person <aap1@xxxxxxx> >> Sent: Monday, January 15, 2018 4:45 PM >> To: ldm-users >> Subject: Re: [ldm-users] Problem calculating GOES-16 brightness temperature >> from >> radiance >> All -- >> I'm starting to think there may be a problem with the GOES-16 channel 7 GRB >> NetCDF data. I wrote a short test code >> (included below) that calculates brightness temperature and produces a png >> file >> with an abbreviated color table for comparison >> with the NESDIS https://www.star.nesdis.noaa.gov/GOES/GOES16_CONUS.php >> imagery. >> When using the channel 7 data, >> the calculated imagery appears noticeably warmer, but when using channel 14 >> data >> (for example), the images appear >> very close in value. >> Would someone else mind taking a look at this and confirm whether this might >> be >> the case, or whether I'm just losing my mind? >> Thanks! >> Art >> _________________________________________________________________________________________________________ >> from netCDF4 import Dataset >> import numpy as np >> import matplotlib.pyplot as plt >> from matplotlib.colors import LinearSegmentedColormap >> filename = >> "amazon/OR_ABI-L1b-RadC-M3C07_G16_s20180151547235_e20180151550019_c20180151550058.nc" >> #filename = >> "amazon/OR_ABI-L1b-RadC-M3C14_G16_s20180151547235_e20180151550008_c20180151550050.nc" >> dataset = Dataset(filename,'r') >> # Get coefficients for calculation of brightness temperature >> planck_fk1 = dataset.variables['planck_fk1'][:] >> planck_fk2 = dataset.variables['planck_fk2'][:] >> planck_bc1 = dataset.variables['planck_bc1'][:] >> planck_bc2 = dataset.variables['planck_bc2'][:] >> print("planck_fk1: ",planck_fk1) >> print("planck_fk2: ",planck_fk2) >> print("planck_bc1: ",planck_bc1) >> print("planck_bc2: ",planck_bc2) >> # Read the radiance data >> rad = dataset.variables['Rad'][:] >> dataset.close() >> # Calculate brightness temperature >> bt = ( (planck_fk2 / (np.log( (planck_fk1/rad)+1 ))) - planck_bc1 ) / >> planck_bc2 >> bt = bt - 273.15 >> # Create a color table to compare against >> https://www.star.nesdis.noaa.gov/GOES/GOES16_CONUS.php imagery >> red = [] >> green = [] >> blue = [] >> valmin=-110. >> valmax=55. >> red.append( [0.0, 0.0, 0.0] ) >> green.append( [0.0, 0.0, 0.0] ) >> blue.append( [0.0, 0.0, 0.0] ) >> red.append( [ (-50.0-valmin)/(valmax-valmin), 0.0, 0.0 ] ) >> green.append( [ (-50.0-valmin)/(valmax-valmin), 1.0, 1.0 ] ) >> blue.append( [ (-50.0-valmin)/(valmax-valmin), 0.0, 0.0 ] ) >> red.append( [ (-40.0-valmin)/(valmax-valmin), 0.0, 0.0 ] ) >> green.append( [ (-40.0-valmin)/(valmax-valmin), 0.0, 0.0 ] ) >> blue.append( [ (-40.0-valmin)/(valmax-valmin), 0.4, 0.4 ] ) >> red.append( [ (-30.0-valmin)/(valmax-valmin), 0.0, 0.8 ] ) >> green.append( [ (-30.0-valmin)/(valmax-valmin), 1.0, 0.8 ] ) >> blue.append( [ (-30.0-valmin)/(valmax-valmin), 1.0, 0.8 ] ) >> red.append( [ 1.0, 0.0, 0.0 ] ) >> green.append( [ 1.0, 0.0, 0.0 ] ) >> blue.append( [ 1.0, 0.0, 0.0 ] ) >> cdict = {'red': red, 'green': green, 'blue': blue} >> ctbl = LinearSegmentedColormap('custom', cdict) >> # Set the figure size >> fig = plt.figure(1, figsize=(23, 15)) >> # Display the image >> im = plt.imshow(bt, cmap=ctbl, vmin=valmin, vmax=valmax ) >> # Display a color bar >> cb = plt.colorbar( orientation='vertical', shrink=0.7, pad=0.01, aspect=30 ) >> cb.set_label("Brightness Temperature (C)") >> # Save the image to a png file >> plt.savefig('plot.png', dpi=100) >>> From: "Pete Pokrandt" <poker@xxxxxxxxxxxx> >>> To: "ARTHUR AUGUST PERSON" <aap1@xxxxxxx> >>> Cc: "ldm-users" <ldm-users@xxxxxxxxxxxxxxxx> >>> Sent: Saturday, January 13, 2018 9:03:11 PM >>> Subject: Re: [ldm-users] Problem calculating GOES-16 brightness temperature >>> from >>> radiance >>> Forgot to cc to the list. >>> Here's a commented version of the script that I'm currently using to plot >>> ABI >>> channel 13 (clear channel IR window) but the calculation for BT should work >>> for >>> any of the channels 7-16. >>> I am using just the radiance values read in from the netcdf files, without >>> applying any scale/offset to them. Perhaps the netcdf4 read does that for >>> us? I >>> am reading the scale and offset info in for reference, and printing them >>> out, >>> but I am not using them in my calculations at all. >>> If for some reason, the attachment doesn't come through, you can get the >>> file at >>> [ http://sysadm.aos.wisc.edu/~poker/goes16_GRB_fulldisk_IR13_ircm.py | >>> http://sysadm.aos.wisc.edu/~poker/goes16_GRB_fulldisk_IR13_ircm.py ] >>> Hope this helps, >>> Pete >>> [ >>> http://www.weather.com/tv/shows/wx-geeks/video/the-incredible-shrinking-cold-pool >>> ] -- >>> Pete Pokrandt - Systems Programmer >>> UW-Madison Dept of Atmospheric and Oceanic Sciences >>> 608-262-3086 - poker@xxxxxxxxxxxx >>> From: Arthur A Person <aap1@xxxxxxx> >>> Sent: Saturday, January 13, 2018 9:04 AM >>> To: Pete Pokrandt >>> Cc: ldm-users >>> Subject: Re: [ldm-users] Problem calculating GOES-16 brightness temperature >>> from >>> radiance >>> Pete, >>> Thanks for the help. Actually, I already tried adding parens to the >>> equation, >>> including the variation you >>> suggested, but the results are the same. Do you have a few lines of code >>> that >>> worked for you that you'd >>> be willing to share? Or, do you recall whether there's any issue with netCDF >>> auto-scaling the input data, >>> or any units conversion that has to be included that's not in the >>> documentation? >>> Thanks... Art >>>> From: "Pete Pokrandt" <poker@xxxxxxxxxxxx> >>>> To: "ARTHUR AUGUST PERSON" <aap1@xxxxxxx>, "ldm-users" >>>> <ldm-users@xxxxxxxxxxxxxxxx> >>>> Sent: Friday, January 12, 2018 11:47:08 AM >>>> Subject: Re: [ldm-users] Problem calculating GOES-16 brightness >>>> temperature from >>>> radiance >>>> Art, >>>> I think it may be a parenthesis/order of operations issue. I seem to recall >>>> having this same issue when I first started working with the GRB data. >>>> Try this: >>>> bt = ( planck_fk2 / ( np.log((planck_fk1 / rad) + 1 )) - planck_bc1) / >>>> planck_bc2 >>>> Pete >>>> From: ldm-users-bounces@xxxxxxxxxxxxxxxx >>>> <ldm-users-bounces@xxxxxxxxxxxxxxxx> on >>>> behalf of Arthur A Person <aap1@xxxxxxx> >>>> Sent: Friday, January 12, 2018 7:43 AM >>>> To: ldm-users@xxxxxxxxxxxxxxxx >>>> Subject: [ldm-users] Problem calculating GOES-16 brightness temperature >>>> from >>>> radiance >>>> Hi... >>>> I'm trying to calculate brightness temperature from radiance for GOES-16 IR >>>> channel 7 using rebroadcast data >>>> but my values compared to McIDAS imagery are coming out 15 to 20 degrees C >>>> too >>>> warm. I'm using the following >>>> values and code: >>>> Test imagery: >>>> OR_ABI-L1b-RadC-M3C07_G16_s20180112232223_e20180112235008_c20180112235045.nc >>>> rad (radiance) is read in from and auto-scaled by netCDF, >>>> planck_fk1: 202263.0 >>>> planck_fk2: 3698.18994140625 >>>> planck_bc1: 0.4336099922657013 >>>> planck_bc2: 0.9993900060653687 >>>> bt = ( planck_fk2 / np.log( (planck_fk1/rad)+1 ) - planck_bc1 ) / >>>> planck_bc2 >>>> bt = bt - 273.15 >>>> Can anyone tell me if I'm missing a step or spot a dumb mistake? >>>> Thanks... Art >>>> -- >>>> Arthur A. Person >>>> Assistant Research Professor, System Administrator >>>> Penn State Department of Meteorology and Atmospheric Science >>>> email: aap1@xxxxxxx, phone: 814-863-1563 >>> -- >>> Arthur A. Person >>> Assistant Research Professor, System Administrator >>> Penn State Department of Meteorology and Atmospheric Science >>> email: aap1@xxxxxxx, phone: 814-863-1563 >> -- >> Arthur A. Person >> Assistant Research Professor, System Administrator >> Penn State Department of Meteorology and Atmospheric Science >> email: aap1@xxxxxxx, phone: 814-863-1563 > -- > Arthur A. Person > Assistant Research Professor, System Administrator > Penn State Department of Meteorology and Atmospheric Science > email: aap1@xxxxxxx, phone: 814-863-1563 -- Arthur A. Person Assistant Research Professor, System Administrator Penn State Department of Meteorology and Atmospheric Science email: aap1@xxxxxxx, phone: 814-863-1563
Attachment:
20180261427_GOES16-ABI-CONUS-07-625x375.jpg
Description: JPEG image
Attachment:
C07_20180261427.png
Description: PNG image
Attachment:
ColorBar450Bands7_13_horz.png
Description: PNG image
ldm-users
archives: