Using Polar2Grid and NOAA CLASS VIIRS data to create imagery

April 1st, 2022 |
NOAA-20 I05 (11.45 µm) imagery over the Arctic Ocean, 1455-1510 UTC on 1 February 2022 (Click to — greatly!! — enlarge)

Previous blog posts (example) have documented how to create imagery from the VIIRS instrument, and this one is another example. For example, if you receive a request for VIIRS imagery such as this one: “If you have time to try a case, you could pick Feb 1, 2022 near North Pole Point for 11 um channel” — how do you proceed? A first step is to determine the day/time of the data, and that’s achieved by looking at orbits over the Arctic, at this website. That website also has an archive, and the archive for Arctic passes on 1 February 2022 is here. The image shows NOAA-20 passing over Greenland, the Arctic Ocean, and then moving over eastern Russia between 1455 and 1510 UTC on 1 February 2022. Now you know the times to request.

NOAA CLASS is the data repository that stores VIIRS imagery from NOAA-20 and Suomi-NPP. Go to the website, an log in (register if you have not already), and choose JPSS VIIRS SDRs (Operational Sensor Data Records) as shown below. Choosing those data and clicking >>GO to the right of the drop-down menu bar will move you to a new data-selection menu, where you will select the day/time of the data (1 February 2022, 14:55 Start time, 15:10 end time), and the band (I chose SVI05 — the 11.45 µm Imager channel, with 375-m resolution, that is: VIIRS Imagery Band 05 SDR (SVI05) (public 02/07/2012) ), and the satellite (NOAA-20). Geolocation data must also be selected, and Polar2Grid will expect the GITCO files. Choose them ( VIIRS Image Bands SDR Ellipsoid Terrain Corrected Geolocation (GITCO) (public 02/07/2012)) as well. It is very important, however, that your User Preferences are configured so that the data are disaggregated! Click on User Preferences, and make that selection. The User Preferences page should include information as shown here.

NOAA CLASS front page showing the VIIRS data to select (Click to enlarge)

The steps above will produce 12 matches — 6 files of SVI05 and 6 GITCO files. Submit your order and wait for the email notification that the files are ready. While you are waiting, if you’ve not done so already, download the Polar2Grid software from CIMSS CSPP Site (CSPP: Community Satellite Processing Package; note that a free registration might be required). Expand the downloaded (compressed tar) file into an empty directory, and enter this unix command: export POLAR2GRID_HOME=/directory/where/the/expanded/file/sits.

NOAA CLASS will send an email once the data are staged and ready for you. Download those data, and then enter this command:

sh ./ viirs_sdr gtiff -p i05 -g polar_canada -f /directory/holding/downloaded/SVI05Data/SVI05* /directory/holding/downloaded/GITCOdata/GITCO*

That code takes the viirs_sdr and GITCO data pointed to by the -f flag and creates a geotiff of i05 (11.45) imagery. Because these data are near the Pole, I’ve specified a grid (‘-g polar_canada’) to be used (a full list of pre-defined grids is here, part of the Polar2Grid online documentation). The command will stitch together the data in the 6 different files, and you’ll see an image at full resolution, as shown above. I also used software to add coastlines and lat/lon (‘grid’) lines.

sh ./ --add-grid --grid-D 10 10 --grid-d 10 10 --add-coastlines noaa20_viirs_i05_20220201_145336_polar_canada.tif

The coming geo2grid update will include level 2 product support

March 21st, 2022 |
Cloud-top Height, 1510 UTC on 21 March 2022 (click to enlarge)

As noted here, an updated version of geo2grid is being prepared at CIMSS. As part of that upgrade, support for some level 2 products will be included. For example, the image above — of cloud-top height — was created using the following set of geo2grid (a beta version that this blogger is testing) calls.

