@@ -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
9993According 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
10599Example:
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
124119Example:
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).
138133The 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
149144Example:
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