Usage¶
Through Satpy¶
The preferred way of using Pygac is through Satpy. Results are returned as dask-friendly xarray DataArrays with proper dataset/coordinate names and additional metadata. It is also possible to select a user-defined range of scanlines. Furthermore, Satpy provides many options for resampling, visualizing and saving the data.
import satpy
# Channel set for KLM satellites. For POD satellites the channels are
# ['1', '2', '3', '4', '5'].
channels = ['1', '2', '3a', '3b', '4', '5']
ancillary = ['solar_zenith_angle',
'sensor_zenith_angle',
'solar_azimuth_angle',
'sensor_azimuth_angle',
'sun_sensor_azimuth_difference_angle',
'qual_flags',
'latitude',
'longitude']
scene = satpy.Scene(filenames=['NSS.GHRR.NP.D15361.S0121.E0315.B3547172.SV'],
reader='avhrr_l1b_gaclac',
reader_kwargs={'tle_dir': '/path/to/tle/',
'tle_name': 'TLE_%(satname)s.txt'})
scene.load(channels + ancillary)
For a list of Satpy reader keyword arguments see satpy.readers.avhrr_l1b_gaclac
and for further Pygac reader keyword arguments see pygac.reader.Reader
.
Especially it is possible to choose a different version of calibration
coefficients or even specify your own.
Direct Usage¶
Alternatively you can also use Pygac directly.
from pygac import get_reader_class
filename = 'NSS.GHRR.NP.D15361.S0121.E0315.B3547172.SV'
reader_cls = get_reader_class(filename)
reader = reader_cls(tle_dir='/path/to/tle', tle_name='TLE_%(satname)s.txt')
reader.read(filename)
channels = reader.get_calibrated_channels()
lons, lats = reader.get_lonlat()
scanline_times = reader.get_times()
bad_quality_lines = reader.mask
Legacy CLI¶
Note
Usage of the legacy command line program pygac-run
is deprecated in
favour of the above options.
There is also a legacy command line program pygac-run
which saves the
results to HDF5 and requires a configuration file.
Copy the template file etc/pygac.cfg.template
to pygac.cfg
and place
it in a directory as you please. Set the environment variable PYGAC_CONFIG_FILE
pointing to the file. e.g.
PYGAC_CONFIG_FILE=/home/user/pygac.cfg; export PYGAC_CONFIG_FILE
Also adapt the configuration file to your needs. The tledir
parameter should
be set to where your Two Line Element (TLE) files are located.
Then call pygac-run
on a GAC/LAC file.
pygac-run testdata/NSS.GHRR.NL.D02187.S1904.E2058.B0921517.GC 0 0
The last two digits are the start and end scanline numbers, thus specifying the portion of the GAC orbit that user wants to process. The first scanline number starts at 0. If zeroes are specified at both locations, then the entire orbit will be processed.
The result will be three hdf5 files, one with the calibrated AVHRR data, the other with sun-satellite viewing geometry data and this third with scanline quality information.