Astrodynamics coordinate frame transforms
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Replace 13-term simplified nutation with full 106-term IAU-1980 model

All 106 coefficients from ERFA/SOFA nut80.c (Seidelmann 1982). The
previous 13-term version covered 99.9% of the signal; the full model
eliminates the remaining ~0.1 arcsec error for high-precision use.

+110 -17
+110 -17
lib/coordinate.ml
··· 130 130 +. (((-5.0 *. 360.0 *. 3600.0) -. 482890.539) *. t) 131 131 +. (7.455 *. t2) +. (0.008 *. t3)) 132 132 in 133 - (* Top 13 terms: nl, nlp, nf, nd, nom, sp (0.1mas), spt, ce, cet *) 134 - let terms = 135 - [| 136 - (* 1 *) (0, 0, 0, 0, 1, -171996.0, -174.2, 92025.0, 8.9); 137 - (* 9 *) (0, 0, 2, -2, 2, -13187.0, -1.6, 5736.0, -3.1); 138 - (* 31 *) (0, 0, 2, 0, 2, -2274.0, -0.2, 977.0, -0.5); 139 - (* 2 *) (0, 0, 0, 0, 2, 2062.0, 0.2, -895.0, 0.5); 140 - (* 10 *) (0, 1, 0, 0, 0, 1426.0, -3.4, 54.0, -0.1); 141 - (* 32 *) (1, 0, 0, 0, 0, 712.0, 0.1, -7.0, 0.0); 142 - (* 11 *) (0, 1, 2, -2, 2, -517.0, 1.2, 224.0, -0.6); 143 - (* 33 *) (0, 0, 2, 0, 1, -386.0, -0.4, 200.0, 0.0); 144 - (* 34 *) (1, 0, 2, 0, 2, -301.0, 0.0, 129.0, -0.1); 145 - (* 12 *) (0, -1, 2, -2, 2, 217.0, -0.5, -95.0, 0.3); 146 - (* 35 *) (1, 0, 0, -2, 0, -158.0, 0.0, -1.0, 0.0); 147 - (* 13 *) (0, 0, 2, -2, 1, 129.0, 0.1, -70.0, 0.0); 148 - (* 36 *) (-1, 0, 2, 0, 2, 123.0, 0.0, -53.0, 0.0); 149 - |] 133 + (* Full 106 terms: nl, nlp, nf, nd, nom, sp (0.1mas), spt, ce, cet. 134 + Source: ERFA/SOFA nut80.c (Seidelmann 1982, Table 1). *) 135 + let terms = [| 136 + (0,0,0,0,1, -171996., -174.2, 92025., 8.9); 137 + (0,0,0,0,2, 2062., 0.2, -895., 0.5); 138 + (-2,0,2,0,1, 46., 0., -24., 0.); 139 + (2,0,-2,0,0, 11., 0., 0., 0.); 140 + (-2,0,2,0,2, -3., 0., 1., 0.); 141 + (1,-1,0,-1,0, -3., 0., 0., 0.); 142 + (0,-2,2,-2,1, -2., 0., 1., 0.); 143 + (2,0,-2,0,1, 1., 0., 0., 0.); 144 + (0,0,2,-2,2, -13187., -1.6, 5736., -3.1); 145 + (0,1,0,0,0, 1426., -3.4, 54., -0.1); 146 + (0,1,2,-2,2, -517., 1.2, 224., -0.6); 147 + (0,-1,2,-2,2, 217., -0.5, -95., 0.3); 148 + (0,0,2,-2,1, 129., 0.1, -70., 0.); 149 + (2,0,0,-2,0, 48., 0., 1., 0.); 150 + (0,0,2,-2,0, -22., 0., 0., 0.); 151 + (0,2,0,0,0, 17., -0.1, 0., 0.); 152 + (0,1,0,0,1, -15., 0., 9., 0.); 153 + (0,2,2,-2,2, -16., 0.1, 7., 0.); 154 + (0,-1,0,0,1, -12., 0., 6., 0.); 155 + (-2,0,0,2,1, -6., 0., 3., 0.); 156 + (0,-1,2,-2,1, -5., 0., 3., 0.); 157 + (2,0,0,-2,1, 4., 0., -2., 0.); 158 + (0,1,2,-2,1, 4., 0., -2., 0.); 159 + (1,0,0,-1,0, -4., 0., 0., 0.); 160 + (2,1,0,-2,0, 1., 0., 0., 0.); 161 + (0,0,-2,2,1, 1., 0., 0., 0.); 162 + (0,1,-2,2,0, -1., 0., 0., 0.); 163 + (0,1,0,0,2, 1., 0., 0., 0.); 164 + (-1,0,0,1,1, 1., 0., 0., 0.); 165 + (0,1,2,-2,0, -1., 0., 0., 0.); 166 + (0,0,2,0,2, -2274., -0.2, 977., -0.5); 167 + (1,0,0,0,0, 712., 0.1, -7., 0.); 168 + (0,0,2,0,1, -386., -0.4, 200., 0.); 169 + (1,0,2,0,2, -301., 0., 129., -0.1); 170 + (1,0,0,-2,0, -158., 0., -1., 0.); 171 + (-1,0,2,0,2, 123., 0., -53., 0.); 172 + (0,0,0,2,0, 63., 0., -2., 0.); 173 + (1,0,0,0,1, 63., 0.1, -33., 0.); 174 + (-1,0,0,0,1, -58., -0.1, 32., 0.); 175 + (-1,0,2,2,2, -59., 0., 26., 0.); 176 + (1,0,2,0,1, -51., 0., 27., 0.); 177 + (0,0,2,2,2, -38., 0., 16., 0.); 178 + (2,0,0,0,0, 29., 0., -1., 0.); 179 + (1,0,2,-2,2, 29., 0., -12., 0.); 180 + (2,0,2,0,2, -31., 0., 13., 0.); 181 + (0,0,2,0,0, 26., 0., -1., 0.); 182 + (-1,0,2,0,1, 21., 0., -10., 0.); 183 + (-1,0,0,2,1, 16., 0., -8., 0.); 184 + (1,0,0,-2,1, -13., 0., 7., 0.); 185 + (-1,0,2,2,1, -10., 0., 5., 0.); 186 + (1,1,0,-2,0, -7., 0., 0., 0.); 187 + (0,1,2,0,2, 7., 0., -3., 0.); 188 + (0,-1,2,0,2, -7., 0., 3., 0.); 189 + (1,0,2,2,2, -8., 0., 3., 0.); 190 + (1,0,0,2,0, 6., 0., 0., 0.); 191 + (2,0,2,-2,2, 6., 0., -3., 0.); 192 + (0,0,0,2,1, -6., 0., 3., 0.); 193 + (0,0,2,2,1, -7., 0., 3., 0.); 194 + (1,0,2,-2,1, 6., 0., -3., 0.); 195 + (0,0,0,-2,1, -5., 0., 3., 0.); 196 + (1,-1,0,0,0, 5., 0., 0., 0.); 197 + (2,0,2,0,1, -5., 0., 3., 0.); 198 + (0,1,0,-2,0, -4., 0., 0., 0.); 199 + (1,0,-2,0,0, 4., 0., 0., 0.); 200 + (0,0,0,1,0, -4., 0., 0., 0.); 201 + (1,1,0,0,0, -3., 0., 0., 0.); 202 + (1,0,2,0,0, 3., 0., 0., 0.); 203 + (1,-1,2,0,2, -3., 0., 1., 0.); 204 + (-1,-1,2,2,2, -3., 0., 1., 0.); 205 + (-2,0,0,0,1, -2., 0., 1., 0.); 206 + (3,0,2,0,2, -3., 0., 1., 0.); 207 + (0,-1,2,2,2, -3., 0., 1., 0.); 208 + (1,1,2,0,2, 2., 0., -1., 0.); 209 + (-1,0,2,-2,1, -2., 0., 1., 0.); 210 + (2,0,0,0,1, 2., 0., -1., 0.); 211 + (1,0,0,0,2, -2., 0., 1., 0.); 212 + (3,0,0,0,0, 2., 0., 0., 0.); 213 + (0,0,2,1,2, 2., 0., -1., 0.); 214 + (-1,0,0,0,2, 1., 0., -1., 0.); 215 + (1,0,0,-4,0, -1., 0., 0., 0.); 216 + (-2,0,2,2,2, 1., 0., -1., 0.); 217 + (-1,0,2,4,2, -2., 0., 1., 0.); 218 + (2,0,0,-4,0, -1., 0., 0., 0.); 219 + (1,1,2,-2,2, 1., 0., -1., 0.); 220 + (1,0,2,2,1, -1., 0., 1., 0.); 221 + (-2,0,2,4,2, -1., 0., 1., 0.); 222 + (-1,0,4,0,2, 1., 0., 0., 0.); 223 + (1,-1,0,-2,0, 1., 0., 0., 0.); 224 + (2,0,2,-2,1, 1., 0., -1., 0.); 225 + (2,0,2,2,2, -1., 0., 0., 0.); 226 + (1,0,0,2,1, -1., 0., 0., 0.); 227 + (0,0,4,-2,2, 1., 0., 0., 0.); 228 + (3,0,2,-2,2, 1., 0., 0., 0.); 229 + (1,0,2,-2,0, -1., 0., 0., 0.); 230 + (0,1,2,0,1, 1., 0., 0., 0.); 231 + (-1,-1,0,2,1, 1., 0., 0., 0.); 232 + (0,0,-2,0,1, -1., 0., 0., 0.); 233 + (0,0,2,-1,2, -1., 0., 0., 0.); 234 + (0,1,0,2,0, -1., 0., 0., 0.); 235 + (1,0,-2,-2,0, -1., 0., 0., 0.); 236 + (0,-1,2,0,1, -1., 0., 0., 0.); 237 + (1,1,0,-2,1, -1., 0., 0., 0.); 238 + (1,0,-2,2,0, -1., 0., 0., 0.); 239 + (2,0,0,2,0, 1., 0., 0., 0.); 240 + (0,0,2,4,2, -1., 0., 0., 0.); 241 + (0,1,0,1,0, 1., 0., 0., 0.); 242 + |] 150 243 in 151 244 let dpsi = ref 0.0 in 152 245 let deps = ref 0.0 in