Python script that can be used to generate latitude/longitude coordinates for GOES-16 full-disk extent ? ?️

The grid files can be accessed in this repository from the data directory.


Clone the repository:

git clone https://github.com/uba/goes-latlon.git

Go to the source code folder:

cd goes-latlon


pip3 install -r requirements.txt


python generate-all.py

The script will generate latitude/longitude values for GOES-16 full-disk extent and save result to the data directory.

The result is a set of netCDF files for each spatial resolution (1.0, 2.0, 4.0 and 10 kilometers).

Basically, each file contains grids for latitude and longitude that is the same size as the data array in the GOES netCDF file (e.g. CMI array). netCDF file is encoded using int16 datatype, scale_factor and add_offset attributes.

  • data/goes16-full-disk-lat-lon-1.0km.nc
  • data/goes16-full-disk-lat-lon-2.0km.nc
  • data/goes16-full-disk-lat-lon-4.0km.nc
  • data/goes16-full-disk-lat-lon-10.0km.nc

Read Example

from netCDF4 import Dataset

# Define path to [lat,lon] grid file
path = './data/goes16-full-disk-lat-lon-2.0km.nc'

# Open using netCDF4 package
nc = Dataset(path)

# Get values
lat_values = nc.variables['lat'][:]
lon_values = nc.variables['lon'][:]


Data Preview

Latitudes – 2km (5424 x 5424) Longitudes – 2km (5424 x 5424)

Note: Currently GOES-16 satellite is positioned at longitude -75.0, latitude 0.0.


GOES-R SERIES PRODUCT DEFINITION AND USERS’ GUIDE (PUG) | https://www.goes-r.gov/products/docs/PUG-L2+-vol5.pdf – Session Navigating from N/S Elevation Angle (y) and E/W Scanning Angle (x) to Geodetic Latitude (φ) and Longitude (λ)

Joshua Hrisko – GOES-R Satellite Latitude and Longitude Grid Projection Algorithm.

Geostationary Satellite View – https://proj.org/operations/projections/geos.html


View Github