DESIGNING FALSE COLORS FOR GOES-R HRIT

COLOR IMAGERY FROM HRIT

The High Rate Information Transmission (HRIT) downlink of NOAA’s GOES-R satellite only carries seven of the Advanced Baseline Imager’s (ABI) sixteen spectral bands: channels 2, 7, 8, 9, 13, 14, and 15. Channel 2 is the red visible band, one of only two visible bands on the ABI and the only visible band available to HRIT users. The rest, channels 7 through 15, are infrared. This post will focus on channels 2 and 13, the red visible band and the “clean” longwave infrared window band.

Because HRIT users can only access a portion of the ABI’s spectral bands, their options are very limited when it comes to synthesizing an RGB image. Channel 2 is used because it is the only available visible band, and channel 13 is used because as the “clean” infrared window band, it is the spectral band that most closely represents temperatures at the Earth’s surface. Instead of using visible spectrum to determine color data, HRIT users can use a color LookUp Table (LUT) with an infrared channel to create a thermal false color image. With Lucas Teske’s goesdump, a 256x256 pixel two-dimensional LUT is used to apply color based on visible and infrared radiance with ABI channels 2 and 13. Visible reflectance is represented on the Y axis as color brightness between black and white, while infrared radiance is represented on the X axis as a range of color temperature. It is in this way that color can be painted onto visible imagery as informed by infrared-sensed temperature and visible channel reflectance.



image
image
image

Lucas’ color lookup table for goesdump, shown above with a false color image derived from it, was modeled after one by Tom Lindemann for GeoSatSignal. (Specifically, it is LUT100b_GSS-VIS-fc2.bmp in the TonLindemann-LUTs-ENH2.zip file on that webpage.) Below the false color is the original channel 2 image without any enhancements applied.



I found that previous attempts at false color LUTs for GOES were not visually appealing and I preferred the visible bands by themselves when looking at visible imagery. When I set out to create my own false color LUTs, it was extremely challenging to make imagery that was both visually appealing and visually useful. Thermal false colors work well in theory and quite often work well in practice: different features in the images have different enough temperatures that they can be painted distinct colors without any spillover. In a few words: clouds are cold, land mass is hot, and the ocean is somewhere in-between. This method most often fails when land mass and ocean are similar enough in temperature that, even with a modest contrast curve on the infrared channel, they are not different enough to have sufficient color contrast.

This effect is compounded by another problem I encountered with the ABI: the tonal range on the visible channel is so great that it is difficult to preserve contrast both in bright cloud tops and dark land mass, especially across a full day of imagery while using a single contrast curve as does goesdump. For HRIT Cloud Moisture Imagery Products (CMIPs), channel 2 ABI reflectance between 0 and 1.3 is mapped to the 256 color values of the grayscale 8-bit PNG that the image is decoded to. Over GOES ReBroadcast (GRB), channel 2 is delivered in a 12-bit JPEG2000 format. This gives a color value range of 4,096 which is much more suitable for this imagery.

The combined result of these issues is twofold and prevalent especially in recent winter months: the Conterminous United States (CONUS) appears quite dark against a black ocean in the visible band, and appears very similar in temperature to the ocean in the infrared band. Other satellite imagery software, like WXtoImg for POES APT, circumvent the thermal contrast issue by aligning the image to a map and then painting the ocean blue while applying a color LUT specifically for clouds and land mass. This method feels disingenuous and does not yield pleasant imagery. In light of the above issues, I have created a LUT that comes to a compromise between the two extremes: pleasant imagery and visibility of the CONUS. It is intended to favor contrast of land features more than bright cloud tops. With this LUT as a base, users can make basic edits to the LUT in saturation and brightness without significant loss of color gradation. 


CREATING A COLOR LOOKUP TABLE

Before creating the new lookup table the contrast curves were first checked in goesdump. The channel 13 contrast curve did not need to be changed, but the visible curve had not been updated since before the NOAA-side reflectance changes in ABI channel 2. To get a good visible contrast curve, a channel 2 image was opened in Gimp and the Curves tool was used to make the land as bright as possible without blowing out the brightest cloud tops. From there, clicking the “Export settings to file…” button will write the 256 values of the curve between 0 and 1 to a text file which can then be imported into goesdump’s Presets.cs. Some of the brightest cloud tops at the subsolar point do still get washed out which is acceptable for the purposes of this LUT.

