Skip to content

heregoesradio/heregoes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

heregoes

Lightweight Python for GOES-R ABI and SUVI


License: GPL-3.0

Research quality GOES-R Earth and Sun imagery from netCDF

  • Purpose-built for realtime GOES-R processing at Here GOES Radiotelescope (Dove & Neilson, 2020)
  • ABI features tested against ground targets and official data and literature
  • SUVI imagery in production at UW–Madison SSEC and tested for QC
  • Accelerated and parallelized with the Numba JIT compiler

Features

Instrument Products Features
ABI L1b Render Cloud Moisture Imagery and "Natural" color RGB
ABI L1b, L2+ Lat/lon and Fixed Grid subsetting with parallax correction
ABI L1b, L2+ Pixelwise navigation, ground coverage, and look vectors
ABI L1b, L2+ Resample Numpy arrays to and from the projection of ABI scenes
SUVI L1b Extreme Ultraviolet solar imagery (long exposures)

Documentation

Demos

Planned

Future

  • Dask integration
  • Support for GeoXO

Quickstart

Install

Clone this repository and install the Conda environment. For Intel machines, use heregoes-env-intel.yml which includes MKL for acceleration. For other architectures like AMD or ARM64 (e.g. Raspberry Pi 5), use heregoes-env-other.yml which installs with OpenBLAS. Not yet tested on Apple Silicon.

conda env create -f release/heregoes-env-intel.yml
conda activate heregoes-env

Environmental variables

Set HEREGOES_ENV_PARALLEL=False to disable parallel execution, or set HEREGOES_ENV_NUM_CPUS=n to limit the CPUs used to n.

netCDF input

Provide GOES-R ABI or SUVI netCDF files to heregoes from NOAA CLASS, AWS S3, or in real time from CSPP Geo GRB.

ABI imagery from L1b radiance

from heregoes.image import ABIImage, ABINaturalRGB

#render single-channel image
img = ABIImage("OR_ABI-L1b-RadC-M6C13[...].nc")

#or natural color RGB
img = ABINaturalRGB("OR_ABI-L1b-RadF-M6C02[...].nc", "OR_ABI-L1b-RadF-M6C03[...].nc", "OR_ABI-L1b-RadF-M6C01[...].nc", gamma=0.75)

#save to a JPEG
img.save("fulldisk.jpg")

#or as a Cloud-Optimized GeoTIFF in the plate carrée projection
img.resample2cog(source="bv", filepath="fulldisk.tiff")

SUVI imagery

from heregoes.image import SUVIImage

img = SUVIImage("OR_SUVI-L1b-[...].nc")
img.save("suvi.png")