Points
FrameTransformations.add_point!
— Functionadd_point!(fs::FrameSystem{O, T}, p::FramePointNode{O, T}) where {O,T}
Add point to the frame system.
add_point!(frames, name, id, axesid, class, funs, parentid=nothing)
Create and add a new point node name
to frames
based on the input parameters.
Inputs
frames
– Target frame systemname
– Point name, must be unique withinframes
id
– Point ID, must be unique withinframes
axes
– ID/Name of the axes in which the state vector of the point is expressed.funs
–FramePointFunctions
object storing the functions to update the state vectors of the point.parentid
– NAIF ID of the parent point. Not required only for the root point.
This is a low-level function and is NOT meant to be directly used. Instead, to add a point to the frame system, see add_point_dynamical!
and add_point_fixedoffset!
.
FrameTransformations.add_point_dynamical!
— Functionadd_point_dynamical!(frames, name, id, parent, axes, fun, δfun=nothing, δ²fun=nothing, δ³fun=nothing)
Add point
as a time point to frames
. The state vector for these points depends only on time and is computed through the custom functions provided by the user.
The input functions must accept only time as argument and their outputs must be as follows:
- fun: return a 3-elements vector: position
- δfun: return a 6-elements vector: position and velocity
- δ²fun: return a 9-elements vector: position, velocity and acceleration
- δ³fun: return a 12-elements vector: position, velocity, acceleration and jerk
If δfun
, δ²fun
or δ³fun
are not provided, they are computed with automatic differentiation.
It is expected that the input functions and their ouputs have the correct signature. This function does not perform any checks on whether the returned vectors have the appropriate dimensions.
FrameTransformations.add_point_fixedoffset!
— Functionadd_point_fixedoffset!(frames, name, id, parent, axes, offset::AbstractVector)
Add point
as a fixed-offset point to frames
.
Fixed points are those whose positions have a constant offset
with respect their parent
points in the given set of axes
. Thus, points eligible for this class must have null velocity and acceleration with respect to parent
.
FrameTransformations.add_point_ephemeris!
— Functionadd_point_ephemeris!(fr::FrameSystem{O, T}, eph::AbstractEphemerisProvider,
name::Symbol, id::Int) where {O, T}
Add a point coming from an AbstractEphemerisProvider
subtype. The point is identifies by the id
and a have a user defined name
.
This is an interface only, concrete subtypes of AbstractEphemerisProvider
requires an proper implementation.
add_point_ephemeris!(fr, eph::AbstractEphemerisProvider, book::Dict{Int, Symbol})
Add all points found in the eph
and using id-names relationships specified in book
.
FrameTransformations.add_point_surface!
— Functionadd_point_surface!(frames, name::Symbol, pointid::Int, parent, axes,
λ::Number, ϕ::Number, R::Number, f::Number=0.0, h::Number=0.0)
Add point
to frames
as a fixed point on the surface of the parent
point body. The relative position is specified by the longitude λ
, the geodetic latitude ϕ
, the reference radius of the ellipsoid R
and its flattening f
. The altitude over the reference surface of the ellipsoid h
defaults to 0.
Axes used here must be a set of body-fixed reference axes for the body represented by parentid
. This is under user resposibility.
FrameTransformations.add_point_alias!
— Functionadd_point_alias!(frames, target, alias::Symbol)
Add a name alias
to a target
point registered in frames
.