./ -r abi_l2_nc -w geotiff -p HT -g L2Fields --grid-configs $GEO2GRID_HOME/L2Fields.yaml --method nearest --radius-of-influence 40000 -f /arcdata/goes_restricted/grb/goes16/2022/2022_03_21_080/abi/L2/ACHAC/*s20220801501*.nc
../ --add-coastlines --coastlines-resolution h --coastlines-level=5 --coastlines-outline='blue' --add-grid --grid-text-size 0 --grid-D 5.0 5.0 --grid-d 5.0 5.0 --add-colorbar --colorbar-align right --colorbar-text-size 8 --colorbar-vertical --colorbar-no-ticks --add-borders GOES-16_ABI_HT_20220321_150116_L2Fields.tif
convert GOES-16_ABI_HT_20220321_150116_L2Fields.png -gravity Southwest -fill black -pointsize 16 -annotate +12+36 "GOES-16 Cloud Top Height 1501 UTC 21 March 2022" GOES-16_ABI_HT_20220321_150116_L2Fields1.png
convert GOES-16_ABI_HT_20220321_150116_L2Fields1.png ~scottl/smalllogo.png -gravity northwest -geometry +12+8 -composite GOES-16_ABI_HT_20220321_150116_L2Fields2.png

How does the image above compare to Level 2 product fields that can be found elsewhere? This website contains a link to a RealEarth instance that includes mappings of Full-Disk Cloud Mask, Cloud Top Pressure, Cloud top Phase, and Cloud Optical Depth. A portion of the Full-Disk Cloud Top Pressure is shown below (from 1500 UTC). Similar features are apparent in fields above and below.

GOES-16 Cloud Top Pressure, 1500 UTC on 21 March 2022 (click to enlarge)

Level 2 Products associated with Cloud-top properties are also available at the CIRA slider, including Cloud-top Height, shown below from 1501 UTC. Other GOES-R Level 2 products available there include Cloud Optical Depth, Cloud Mask, Cloud Phase and Cloud Effective Particle Size.

GOES-16 Cloud-top Height, 1501 UTC on 21 March 2022 (click to enlarge)

Coming Soon: a Geo2Grid update!

March 11th, 2022 |
Himawari-8 airmass RGB, 0000 UTC 24 February – 0000 UTC 28 February 2022

CIMSS scientists have been working on an update (and improvement) on Geo2Grid software (v 1.1) that can be expected within a couple months. (Beta-testing is ongoing at CIMSS) The animation above shows the Airmass RGB from Himawari-8 (data courtesy JMA) and the Fujiwhara interaction (also discussed on the CIMSS blog here) between southern Indian Ocean tropical cyclone Vernon and invest area 93S. The animation stretches from 0000 UTC on 24 March to 0000 UTC on 28 March.

Because the animation includes data near the limb, the remapping was changed from the default. That is, the geo2grid invocation includes the following specification:

-g Fujiwhara --grid-configs $GEO2GRID_HOME/Fujiwhara.yaml --method nearest --radius-of-influence 40000

Remapping is done using a nearest-neighbor approach (the default in geo2grid when a non-native projection is used), and points within 40 km (40000 m) are considered. Note also that the full-disk AHI imagery is reprojected onto a grid named ‘Fujiwhara’; the components required by geo2grid are within the file Fujiwhara.yaml (as created by a call to the script):

./ Fujiwhara 88.0 -12.0 2000 2000 1080 640 > $GEO2GRID_HOME/Fujiwhara.yaml 

What was the series of unix-based commands that produced the imagery above? Those are outlined below in a shell script. This uses the beta version of geo2grid v1.1; similar commands will work in v1.0. Before this shell script can be invoked, the compressed package must be expanded, creating a directory with many sub-directories, such as /bin, /share, /colormaps, /etc, and so on. This directory is the GEOGRID_HOME directory, and you can specify it, as shown below.

cd /directory/where/geo2gridpkg/sits/
cd bin
# The command below will create a grid (named 'Fujiwhara') 
#   centered at 88 E, 12 S (geo2grid assumes east/north positive)
# The grid has 2 km resolution in the x- and y- directions, and
#   its size is 1080x640 (so it's wider than it is high)
# Place the multi-line output from in the file
#   named $GEO2GRID_HOME/Fujiwhara.yaml
../ Fujiwhara 88.0 -12.0 2000 2000 1080 640   > $GEO2GRID_HOME/Fujiwhara.yaml
# Now, call geo2grid, reading (the -r flag) AHI HSD format files
#   Write out (the -w flag) geotiff files of (the -p flag) the product
#   airmass RGB.  Regrid (the -g flag) the data to the 'Fujiwhara' 
#   grid defined above, and tell geo2grid where the grid definitions sit
#   (the --grid-configs filename flag).  Regridding uses nearest-
#   neighbor (--method nearest) and it looks within 40000 m of each grid
#   point (--radius-of-influence 40000)  (Note that geo2grid v1.0 did
#   not include --radius-of-influence!)
../ -r ahi_hsd -w geotiff -p airmass  -g Fujiwhara --grid-configs $GEO2GRID_HOME/Fujiwhara.yaml --method nearest --radius-of-influence 40000 -f /directory/holding/Himawari-8/HSDFILES/for/ONE/time/only/*FLDK*.DAT
#  The command above will create a geotiff file with a name like this:
#  HIMAWARI-8_AHI_airmass_20220223_0000??_Fujiwhara.tif
#  The command below adds coastlines (in blue) and lat/lon line 
#  (--add-grid) colored in the default (cyan).  The output is a 
#  .png
../ --add-coastlines --coastlines-resolution h --coastlines-level=5 --coastlines-outline='blue' --add-grid --grid-text-size 8 --grid-D 5.0 5.0 --grid-d 5.0 5.0    HIMAWARI-8_AHI_airmass_20220223_0000??_Fujiwhara.tif
#  I use ImageMagick commands to annotate the imagery, as shown below
convert HIMAWARI-8_AHI_airmass_20220223_0000??_Fujiwhara.png   -gravity Southwest -fill yellow -pointsize 16 -annotate +12+16 "HIMAWARI-8 AHI airmass RGB 0000 UTC 23 February 2022"  HIMAWARI-8_AHI_airmass_20220223_0000_Fujiwhara.png
#  Gotta add a logo too!
convert HIMAWARI-8_AHI_airmass_20220223_0000_Fujiwhara.png ~scottl/smalllogo.png   -gravity northwest -geometry +12+8 -composite HIMAWARI-8_AHI_airmass_20220223_0000_FujiwharaL.png

How does a change in –radius-of-influence affect the created image? If you’re near the limb, and the radius of influence is too small, data gaps can appear. The image below compares an image with radius of influence of 2km (the native resolution at the sub-satellite point for infrared imagery) with an image with a radius of influence of 40 km.

A Full-disk image at this time is here so you can judge how close to the edge this event it.

Himawari-8 airmass RGB at 0000 UTC on 25 February 2022 created with regridding using a radius of influence of 2 km (left) vs. 40 km (right) (Click to enlarge)

A non-satellite of the Fujiwhara interaction is shown below.