Displaying NUCAPS values at one horizontal level using Polar2Grid

October 8th, 2019 |

Temperature at 707 hPa at 0621 UTC on 20 September 2019, from NUCAPS profiles (Click to enlarge)


NOAA-Unique Combined Atmospheric Processing System (NUCAPS) vertical profiles provide useful information derived from data from CrIS and ATMS instruments on board both Suomi-NPP and NOAA-20.  Infrared Sounder information from CrIS gives profiles in clear/partly cloud regions, and ATMS supplies information in regions that are uniformly cloudy.  (Click here for more information on NUCAPS profiles in AWIPS (profiles are also available here) ;  there are also CIMSS Blog entries on NUCAPS vertical profiles at this link, and at this link from the Hazardous Weather Testbed).

Polar2Grid is a Python-based data reader/converter designed as part of the Community Satellite Processing Package (CSPP) for Direct Broadcast data (such as found at this site);  it also works with data downloaded from NOAA CLASS.

NUCAPS vertical profiles can be used to create horizontal fields using data from pressure levels at each sounding location — each sounding generates values at the same levels that are present in the radiative transfer model used in retrieval that creates data (including levels at 852.78, 706.57, 496.6, 300 mb).  Polar2Grid can read these levels, but will not interpolate in the vertical (separate processing could be created for that).

The data that is downloaded (you might have to untar the data) from NOAA CLASS (choose “JPSS Sounder Products (JPSS_SND)” in the drop-down menu) will include file names that look something like this:


The file above refers to an Environmental Data Record (EDR) from Suomi NPP (npp is in the filename;  if these data were from NOAA-20, ‘j01’ would be there instead);  the files contains data from 20 September 2019, starting at 0622 and ending at 0623 UTC.  You might also see files with v1r0 — this flag distinguishes between NUCAPS 3 (v1r0) and NUCAPS 4.3 (v2r0).  Polar2Grid will read both.

