Main class to read a pre-computed CSV file with roll, pitch, and yaw angles and interpolate the angles to get the rotation matrix for a given ephemeris time.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(bspline_1d), | private | :: | roll_spline | ||||
| type(bspline_1d), | private | :: | pitch_spline | ||||
| type(bspline_1d), | private | :: | yaw_x_spline |
x-component of yaw angle unit vector: x=cos(yaw) |
|||
| type(bspline_1d), | private | :: | yaw_y_spline |
y-component of yaw angle unit vector: y=sin(yaw) |
initialize the moon frame interpolater with the given csv file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(moon_frame_interpolater), | intent(inout) | :: | me | |||
| character(len=*), | intent(in) | :: | filename |
csv file with roll, pitch, and yaw angles vs ephemeris time. (see |
||
| integer, | intent(in), | optional | :: | k |
spline order ( |
|
| logical, | intent(in), | optional | :: | extrapolate |
if true, extrapolate the spline outside the range of the data. Default is false. |
|
| real(kind=wp), | intent(in), | optional | :: | et0 |
start ephemeris time [if not present, the initial time in the file is used] |
|
| real(kind=wp), | intent(in), | optional | :: | etf |
end ephemeris time [if not present, the final time in the file is used] |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(moon_frame_interpolater), | intent(inout) | :: | me |
rotation matrix from J2000 to the frame
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(moon_frame_interpolater), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | et |
rotation matrix from the frame to j2000
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(moon_frame_interpolater), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | et |
type,public :: moon_frame_interpolater !! Main class to read a pre-computed CSV file with roll, pitch, and yaw angles !! and interpolate the angles to get the rotation matrix for a given ephemeris time. private type(bspline_1d) :: roll_spline type(bspline_1d) :: pitch_spline type(bspline_1d) :: yaw_x_spline !! x-component of yaw angle unit vector: x=cos(yaw) type(bspline_1d) :: yaw_y_spline !! y-component of yaw angle unit vector: y=sin(yaw) contains private procedure,public :: initialize => initialize_moon_frame_interpolater procedure,public :: destroy => destroy_moon_frame_interpolater procedure,public :: j2000_to_frame procedure,public :: frame_to_j2000 end type moon_frame_interpolater