image

With a good contrast curve for the new reflectance range, I was ready to begin testing different colors in the LUT. I began by using a modified version of Photoshop CC 2018’s “Spectrum” gradient preset in the Gradient Editor tool blended with a black and white vertical gradient underneath: 

image

Which yields the following full disk image:

image

The colors here are not actually far off. The color stops, which are the distinct lines of color in the table gradient, are almost in the correct place: see the warm yellow and green colors appearing as they should in South America and an overall blue tone to the disk. Through about 50-60 iterations of trial and error and peer feedback I found a combination of color stops and colors that worked well. 

image

A fresh vertical black and white gradient was created in Photoshop CC. Rulers were used to test different start and endpoints for the gradient on the canvas but I found it was best to start the gradient at the first row of pixels and end at the last, as shown in the above screenshot.

image

A new layer was created for the color gradient and placed on top of the black and white layer. The “Overlay” blend mode was used on the color gradient layer with 100% opacity. This can be used as a way to change saturation in the final image but it is much more intuitive to make these edits to the LUT at a later step.

At first, NOAA’s GOES-16 color composite images were used as the reference colors for the new lookup table. This choice complicated things, as there are several different models for what “true color” GOES-16 imagery should look like. This stems from the ABI’s lack of a proper visible green channel, and so different approximations have to be made when creating true color RGB imagery. Instead, Aqua/Terra MODIS and SNPP VIIRS “corrected reflectance” true color imagery was used for reference color via NASA’s EOSDIS Worldview:

image

Color values were sampled from this image using the Mac OS Digital Color Meter tool in sRGB. This method is still fairly approximate as the colors in the temperature gradient will be affected by where they place in the black and white brightness gradient beneath it. The output from the new LUT will differ also because of the different spectra available from the SNPP VIIRS instrument compared to the GOES-R ABI over HRIT. 

The final LUT uses this gradient made in the Photoshop CC 2018 Gradient Editor tool: 

image

When combined with the black and white gradient, the final color lookup table looks like this:

image

From left to right one can read the color temperature as it will be applied through the infrared channel, and from top to bottom the visible channel brightness. The darkest reds correspond to the hottest desert scenes, and the white corresponds to cold cloud tops. The color stops are very carefully selected so that different features on the image retain distinct colors as much as possible.


TESTING THE NEW LUT

A simple script was written to quickly recompile goesdump with a new LUT. Data from several different days in January 2018 was used, each showing different features on the surface with different amounts of cloud cover on the CONUS. One set of data from October 2017 was used to confirm that the CONUS will change color when the weather is warmer.

2018-01-04T1700Z:

image

2018-01-08T1800Z:

image

2017-10-26T1700Z:

image

(GOES-16 imagery from before December 18th, 2017 should be considered preliminary and non-operational.)

Note that the image from October uses ABI data from before the channel 2 reflectance range was raised from 1 to 1.3, so this image interacts differently with the contrast curve applied than do newer images transmitted after this change.


CONCLUSION

The unmodified LUT yields a neutral, balanced image. More saturation can be applied at the cost of some visibility of the CONUS during the winter. In this image, 20% saturation has been applied to the LUT with Photoshop CC 2018 and recompiled into goesdump:

2018-01-08T1800Z:

image

This version of the LUT, with 20% saturation added, has been selected for use in the WX-STAR automated HRIT/EMWIN processing system and can be viewed in full resolution here for the 2018-01-11 full disk.

The method used here is not perfect but it is the next step for false color imagery for HRIT users. In the future, the LUT may be reevaluated to ensure it works for warmer weather in the CONUS. At the time of writing a contrast curve could not be found that adequately exposed detail in both land and bright cloud tops near the subsolar point. This is understood to be an unavoidable issue with 8-bit CMIPs.

The ABI channel 02 contrast curve and the color lookup table are available to download here.

Special thanks to Lucas Teske, Heidi Neilson, Shan and others for guidance and color input.


Update on 2018-01-13: The white color stop was moved all the way to the right end of the color gradient to reduce blown out cloud tops.

Update on 2018-01-14: Added commentary on the limits of the new contrast curve.