NASA-AMMOS / NASA-AMMOS/AIT-Core
Spacecraft time system support for AIT Core <Cubesat issue>
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 56
- Forks
- 35
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 3
Description
Different instruments have different time systems on satellites. Commonly:
GPS (1980 epoch) - happens on a lot of NAV systems that use GPS.
UTC (1970 epoch) - default unix timestamp; on better systems this will only increment up from the original boot time at launch.
J2000 (2000 epoch)
Custom (Boot time epoch) - again default unix timestamp, but resets on each reboot. May not need to handle this as it's somewhat spacecraft dependent.
Typically as a small spacecraft's data is processed, each channel in each packet will have the following time types associated:
SCLK: The raw CCSDS timestamp
ERT: The time of processing
SCET: The approximate time (in UTC, 1970 epoch milliseconds or as a DOY timestamp YYYY-DOYTHH:MM:SS.F)
Optionally, some data field in the packet itself may be the timestamp, and a mechanism to override the packet timestamp with that one may be valuable. Typically occurs when an instrument produces its own timestamp that's an irregular size.
The conversion is typically accomplished by a customizable sclk-scet file. The functionality is more or less:
<sclk start1> <sclk end1> <offset1>
<sclk start2> <sclk end2> <offset2>
<sclk startN> <sclk endN> <offsetN>
On more advanced systems these SCLK-SCET files are updated automatically by interaction with the spacecraft - on a cubesat the automatic interaction may not matter, but at the very least the functionality should exist to assign the timestamp in the APID (or a timestamp in the packet data field itself, which also frequently happens) to a epoch that's configured for conversion.
Each timestamp should be associated with the packet or telemetry inside the packet as it goes through AIT Core and ends up at the configured database.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Begin by locating AIT Core's packet timestamp handling and configured database path, then define how SCLK, ERT, and SCET epochs and optional packet-field timestamps should be represented; done requires a decided, configurable conversion design covering the listed time systems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100