After ordering and downloading the data from NOAA CLASS, and downloading and installing the Polar2Grid data, use polar2grid to create a field (in this case, using multiple EDRs between 0620 and 0650 UTC that have been downloaded into the /data-hdd/NUCAPSFromCLASS/ directory:

$POLAR2GRID_home/bin/polar2grid.sh nucaps gtiff -p Temperature_707mb –grid-coverage 0 -vvv -f /data-hdd/NUCAPSFromCLASS/NUCAPS-EDR_v2r0_npp_s2019092006*.nc –rescale-configs Temperature.ini –distance-upper-bound 200

$POLAR2GRID_home has been defined using the unix export function, and it tells the package into which directory Polar2Grid was installed.  ‘nucaps gtiff’ tells the software that it will be reading nucaps data and outputting a geotiff file.  The ‘-p’ flag controls which product is being created, in this case Temperature at 707 mb — the integer value closest to the 706.57 mb level in the Radiative Transfer Model (the valid pressure values can be determined by inspecting the netCDF file and finding “Pressure” values).  (Other variables that can be displayed are listed at this website). The ‘-f’ flag directs the software to the directory holding the downloaded data; –distance-upper-bound 200 controls how far a data point extends its influence.  By default Polar2Grid will automatically rescale fields based on the data’s maximum/minimum.  To control this, create a file such as Temperature.ini, and include –rescale-configs flag.  The Temperature.ini file used  is below:


The output of the polar2grid invocation above will be a geotiff file: npp_nucaps_Temperature_707mb_20190920_062135_wgs84_fit.tif ;  note that the time/day are contained within the filename, as well as the satellite, parameter and level.

Colormaps can be applied to the geotiffs with the add_colormaps.sh script:

$POLAR2GRID_home/bin/add_colormap.sh $POLAR2GRID_home/colormaps/T200_320.cmap npp_nucaps_Temperature_707mb_20190920_062135_wgs84_fit.tif

This will overwrite the greyscale tif file with a color-enhanced image controlled by the specified color map.  In this case, I created a colormap that spans from 200 to 320 K, the wide range of data allowed in the Temperature.ini file.  That cmap is shown below.

# This is a cmap for temperatures from 200 to 320 K
# 75,0,130 is deep indigo — at the cold end
# 85 is at about 240 K — 1/3rd of the way from 200-320, 1/3rd of the way from 0-255
# 0,5,75 is a deep blue
# 129 is half-ish way from 1-255, so 260 K
# 0,200,200 is darkish cyan
# 140 is at about 265, 0, 150, 0 is a darkish green
# 155 is about 273, 255, 255, 0 is yellow
# 166 is about 278, 5K, 255,15,15 is red
# 176 is about 283 K, 255,182,193 is pink
# 186 is about 288 K, white
# 255 is at 320 K — slide from white at 288 K to grey at 320 K

Finally, apply a map to the tif file using the ‘add_coastlines.sh’ script.  I usually move the color-enhanced tif file into the $POLAR2GRID_home/bin directory to do this, and for this case executed this command:

$POLAR2GRID_home/bin/add_coastlines.sh npp_nucaps_Temperature_707mb_20190920_062135_wgs84_fit.tif –coastlines-resolution=f –coastlines-level=6 –coastlines-outline=’magenta’ –add-coastlines –add-grid –add-borders –borders-level 1 –borders-resolution h

This will create a .png file.  I’ve done this with two 707-mb temperature fields, with different –distance-upper-bound values:  200, and 100, as indicated.  They are toggling together at the top of this blog post.

Polar2Grid v 2.3 (coming soon!) will allow the inclusion of a colorbar in the imagery.  Polar2Grid documentation can be found here.


Using NUCAPS to nowcast convective development

August 27th, 2019 |

GOES-16 Visible Imagery (0.64 µm) at 1721 UTC on 27 August 2019. A swath of NOAA-20 NUCAPS soundings from 1718 UTC is also shown, and individual profiles from the Upper Peninsula of Michigan southeastward to southwest Lower Michigan are plotted. (Click to enlarge)

The animation above shows the 1721 UTC GOES-16 Visible (0.64 µm) image along with NUCAPS profile locations from a NOAA-20 overpass. Convection is approaching from the west, from central Wisconsin. NUCAPS soundings can give a good estimate for how far south that convective line might develop, and a north-south series of profiles is shown in the imagery above.  Note in particular how soundings show increasing mid-level stability;  a strong inversion between becomes apparent between the NUCAPS Sounding just south of Door County on the western short of Lake Michigan and over eastern Lake Michigan on the Michigan shoreline.  This thermodynamic snapshot would argue that convection should not develop much farther south than central Lake Michigan!  the 1926 UTC Visible image, below, toggled with radar, confirms this forecast.

GOES-16 Visible Imagery (0.64 µm) at 1926 UTC on 27 August 2019 — toggled with Base Reflectivity at 1924 UTC (Click to enlarge)


NUCAPS from one satellite will periodically, north of about 40 N, supply profiles on two consecutive passes.  That happened on 27 August over Lake Michigan as might be expected given that the 1718 UTC pass had its westernmost swath over Lake Michigan.  The animation below shows the swath from 1901 UTC.  The strengthening inversion as you move south over Lake Michigan is apparent at 1901 UTC as well.

GOES-16 Visible Imagery (0.64 µm) at 1906 UTC on 27 August 2019. A swath of NOAA-20 NUCAPS soundings from 1901 UTC is also shown, and individual profiles over Lake Michigan Michigan are plotted. (Click to enlarge)

Using NUCAPS soundings to nowcast convective evolution

August 15th, 2019 |

GOES-16 Visible (Band 2, 0.64 µm) Imagery, 1721 – 1946 UTC on 15 August 2019. NUCAPS Sounding Points — from 1926 UTC — are present over the image at 1946 UTC (Click to animate)

GOES-16 Visible Imagery, above (Click to animate), shows shower/thundershower development over eastern Oklahoma moving into Arkansas. At the end of the animation, 1946 UTC, NUCAPS Sounding profiles from 1926 UTC are shown, and they’re shown below too.

GOES-16 Visible (Band 2, 0.64 µm) Imagery, 1946 UTC on 15 August 2019. (Click to enlarge)

The time 1946 UTC is about the earliest you could hope to have NUCAPS profiles in an AWIPS system — and only if you had access to a Direct Broadcast antenna. The more conventional method of data delivery, the SBN, means NUCAPS will be available about an hour after they are taken, so by 2036 UTC. The visible imagery at 2036 UTC is shown below.

GOES-16 Visible (Band 2, 0.64 µm) Imagery, 1946 UTC on 15 August 2019. (Click to enlarge)

At 2036 UTC, which time is about when in the forecast office the NUCAPS soundings would become available, would you expect the convection in western Arkansas to move southward, or eastward, based solely on Satellite imagery? How could you use NUCAPS profiles to gain confidence in this prediction? Visible imagery alone suggests a moisture boundary; the southern quarter of Arkansas shows markedly less cumulus cloudiness. The animation shows motion mostly to the east, with higher clouds moving more west-northwesterly. The GOES-16 Baseline Total Precipitable Water product, below, shows a maximum in TPW over central Arkansas, with values around 1.5″;  values are around 1.3″ in southern Arkansas, and around 1.2-1.3″ in northwest Arkansas.  A corridor of moisture is indicated.

GOES-16 Baseline Level 2 Total Precipitable Water at 1946 UTC; Visible imagery is shown in cloudy regions. (Click to enlarge)

Baseline Total Precipitable Water, above, part of a suite of products that emerge from Legacy Profiles, is heavily constrained by model fields, however;  the image above could simply show the GFS solution.  In contrast, NUCAPS observations are almost wholly independent of models.  What do NUCAPS profiles show? The animation below steps through vertical profiles east and south of the developing convection.

NUCAPS profiles from the ~1900 UTC overpass at points plotted over the 1946 UTC GOES-16 Band 2 Visible (0.64 µm) image (Click to enlarge)

AWIPS will soon (planned for shortly after Labor Day at the time of this post) include horizontal fields of information derived from NUCAPS vertical profiles. The images below show values computed within the NSharp AWIPS software for a variety of fields: Total Precipitable Water, MU Lifted Index, MU CAPE, MU CINH. All fields suggest that convection more likely to build eastward than to expand southward.

NUCAPS Sounding Points and derived quantities, as indicated, at 1926 UTC 15 August 2019; NUCAPS data are plotted over the 1946 UTC GOES-16 ABI Band 2 Visible 0.64 µm image. (Click to enlarge)

Convection did not move southward; motion and development was to the east. The timing of NUCAPS profiles means that they give a good estimate of atmospheric thermodynamics in mid-afternoon, a key time for assessing convective development.

GOES-16 Visible (Band 2, 0.64 µm) Imagery, 1721 UTC on 15 August 2019 to 0001 UTC on 16 August 2019 (Click to animate).

Use Polar2Grid to create VIIRS True Color imagery over one State (Missouri)

April 11th, 2019 |

VIIRS True-Color Imagery over Missouri, 1942 UTC on 9 April 2019 (Click to enlarge)

Polar2Grid allows users to create true-color imagery from VIIRS (Visible Infrared Imaging Radiometer Suite) data from Suomi-NPP or NOAA-20. This tutorial will take you through the needed steps. Step one is to decide when you want the data; the ways to determine when a Polar Orbiter overflies a particular point are outlined in this blog post, that points to this website. For this blog post I’ve chosen Missouri. The image above shows a True-Color image over Missouri at about 19:42 UTC on 9 April 2019.

To create true-color imagery, Polar2Grid requires VIIRS M-Bands 3, 4 and 5 (Blue (0.48 µm), Green (0.55 µm) and Red (0.67 µm), respectively, all with 750-m resolution); click here for a list of all VIIRS bands). If the VIIRS I-Band 1 (at 0.64 µm) is present in the directory, then that image is used to sharpen the resultant image. Polar2Grid CREFL software also performs a simple atmospheric Rayleigh scattering removal; smoke and haze will still be apparent in the imagery, however.

