Skip to content
USRADIOGUY

USRadioguy.com

Welcome to USRadioguy.com – Unlocking the Potential of Software Defined Radio

  • Home
    • Home of USRadioguy
    • USRadioguy Newsletter
    • Tried and Tested Hardware
    • What is RTL-SDR?
    • Global Weather Data
  • Satellite Reception
    • Geo Stationary Satellites
      • Geo-stationary Satellite Imagery Reception
      • GOESTOOLS on the PI
      • Update Goestools for GOES 18,19
      • Receiving GOES with SatDump CLI Mode
      • GOES receiving in Windows for SatDump GUI
      • Decoding EWS-G1/EWS-G2
      • GOES GRB Reception WIP
      • Optimizing a WIFI Grid Antenna for Maximum Efficiency
    • APT Satellites
      • APT RECEPTION
      • Satdump for Meteor and NOAA decoding
      • METEOR M2- Series
      • WxtoImg Fix
      • Converting to new TLE format
      • Layering Fire and Hotspot Data on Meteor Sat Imagery
      • HRPT Satellite Tracking and Capture
    • Receiving Other Satellites
      • Inmarsat Decoding
      • Receiving the Funcube Amateur Satellite
    • User Maps and Dish Pointers
      • Satellite Dish Pointer
      • User Global Ground Station Maps
      • Usermap rendered with Cesium
      • Global Map of Govt Dish Stations
    • Satellite Details & Information
      • ORBITAL DYNAMICS 101
      • HRIT/EMWIN & GRB Defined
      • Mesoscale Imagery Defined
      • Viterbi, R/S Errors, Packets
      • GOES BAND IMAGERY
      • Stray Light Zone (SLZ)
      • Drifting a geostationary satellite
      • GOES-R Series Multimedia Tour
      • Online Satellite Imagery and Information
      • Satellite Frequencies
      • Solar and Space Weather
  • Satellite Imagery
    • IMAGERY- Current GOES East & West HRIT Satellite Imagery
    • IMAGERY- GOES 16&18 – Past 96 Hours of Imagery
    • High Resolution Imagery
    • Daily 3D view of Earth
    • NOAA APT Satellite imagery
    • PlanetMaker
    • GOES16 A full year of received imagery
  • Imagery Processing
    • Custom Color Lookup Table & Gradients
    • GOES-R Custom Imagery Scripts
    • Global geo-ring composites
    • MODIS VIIRS Global Coverage
    • 3D Satellite Tracking
    • The quest for True Color Imagery
    • 3D animation of realtime data
    • Layering Geo-Spatial Fire Data into Satellite Imagery
    • Orbital dynamics and the Moon
    • National Hurricane Data
  • News, VLOGS & BLOGS
    • News & USRadioguy Blogs
    • USRadioguy VLOGS
  • Project Lab
    • Orbital Information and Visualizations
      • Enhanced Planet Earth
      • Satellites in Orbit
      • Solar System
      • Objects in Orbit
    • Current Station Weather
      • Current Groundstation Weather
      • Global Weather Data
      • Space Weather
    • WWII RADIO
      • WWII K-24 Aerial Camera
      • WWII RADIO
      • RADIO SET SCR-284
      • VS-3 VIBRATOR CONVERSION
      • VIBRATOR CONVERSION MODULE
      • BD-71 Field Switch Board and EE-8B Field Telephones
      • R-100/URR 1944 MORALE RADIO
      • A PORTABLE WWII ERA “MORALE RADIO”
      • AN/GRR-5 THE ANGRY 5
      • WWII Audio Page
    • Raspberry Pi Projects
      • ADS-B Reception
      • Allsky Camera
      • Pi Based Picture Frame
      • PI Based Broadcastify Server
      • Solar Power for PI
    • Hubble Space Telescope Data Processing
    • Zombie Satellites
    • DRONES
  • About Me
    • About Usradioguy
      • SETEC Astronomy
    • Tried and Tested Hardware
    • Rare Captures
    • My Other Interests
    • Presentations
    • Merchandise
    • Privacy Policy
  • Home
  • Custom Color Lookup Table

Custom Color Lookup Table

