35 lines
3.5 KiB
JSON
35 lines
3.5 KiB
JSON
{
|
|
"id": "frame-rotation",
|
|
"title": "Frame rotation and geodetic conversion",
|
|
"summary": "The two transformations between the representations of a position: the Cartesian rotation about the pole, and the ellipsoidal conversion.",
|
|
"nodes": [
|
|
{"id": "angle", "label": "Earth Rotation Angle from UT1", "kind": "data", "group": "input", "summary": "A linear function of the days of UT1 since J2000.0, in turns.", "api": "EarthRotationAngle"},
|
|
{"id": "eci", "label": "Eci", "kind": "data", "group": "frames", "summary": "A Cartesian position in the inertial frame, in meters.", "api": "Eci"},
|
|
{"id": "ecef", "label": "Ecef", "kind": "data", "group": "frames", "summary": "A Cartesian position in the Earth-fixed frame, in meters.", "api": "Ecef"},
|
|
{"id": "matrix", "label": "Build the rotation matrix", "kind": "step", "group": "rotate", "summary": "A clockwise turn about the third axis, whose transpose is the inverse.", "api": "rotation_eci_to_ecef"},
|
|
{"id": "to_ecef", "label": "Rotate inertial to Earth-fixed", "kind": "step", "group": "rotate", "summary": "Apply the rotation to the vector. The length is preserved.", "api": "Eci"},
|
|
{"id": "to_eci", "label": "Rotate Earth-fixed to inertial", "kind": "step", "group": "rotate", "summary": "Apply the transposed rotation. The length is preserved.", "api": "Ecef"},
|
|
{"id": "cartesian", "label": "Cartesian to geodetic", "kind": "step", "group": "geodetic", "summary": "Solve for latitude, longitude, and height on an ellipsoid. Iterative, because no elementary closed form exists.", "api": "geodetic_from_cartesian"},
|
|
{"id": "polar", "label": "On the rotation axis?", "kind": "decision", "group": "geodetic", "summary": "No longitude is defined on the axis."},
|
|
{"id": "undefined", "label": "No longitude", "kind": "terminal", "group": "error", "summary": "The conversion returns no value rather than an arbitrary longitude."},
|
|
{"id": "geodetic", "label": "Geodetic", "kind": "terminal", "group": "output", "summary": "Latitude and longitude in radians, height in meters above the WGS 84 ellipsoid.", "api": "Geodetic"},
|
|
{"id": "forward", "label": "Geodetic to Cartesian", "kind": "step", "group": "geodetic", "summary": "Closed form, using the prime vertical radius of curvature.", "api": "cartesian_from_geodetic"},
|
|
{"id": "direct", "label": "Geodetic to Ecef", "kind": "terminal", "group": "output", "summary": "The Earth-fixed Cartesian position on the WGS 84 ellipsoid.", "api": "Geodetic"}
|
|
],
|
|
"edges": [
|
|
{"source": "angle", "target": "matrix", "kind": "flow", "label": null},
|
|
{"source": "matrix", "target": "to_ecef", "kind": "flow", "label": null},
|
|
{"source": "matrix", "target": "to_eci", "kind": "flow", "label": null},
|
|
{"source": "eci", "target": "to_ecef", "kind": "flow", "label": null},
|
|
{"source": "ecef", "target": "to_eci", "kind": "flow", "label": null},
|
|
{"source": "to_ecef", "target": "ecef", "kind": "flow", "label": "Earth-fixed"},
|
|
{"source": "to_eci", "target": "eci", "kind": "flow", "label": "inertial"},
|
|
{"source": "to_ecef", "target": "cartesian", "kind": "flow", "label": null},
|
|
{"source": "cartesian", "target": "polar", "kind": "flow", "label": null},
|
|
{"source": "polar", "target": "undefined", "kind": "branch", "label": "yes"},
|
|
{"source": "polar", "target": "geodetic", "kind": "branch", "label": "no"},
|
|
{"source": "geodetic", "target": "forward", "kind": "flow", "label": null},
|
|
{"source": "forward", "target": "direct", "kind": "flow", "label": null}
|
|
]
|
|
}
|