To create the imagery above, first order the data from NOAA Class. (Steps to follow are shown here). Download the data into a unique directory. We are going to remap these data onto a map centered on Missouri, and for that to happen, Polar2Grid needs mapping parameters. These can be generated automatically with the p2_grid_helper.sh script that comes with Polar2Grid software. From the bin directory, I entered this command to put the grid parameters in a file .

/p2g_grid_helper.sh missouri -93.0 38.0 500 -500 2000 2000 > my_grids.txt

The line of data entered into that file is this:

missouri, proj4, +proj=lcc +datum=WGS84 +ellps=WGS84 +lat_0=38.000 +lat_1=38.000 +lon_0=-93.000 +units=m +no_defs, 2000, 2000, 500.000, -500.000, -99.055deg, 42.352deg

Now I’m ready to generate a true-color image (corrected ceflectance — crefl — imagery) with Polar2Grid, using this command:

./polar2grid.sh crefl gtiff –grid-configs /home/scottl/Polar2Grid/polar2grid_v_2_2_1/bin/my_grids.txt -g missouri -f /data-hdd/storage/Polar2GridData/09April/

The flags “–grid-configs <path to directory where file created by p2g_grid_help sits” and “-g map <name of map inside that file>” instruct to the Polar2Grid software to pull the mapping data for the defined grid out of the file. Otherwise, the data are in satellite projection. This polar2grid.sh invokation created a file named ‘j01_viirs_true_color_20190409_194226_missouri.tif’; I want to put a map on it so it is easier to georeference, and that is done using this shell in the Polar2Grid bin directory:

./add_coastlines.sh –add-borders –borders-resolution=f –borders-level=2 –borders-outline=’black’ j01_viirs_true_color_20190409_194226_missouri.tif

This adds a map to the image, then converts it to the png file (j01_viirs_true_color_20190409_194226_missouri.png) that is shown above.

After doing the same steps for a series of clear days in the midwest (09 March 2019, 15 March 2019, 21 March 2019, 26 March 2019, 31 March 2019), and annotating and concatenating the images in an animation, the greening up of Spring is apparent. See below.

NOAA-20 VIIRS True Color Imagery on select mostly clear days over the mid-Mississippi Valley, dates and times as indicated in the image (Click to enlarge)

Special shout-out to Dave Hoese, SSEC/CIMSS, for crafting software that is so easy to use to produce excellent satellite imagery.