Creating a new CLUT
Updating Goestools Gradients

Custom Color Lookup Table for GOES-R Imagery

I’ve been developing a new Color Look-Up Table (CLUT or LUT) specifically designed for the GOES-R series satellite imagery. It’s important to remember, as I’ve noted on my main GOES page, that the GOES satellites don’t “see” color in the traditional Red, Green, Blue (RGB) sense. Unlike our eyes, there isn’t a dedicated ‘green’ channel in its data.

The Advanced Baseline Imager (ABI) on the GOES-R satellites captures data across 16 distinct spectral bands. To create a false-color image, bands 02 and 13 are typically utilized. To introduce a representation of the green wavelength, we can leverage the Near-Infrared band, often referred to as the “veggie” band. This nickname arises because healthy vegetation strongly reflects in this part of the spectrum, providing a useful signal to simulate green.

Software like goestools generates color imagery by mapping different portions of the visual and infrared spectrum to colors defined within a lookup table. The default CLUT used in goestools is a testament to the work of Harry Dove-Robinson from wx-star.com. His initial insights were invaluable, and without his pioneering work, I would likely still be in the early stages of creating my own version.

Building upon this foundation, I have also refined the GOES band 02 curve originally developed by wx-star, aiming for further improvements in the resulting color representation.

This took a lot of trial and error, but here is Version 2.8
On the left is the ‘stock” WX-Star LUT with 20% Saturation that comes by default with goestools.

On the right is my version of the CLUT to enhance landmass imagery. In order to enhance the landmass while also not making the clouds too white and losing cloud layer details took a bit of finessing. which is why portions here over northern South America look a bit grey-blue.

This new CLUT is an experiment, and I still need a “Winter” season to see if the tilt of the earth in relation to the sun will render the Northern Hemisphere too “blue”.

usradioguycustomlut.png

How to add my version of the CLUT to Goestools.

This is the way I have been doing this through the testing phase and this has worked for me

  1. Download the new CLUT from here: usradioguycustomlut.png
  2. SSH into your PI with PuTTY or whatever you use
  3. Copy and move the new CLUT with the same filename to your \home\pi\goes directory.
    Again I put it here during all the testing because I did not want to change file permissions or have it overwritten in a future goestools update.
  4. Navigate to your goestools folder:
cd /usr/share/goestools/

5. Open your goesproc-goesr.conf file with this command

sudo nano goesproc-goesr.conf

6. Edit the goesproc-goesr.conf and add the following to the top of the file:
NOTE: There are two scripts, you should add one or the other, depending on which satellite you are receiving. You could also add both if you wish, as I sometimes move my dish to point at GOES17.

FOR GOES 19 ONLY
# GOES-19 ABI false color CUSTOMLUT VERSION 2.8 and jpg.
[[handler]]
type = "image"
origin = "goes19"
regions = [ "fd" ]
channels = [ "ch02", "ch13" ]
directory = "./goes19/{region:short|lower}/CUSTOMLUT/{time:%Y-%m-%d}"
filename = "GOES19_{region:short}_FC_CUSTOMLUT_{time:%Y%m%dT%H%M%SZ}"
format = "jpg"
json = false

  [handler.remap.ch02]
  path = "/usr/share/goestools/wxstar/wxstar_goes16_ch02_curve.png"

  [handler.lut]
  path = "/home/pi/goes/usradioguycustomlut.png"

  [[handler.map]]
  path = "/usr/share/goestools/ne/ne_50m_admin_0_countries_lakes.json"

  [[handler.map]]
  path = "/usr/share/goestools/ne/ne_50m_admin_1_states_provinces_lakes.json"
