Thanks Fredy, that clarification helps a lot.
Looking at this from the satellite-operations side, I would avoid treating the exported SatNOGS timestamp as the spacecraft event time.
I would rather see it as reception metadata: “this is when this ground station reported receiving/decoding this frame”, with all the caveats that come with station configuration, client version, time sync, upload path, and so on.
For an operations dataset I would try to keep a few things separate:
- the timestamp inside the beacon, if the spacecraft provides one
- the spacecraft frame counter / sequence counter, if available
- the onboard time-sync state
- the SatNOGS observation id
- the station id
- the SatNOGS reception timestamp
Then the ordering rule becomes a conscious choice instead of an implicit assumption.
For example, if a frame counter is available, I would probably trust that first for ordering frames from the spacecraft. If the beacon has an onboard timestamp, I would only trust it as event time if the packet also gives enough confidence that the onboard clock was actually valid at that moment.
The SatNOGS timestamp is still very useful, but I would use it mainly as ground-side evidence: which station saw the frame, during which observation, and at what reported reception time.
That also makes strange cases easier to debug. If frames look duplicated or out of order, I would first check whether the effect is station-specific, whether it matches a local-time/UTC offset, whether it only happens for certain observations, and whether the spacecraft counter still behaves monotonically.
The UTC/local-time issue you linked is a good example of why this matters. The RF reception may be perfectly good, while the metadata around the received frame can still affect how the mission team interprets the data later.
So, practically, I would not collapse everything into one “timestamp” field in the FrontierSat processing pipeline. I would preserve the reception context around each frame and only derive a mission-level event time after applying explicit rules.