lib_gelocus
is a library for Earth-centered reference frames and transformations.
The base algorithms are written in strictly standards compliant C99 with no dependencies, with the aim of being simple, robust, portable, and usable for embedded or real-time uses.
Few assumptions are made and few restrictions are imposed, so it's relatively easy to adapt as needed for your use.
State vectors represent time, position, and velocity in space, and are numerically realised relative to a reference frame. A reference frame is specified by an origin point (i.e. like the centre of the mass of the Earth) and an orientation relative to the universe that define its' coordinate axes. There are some very commonly used frames used by the space community, such as those defined by the IAU-76/FK5 or IAU-2000 standards. Given two reference frames, there are time-dependent linear transformations between them. This library provides a simple interface for generating and applying these transformations.
The intention is that this can also easily serve as the underlying implementation for higher-level wrappers rather than us all redoing a bunch of work. Towards this goal, a thin C++11 wrapper is provided to support a modern style of usage, with the coolest feature being templated compile-time tracking of reference frames (like SI units). This means the type system itself will disallow accidentally mixing up state vectors in different frames, very cool.
- CI pipeline
- Documentation:
- installation
- background
- basic usage
- examples
- docstrings
- Benchmarking suite
- Impl new theories (IAU-2000 and beyond)