FOR GOES 18 ONLY
# GOES-18  ABI false color CUSTOMLUT VERSION 2.8 and jpg.
[[handler]]
type = "image"
origin = "goes18"
regions = [ "fd", "m1", "m2" ]
channels = [ "ch02", "ch13" ]
directory = "./goes18/{region:short|lower}/CUSTOMLUT/{time:%Y-%m-%d}"
filename = "GOES18_{region:short}_FC_CUSTOMLUT_{time:%Y%m%dT%H%M%SZ}"
format = "jpg"
json = false

  # This reuses the GOES-16 contrast curve assuming it is identical
  [handler.remap.ch02]
  path = "/usr/share/goestools/wxstar/wxstar_goes16_ch02_curve.png"

  # This reuses the GOES-16 LUT assuming it is identical
  [handler.lut]
  path = "/home/pi/goes/usradioguycustomlut.png"

  [[handler.map]]
  path = "/usr/share/goestools/ne/ne_50m_admin_0_countries_lakes.json"

  [[handler.map]]
  path = "/usr/share/goestools/ne/ne_50m_admin_1_states_provinces_lakes.json"

7. After you have edited the file , Ctrl-X then Yes, then save as the original file name, goesproc-goesr.conf

8. Reboot your PI

sudo reboot

9. Restart your goestools recv and proc as you normally do

10. Wait for the next full disk image to come in.
You should see a new folder show up under your goes directory called
../goes/goes16/fd/CUSTOMLUT/
with new imagery named GOES16_FD_FC_CUSTOMLUT20200721T000026Z.jpg


You can also try my improved visible contrast curve to replace the wxstar_goes16_ch02_curve.png in the handler above, you can download that here: usradioguy_goes16_ch02_curve.png


Updating the Default Goestools Gradients to match current SSEC and CIRA outputs.

So I have been comparing my default goestools enhancements of ch13 and ch15, and realized, compared to SSEC (Space Science and Engineering Center at the University of Wisconsin) and CIRA (Cooperative Institute for Research in the Atmosphere at Colorado State University) that the default handler for the gradients were less than accurate and was based on an earlier version of McIDAS enhancements from the GOES 15 and earlier era. So, as an experiment, I rewrote the gradient handler for goestools for bands 13 and 15 enhancements.

Here are the results. The Full disks are labeled with the enhancement used, default goestools, CIRA enhancement, SSEC enhancement, and lastly my new enhancement. The second picture is the Full Disk with my new enhancement applied. This enhancement is derived as all IR enhancements, by units Kelvin, this enhanced version shows the strength of the storms and cloud temps quite well. This also has the added benefit of showing the colder cloud tops and more accurate temperature variation in clouds and storms. Landmass and ocean surfaces are also slightly enhanced.

The points in my revised gradient for channel 13 represent the different temperatures that can be detected by the sensor. The black point at 333 units represents the coldest temperature that can be detected, and the white point at 178 units represents the hottest temperature that can be detected. The other points in between represent the temperatures in between.

Comparison Of enhancements

I am working on a tropical version with a bit lower Kelvin limits to reflect the warmer cloud temps in Hurricanes, Typhoons, and tropical storms and will post that, as I develop it.

How to enable this new gradient in goestools.

To enable this gradient in goestools you can either do it one of two ways, run the new handler within its own separate process, or as I have done, make edits to the default goestools goesproc-goesr.conf.

FIRST- Make a backup copy of your goesproc-goesr.conf then-

In a terminal window type: (remember to modify the directory structure to match your own if needed)

sudo nano /usr/share/goestools/goesproc-goesr.conf

Then scroll down to the enhancements section for either GOES 16 or 17 (these will work for both). Look for this section

Longwave IR (Channels 13, 14, and 15)
[handler.gradient.ch13]
points = [
{ units = 333, color = "#000000" },
{ units = 238, color = "#b9b9b9" },
{ units = 237.999, color = "#00ffff" },
{ units = 228, color = "#000080" },
{ units = 218, color = "#00ff00" },
{ units = 208, color = "#ffff00" },
{ units = 198, color = "#ff0000" },
{ units = 188, color = "#000000" },
{ units = 178, color = "#ffffff" }
]

Replace the contents with this- EXACTLY

Longwave IR (Channels 13, 14, and 15 SSEC/CIRA)
[handler.gradient.ch13]
points = [
{ units = 333, color = "#000000" },
{ units = 273, color = "#b9b9b9" },
{ units = 263, color = "#EAEAEA" },
{ units = 253, color = "#00ffff" },
{ units = 238, color = "#0000FF" },
{ units = 237.999, color = "#000080" },
{ units = 235, color = "#003300" },
{ units = 230, color = "#008000" },
{ units = 222, color = "#ffff00" },
{ units = 208, color = "#FF0000" },
{ units = 198, color = "#FF7F7F" },
{ units = 193.15, color = "#800080" },
{ units = 188, color = "#000000" },
{ units = 178, color = "#ffffff" }
]

