Adventures with geo2grid: Creating Stereoscopic Imagery in True Color

March 14th, 2019 |

GOES-17 True Color (left) and Himawari-8 True Color (right) at 0330 UTC on 13 March 2019 (Click to enlarge).

Geo2grid is a python-based software package that creates GeoTIFF imagery from native Himawari or GOES-16/GOES-17 imagery, as noted here. This blog post documents how to use the geo2grid software to create stereoscopic imagery, using either a Himawari-8/GOES-17 pairing, or a GOES-16/GOES-17 pairing. This requires first a remapping of the imagery to a fixed domain; when Geostationary Satellites aren’t separated by a great distance — for example when GOES-17 was in the test position and GOES-16 was at 75.2 — native projections can be used. That’s not the case with Satellites separated by 60 degrees of longitude.

Fortunately, geo2grid allows for a way to define a grid onto which the extracted data will be placed. The shell script command to create the map parameters is shown below:

$GEO2GRID_HOME/bin/p2g_grid_helper.sh G17H8Stereo -175.0 0.0 2000 -2000 1000 1000 > $GEO2GRID_HOME/mygrids.conf

I’m creating a map called ‘G17H8Stereo’ that is centered at 175 W and the Equator (Note: if you include a decimal point, you must include a digit afterwards. Some scripting languages fail to interpret ‘-175.’ correctly). The x-direction spacing is 2000 m (i.e., 2 km) and the y-direction spacing is also 2 km (that value is negative because point 1,1 is in the northwest corner). The grid size being created here is 1000×1000. If you were to look in the file created, mygrids.conf, you’d see a line looking like this:

G17H8Stereo, proj4, +proj=eqc +datum=WGS84 +ellps=WGS84 +lat_ts=0.00000 +lon_0=-175.00000 +units=m +no_defs, 1000, 1000, 2000.00000, -2000.00000, 176.01685deg, 8.98315deg

Note that the file name must have that “.conf” extension! The reading software expects it.

Data for both times (Full Disk imagery) has been downloaded and placed in directories.  This is HSD *.DAT files for Himawari-8 and netCDF Radiance files from CLASS for GOES-17.  This is a lot of data to move around.  The geo2grid invocation to create the True Color Imagery will look something like this for Himawari-8:

$GEO2GRID_HOME/bin/geo2grid.sh -r ahi_hsd -w geotiff –grid-configs $GEO2GRID_HOME/mygrids.conf -g G17H8Stereo –method nearest -f /data-ssd/CLASS/CSPPCheck/Stereo/H8/

The GOES-17 call will look like this:

$GEO2GRID_HOME/bin/geo2grid.sh -r abi_l1b -w geotiff –grid-configs $GEO2GRID_HOME/mygrids.conf -g G17H8Stereo –method nearest -f /data-ssd/CLASS/CSPPCheck/Stereo/

In both cases, –grid-configs is used to specify the grid to be used, with the -g tag naming the grid (the same name as used in the p2g_grid_helper.sh call above. The method of interpolation (the –method flag) is nearest neighbor, so a simple interpolation is used. Again, remember that those long dashes are really two short dashes.

Geo2grid does have built-in maps that you can use, and these are listed in the on-line documentation; you would include something like “-g lcc-aus” and that would put the data on a lambert conformal grid centered over Australia (not a useful grid for GOES-17, but very nice for Himawari-8 and for the coming GEOKOMPSAT-2!)

True Color imagery is created by these geo2grid.sh calls — and imagery for all 16 bands is created as well. (You can use the -c flag in geo2grid.sh to limit what is created if you wish). That imagery is shown above. If you cross your eyes and focus on the image that appears in the middle, it will be in three dimensions. Because this region is in the middle of the ocean, geo-location might be important, and the geo2grid script add_coastlines.sh is useful to add latitude/longitude lines.


How will True Color appear in regions with land features as might occur with GOES-16 and GOES-17?  Halfway between GOES-16 (75.2) and GOES-17 (137.2) is 106 degrees W Longitude.  I’ll create a map centered at 35 N, 106 W (near Albuquerque) that is 1200×1200 (also 2 km resolution):

$GEO2GRID_HOME/bin/p2g_grid_helper.sh G16G17Stereo -106.0 35.0 2000 -2000 1200 1200

The output is placed in the same Mygrids.conf file (More than one map definition can appear in that csv file). AFter downloading the GOES16/GOES17 data, I invoked to geo2grid commands:

$GEO2GRID_HOME/bin/geo2grid.sh -r abi_l1b -w geotiff –grid-configs $GEO2GRID_HOME/mygrids.conf -g G16G17Stereo –method nearest -f /data-ssd/CLASS/CSPPCheck/Stereo/G16G17/G17/

$GEO2GRID_HOME/bin/geo2grid.sh -r abi_l1b -w geotiff –grid-configs $GEO2GRID_HOME/mygrids.conf -g G16G17Stereo –method nearest -f /data-ssd/CLASS/CSPPCheck/Stereo/G16G17/G16/

Use ImageMagick to put the images side-by-side

montage GOES-16_ABI_RadF_true_color_20190313_210036_G16G17Stereo.tif GOES-17_ABI_RadF_true_color_20190313_210038_G16G17Stereo.tif -tile 2×1 -geometry +0+0 GOES-16_GOES-17_ABI_RadF_true_color_20190313_210036_G16G17Stereo.png

The beautiful stereoscopic image below is created.

True-Color imagery from GOES-16 (Left) and GOES-17 (Right) over the western United States at 2100 UTC on 13 March 2019 (Click to enlarge)

The mp4 animation below (click here for an animated gif) shows GOES-16 True Color imagery every 15 minutes (GOES-16 was in Mode 3 operations with 15-minute full-disks) from 1500 UTC to 2245 UTC. Imagery was created using geo2grid. The true-color imagery captures the dust that was kicked up by strong winds over Texas and New Mexico.

GOES-16 True Color animation, 1500-2245 UTC on 13 March 2019 (Click to play mp4 animation)

A similar animation made from GOES-17 from geo2grid is below. (Click here for an animated gif).

GOES-17 True Color animation, 1500-2245 UTC on 13 March 2019 (Click to play mp4 animation)

The GOES-16 and GOES-17 animations are combined into a true-color stereoscopic view of the strong cyclone below. The mp4 is below; click here for an animated gif.

True-Color imagery from GOES-16 (Left) and GOES-17 (Right) over the western United States from 1500-2245 UTC on 13 March 2019 (Click to play mp4 animation)

Leave a Reply