Skip to content

Navigation error in GAC and LAC data

Martin Raspaud edited this page Mar 20, 2023 · 7 revisions

The GAC and LAC data that PyGAC is handling is sometimes inaccurate in navigation. What this means is that the longitude and latitude coordinates provided for each pixels in the GAC and LAC files can be off by several kilometers in the worst case. This has been seen mostly on the older POD satellite series.

There are a couple of possible reasons for these errors, explained below.

Clock error

Origin of the error and consequences

On the POD series of satellites, the clock onboard the satellite was known to be drifting and become out of sync with actual time, leading in wrong times for each scanline transmitted to earth. Indeed, the timestamp of the line, in combination with the orbital parameters of the satellite, is used on ground to generate the longitude and latitude coordinates for each pixel (among other things). In turn, this leads to an offset of the data in the along-track direction.

Example of part of a pass with effect of the clock error:

image

Remedies for the error in PyGAC

In order to help remedy this problem, PyGAC is using estimates of the clock error (https://github.com/pytroll/pygac/blob/main/pygac/clock_offsets_converter.py#L27-L245) in time to adjust the longitude and latitude of each pixel back to its intended position.

The clock error values are just available at some times, so we interpolate linearly the clock error between these key times to have an estimate of the clock error at all times.

To remove the navigation offset, we assume first that the navigation on pass is correct relative to the timestamp, i.e. that if the timestamp had been correct on the satellite clock, then the longitude and latitude would have matched the position of the pixel. With this assumption, we can now use the longitudes and latitudes in the pass and interpolate them (using SLERP https://en.wikipedia.org/wiki/Slerp) based on the corrected timestamp. For the start and end of the swath, when it is not possible to interpolate because the corrected timestamps are outside the range of timestamps in the pass, we use the TLE orbital elements of the swath and pass it on to Pyorbital to compute the longitude and latitude pixels of the swath.

Here is the same example as above corrected for the clock error:

image

Origin of the clock error estimates

The clock error estimates where gathered from bits and pieces available for different sources.

Attitude error

Another source of error for the data is the attitude error of the satellite, that is the offset angles (roll, pitch and yaw, RPY) with which the satellite instrument is pointing to nadir. Sometimes, the RPY values are provided (non-zero) in the GAC, LAC or FRAC files, in which case PyGAC will use them to recompute the positions of the longitudes and latitudes of the pixels using Pyorbital.