If you so desire you can also replace and modify the gradient for channel 15 using the same process with this change:

[handler.gradient.ch15]
points = [
{ units = 333, color = "#000000" },
{ units = 273, color = "#b9b9b9" },
{ units = 263, color = "#EAEAEA" },
{ units = 253, color = "#00ffff" },
{ units = 238, color = "#0000FF" },
{ units = 237.999, color = "#000080" },
{ units = 235, color = "#003300" },
{ units = 230, color = "#008000" },
{ units = 222, color = "#ffff00" },
{ units = 208, color = "#FF0000" },
{ units = 198, color = "#FF7F7F" },
{ units = 193.15, color = "#800080" },
{ units = 188, color = "#000000" },
{ units = 178, color = "#ffffff" }
]

Then CTRL-X , select Yes, then save as the original filename “goesproc-goesr.conf”

At the prompt, type

sudo reboot

Wait a few minutes and your new enhanced imagery will start to come in.

Full Color disk with new Gradient Applied

Hardware Humor Imagery Processing Interesting stuff you should know! Launch News Life News Product Review Satellites Science Software Space Weather Uncategorized VLOG

Satellite And Weather Related Feeds

  • CIMSS Satellite Blog
  • USRadioguy.com
  • wildfires
  • NASA Earth Observatory
  • SPC Particularly Dangerous Situation (PDS) Tornado/Severe Thunderstorm Watch
  • satellites
  • Satellites News -- ScienceDaily
  • Satellite Liaison Blog
Wildfire in Ontario produces a large pyrocumulonimbus cloud
Wildfire in Ontario produces a large pyrocumulonimbus cloud
American Samoa’s Wettest Year Gets Wetter
American Samoa’s Wettest Year Gets Wetter
Deadly flash flooding in Ruidoso, New Mexico
Deadly flash flooding in Ruidoso, New Mexico
Global cloud layers on your Devices
Global cloud layers on your Devices
End Of Life for NOAA 15 and 19?….not so fast…
End Of Life for NOAA 15 and 19?….not so fast…
Vitality GOES
Vitality GOES
The fire cycle
Unmasking the complicated chemistry of wildfire smoke: What's in it?
Unmasking the complicated chemistry of wildfire smoke: What's in it?
NOAA unveils powerful convergence of AI and science with revolutionary Next-Generation Fire System technology
NOAA unveils powerful convergence of AI and science with revolutionary Next-Generation Fire System technology
The Salty Lake of Gas Hure
The Salty Lake of Gas Hure
Greenland’s Bejeweled Ice Sheet
Greenland’s Bejeweled Ice Sheet
Manitoba Burning
Manitoba Burning
SPC PDS Severe Thunderstorm Watch 399
SPC PDS Severe Thunderstorm Watch 399
Five historically huge solar events
Five historically huge solar events
65 years since the world’s first weather satellite
65 years since the world’s first weather satellite
Investing in America: NOAA's Science, Service and Stewardship in Action
Earth’s weather satellites just spent 10 years watching Venus — here’s what they found
Record-breaking 10-billion-year radio halo just rewrote the universe’s origin story
Massive thread of hot gas found linking galaxies — and it’s 10 times the mass of the Milky Way
The Need for Speed: OCTANE Cloud-Top Winds at SPC
The Need for Speed: OCTANE Cloud-Top Winds at SPC
Summer Storms, Flooding Target Mid-Atlantic
Summer Storms, Flooding Target Mid-Atlantic
Southwest Thunderstorms – Late June 2025
Southwest Thunderstorms – Late June 2025
  • Facebook Geo Stationary Satellites
  • Usradioguy Facebook
  • Instagram
  • Reddit
  • Github
  • Linkedin

Copyright © 2025 USRadioguy.com - All Rights Reserved. All material protected by Fair Use Section 107 of the Copyright Act. This site is Verified and Secured with 256 bit SSL encryption