Skip to content

Commit 75b2459

Browse files
committed
Revert "revised util.Orientation class"
This reverts commit e8a5b21.
1 parent e8a5b21 commit 75b2459

5 files changed

Lines changed: 84 additions & 556 deletions

File tree

docs/common_json_objects.rst

Lines changed: 23 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -68,126 +68,90 @@ has a side looking geometry (both the side) at 25 deg conical FOV.
6868

6969
:code:`orientation` JSON object format
7070
========================================
71-
Orientation is parameterized as intrinsic rotations specified by Euler angles and sequence with respect to
72-
an user-specified reference frame. The definition of the Euler angle rotation is identical to the
73-
one used in the orbitpy->propcov->extern->gmatutil->util->AttitudeUtil, AttitudeConversionUtility C++ classes.
71+
At zero rotation, the instrument is aligned to the satellite body-frame which in turn is aligned to the Nadir-frame nominally.
72+
Thus the instrument orientation with respect to the satellite body-frame is the same as it's orientation with respect to the Nadir-frame
73+
in the scenario that the satellite body-frame is aligned to the Nadir-frame. It is also assumed that the instrument imaging axis is
74+
along the instrument z-axis.
7475

75-
A Euler sequence = 123 implies the following rotation: R = R3.R2.R1, where Ri is the rotation matrix about the ith axis.
76-
A positive angle corresponds to an anti-clockwise rotation about the respective axis. Each rotation matrix rotates the
77-
coordinate system (not the vector).
78-
See:
7976

80-
* https://mathworld.wolfram.com/RotationMatrix.html
77+
The definition of Nadir-frame is as follows:
8178

82-
The first subfield of the :code:`orientation` JSON object is the :code:`referenceFrame` subfield.
83-
See :ref:`reference_frames_desc` for description about the reference frames.
79+
*Nadir-frame*
8480

85-
.. csv-table:: Input parameter description
86-
:header: Parameter, Type, Units, Description
87-
:widths: 10,10,10,40
81+
* :math:`\bf X_{nadir}` axis: :math:`-({\bf Z_{nadir}} \times {\bf V})`, where :math:`\bf V` is the Velocity vector of satellite in EarthFixed frame)
82+
* :math:`\bf Y_{nadir}` axis: :math:`({\bf Z_{nadir}} \times {\bf X_{nadir}})`
83+
* :math:`\bf Z_{nadir}` axis: Aligned to Nadir vector (vector from Satellite to center of Earth in EarthFixed frame)
8884

89-
referenceFrame, string,, "Accepted values are *EARTH_CENTERED_INERTIAL*, *EARTH_FIXED*, *NADIR_POINTING* or *SC_BODY_FIXED*."
90-
91-
The second subfield of the :code:`orientation` JSON object is the :code:`convention` subfield.
85+
The first subfield of the :code:`orientation` JSON object is the :code:`convention` subfield.
9286

9387
.. csv-table:: Input parameter description
9488
:header: Parameter, Type, Units, Description
9589
:widths: 10,10,10,40
9690

97-
convention, string,, "Accepted values are *REF_FRAME_ALIGNED*, *SIDE_LOOK*, *XYZ* or *EULER*."
91+
convention, string,, "Accepted values are *NADIR*, *SIDE_LOOK* or *XYZ*."
9892

9993
According to the specified :code:`convention`, other subfields materialize as follows:
10094

101-
1. :code:`"convention": "REF_FRAME_ALIGNED"`
95+
1. :code:`"convention": "NADIR"`
10296

103-
Aligned with respective to the underlying reference frame.
97+
If the orientation is aligned to the Nadir-frame:
10498

10599
Example:
106100

107101
.. code-block:: python
108102
109103
"orientation": {
110-
"referenceFrame": "NADIR_POINTING",
111-
"convention": "REF_FRAME_ALIGNED"
104+
"convention": "NADIR"
112105
}
113106
114107
2. :code:`"convention": "SIDE_LOOK"`
115108

116-
If the orientation is to be specified via a side-look-angle (which corresponds to rotation about the y-axis only), the following subfields apply:
109+
If the orientation is to be specified via a side-look-angle, the following subfields apply:
117110

118111
.. csv-table:: Input parameter description
119112
:header: Parameter, Type, Units, Description
120113
:widths: 10,10,10,40
121114

122-
sideLookAngle, float, degrees, Side-look angle
115+
sideLookAngle, number, degrees, Commonly called as nadir/ off-nadir angle.
116+
117+
.. note:: A positive SIDE_LOOK corresponds to anti-clockwise rotation applied around the Nadir frame y-axis.
123118

124119
Example:
125120

126121
.. code-block:: python
127122
128123
"orientation": {
129-
"referenceFrame": "NADIR_POINTING",
130124
"convention": "SIDE_LOOK",
131125
"sideLookAngle":10
132126
}
133127
134128
135129
3. :code:`"convention": "XYZ"`
136130

137-
Here the orientation is to be specified via set of three rotation angles about the X, Y and Z axis.
131+
Here the orientation is to be specified via set of three rotation angles about the instrument primary axis (which is first aligned to the
132+
Nadir-frame in nominal case).
138133
The order of (intrinsic) rotations is: (1) rotation about instrument X-axis, (2) rotation about instrument Y-axis and last
139134
(3) rotation about instrument Z-axis.
140135

141136
.. csv-table:: Input parameter description
142137
:header: Parameter, Type, Units, Description
143138
:widths: 10,10,10,40
144139

145-
xRotation, float, degrees, rotation about instrument X-axis
146-
yRotation, float, degrees, rotation about instrument Y-axis
147-
zRotation, float, degrees, rotation about instrument Z-axis
140+
xRotation, number, degrees, rotation about instrument X-axis
141+
yRotation, number, degrees, rotation about instrument Y-axis
142+
zRotation, number, degrees, rotation about instrument Z-axis
148143

149144
Example:
150145

151146
.. code-block:: python
152147
153148
"orientation": {
154-
"referenceFrame": "NADIR_POINTING",
155149
"convention": "XYZ",
156150
"xRotation":10,
157151
"yRotation":20,
158152
"zRotation":0
159153
}
160154
161-
4. :code:`"convention": "EULER"`
162-
163-
Here the orientation is to be specified via set of Euler angles and sequence.
164-
165-
.. csv-table:: Input parameter description
166-
:header: Parameter, Type, Units, Description
167-
:widths: 10,10,10,40
168-
169-
eulerAngle1, float, degrees, Rotation angle corresponding to the first rotation.
170-
eulerAngle2, float, degrees, Rotation angle corresponding to the second rotation.
171-
eulerAngle3, float, degrees, Rotation angle corresponding to the third rotation.
172-
eulerSeq1, int, Axis-number corresponding to the first rotation.
173-
eulerSeq2, int, Axis-number corresponding to the second rotation.
174-
eulerSeq3, int, Axis-number corresponding to the third rotation.
175-
176-
Example:
177-
178-
.. code-block:: python
179-
180-
"orientation": {
181-
"referenceFrame": "NADIR_POINTING",
182-
"convention": "EULER",
183-
"eulerAngle1":10,
184-
"eulerAngle2":20,
185-
"eulerAngle3":0,
186-
"eulerSeq1": 3,
187-
"eulerSeq2": 1,
188-
"eulerSeq3": 3
189-
}
190-
191155
.. _fieldOfView_json_obj:
192156

193157
:code:`fieldOfView` JSON object format

0 commit comments

Comments
 (0)