imap-processing 0.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. imap_processing/__init__.py +34 -0
  2. imap_processing/_version.py +3 -0
  3. imap_processing/ccsds/__init__.py +0 -0
  4. imap_processing/ccsds/ccsds_data.py +55 -0
  5. imap_processing/ccsds/excel_to_xtce.py +477 -0
  6. imap_processing/cdf/__init__.py +0 -0
  7. imap_processing/cdf/cdf_attribute_manager.py +322 -0
  8. imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +212 -0
  9. imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +1358 -0
  10. imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +391 -0
  11. imap_processing/cdf/config/imap_constant_attrs.yaml +33 -0
  12. imap_processing/cdf/config/imap_default_global_cdf_attrs.yaml +17 -0
  13. imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +41 -0
  14. imap_processing/cdf/config/imap_glows_l1a_variable_attrs.yaml +499 -0
  15. imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +334 -0
  16. imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +51 -0
  17. imap_processing/cdf/config/imap_hi_variable_attrs.yaml +435 -0
  18. imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +27 -0
  19. imap_processing/cdf/config/imap_hit_l1a_variable_attrs.yaml +493 -0
  20. imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +564 -0
  21. imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +24 -0
  22. imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +426 -0
  23. imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +90 -0
  24. imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +487 -0
  25. imap_processing/cdf/config/imap_lo_l1b_variable_attrs.yaml +121 -0
  26. imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +179 -0
  27. imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +97 -0
  28. imap_processing/cdf/config/imap_mag_l1_variable_attrs.yaml +201 -0
  29. imap_processing/cdf/config/imap_swapi_global_cdf_attrs.yaml +33 -0
  30. imap_processing/cdf/config/imap_swapi_variable_attrs.yaml +137 -0
  31. imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +24 -0
  32. imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +234 -0
  33. imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +273 -0
  34. imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +100 -0
  35. imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +52 -0
  36. imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +297 -0
  37. imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +121 -0
  38. imap_processing/cdf/config/shared/default_global_cdf_attrs_schema.yaml +246 -0
  39. imap_processing/cdf/config/shared/default_variable_cdf_attrs_schema.yaml +466 -0
  40. imap_processing/cdf/imap_cdf_manager.py +64 -0
  41. imap_processing/cdf/utils.py +147 -0
  42. imap_processing/cli.py +863 -0
  43. imap_processing/codice/__init__.py +1 -0
  44. imap_processing/codice/codice_l0.py +54 -0
  45. imap_processing/codice/codice_l1a.py +558 -0
  46. imap_processing/codice/codice_l1b.py +194 -0
  47. imap_processing/codice/constants.py +986 -0
  48. imap_processing/codice/data/esa_sweep_values.csv +257 -0
  49. imap_processing/codice/data/lo_stepping_values.csv +129 -0
  50. imap_processing/codice/decompress.py +142 -0
  51. imap_processing/codice/packet_definitions/P_COD_NHK.xml +618 -0
  52. imap_processing/codice/packet_definitions/codice_packet_definition.xml +5073 -0
  53. imap_processing/codice/utils.py +95 -0
  54. imap_processing/decom.py +40 -0
  55. imap_processing/glows/__init__.py +1 -0
  56. imap_processing/glows/ancillary/l1b_conversion_table_v001.json +42 -0
  57. imap_processing/glows/l0/__init__.py +0 -0
  58. imap_processing/glows/l0/decom_glows.py +91 -0
  59. imap_processing/glows/l0/glows_l0_data.py +194 -0
  60. imap_processing/glows/l1a/glows_l1a.py +424 -0
  61. imap_processing/glows/l1a/glows_l1a_data.py +555 -0
  62. imap_processing/glows/l1b/glows_l1b.py +270 -0
  63. imap_processing/glows/l1b/glows_l1b_data.py +583 -0
  64. imap_processing/glows/packet_definitions/GLX_COMBINED.xml +254 -0
  65. imap_processing/glows/packet_definitions/P_GLX_TMSCDE.xml +97 -0
  66. imap_processing/glows/packet_definitions/P_GLX_TMSCHIST.xml +215 -0
  67. imap_processing/glows/utils/__init__.py +0 -0
  68. imap_processing/glows/utils/constants.py +105 -0
  69. imap_processing/hi/__init__.py +1 -0
  70. imap_processing/hi/l0/__init__.py +0 -0
  71. imap_processing/hi/l0/decom_hi.py +24 -0
  72. imap_processing/hi/l1a/__init__.py +0 -0
  73. imap_processing/hi/l1a/hi_l1a.py +73 -0
  74. imap_processing/hi/l1a/histogram.py +142 -0
  75. imap_processing/hi/l1a/housekeeping.py +27 -0
  76. imap_processing/hi/l1a/science_direct_event.py +341 -0
  77. imap_processing/hi/l1b/__init__.py +0 -0
  78. imap_processing/hi/l1b/hi_eng_unit_convert_table.csv +154 -0
  79. imap_processing/hi/l1b/hi_l1b.py +127 -0
  80. imap_processing/hi/l1c/__init__.py +0 -0
  81. imap_processing/hi/l1c/hi_l1c.py +228 -0
  82. imap_processing/hi/packet_definitions/__init__.py +0 -0
  83. imap_processing/hi/packet_definitions/hi_packet_definition.xml +482 -0
  84. imap_processing/hi/utils.py +27 -0
  85. imap_processing/hit/__init__.py +1 -0
  86. imap_processing/hit/l0/__init__.py +0 -0
  87. imap_processing/hit/l0/data_classes/housekeeping.py +240 -0
  88. imap_processing/hit/l0/data_classes/science_packet.py +259 -0
  89. imap_processing/hit/l0/decom_hit.py +467 -0
  90. imap_processing/hit/l0/utils/hit_base.py +57 -0
  91. imap_processing/hit/l1a/__init__.py +0 -0
  92. imap_processing/hit/l1a/hit_l1a.py +254 -0
  93. imap_processing/hit/l1b/hit_l1b.py +179 -0
  94. imap_processing/hit/packet_definitions/hit_packet_definitions.xml +1276 -0
  95. imap_processing/ialirt/__init__.py +0 -0
  96. imap_processing/ialirt/l0/__init__.py +0 -0
  97. imap_processing/ialirt/l0/process_hit.py +220 -0
  98. imap_processing/ialirt/packet_definitions/__init__.py +0 -0
  99. imap_processing/ialirt/packet_definitions/ialirt.xml +778 -0
  100. imap_processing/ialirt/packet_definitions/ialirt_hit.xml +186 -0
  101. imap_processing/idex/__init__.py +2 -0
  102. imap_processing/idex/idex_constants.py +27 -0
  103. imap_processing/idex/idex_l0.py +31 -0
  104. imap_processing/idex/idex_l1a.py +631 -0
  105. imap_processing/idex/packet_definitions/idex_packet_definition.xml +3162 -0
  106. imap_processing/lo/__init__.py +1 -0
  107. imap_processing/lo/l0/__init__.py +0 -0
  108. imap_processing/lo/l0/data_classes/science_direct_events.py +215 -0
  109. imap_processing/lo/l0/data_classes/star_sensor.py +98 -0
  110. imap_processing/lo/l0/decompression_tables/12_to_16_bit.csv +4097 -0
  111. imap_processing/lo/l0/decompression_tables/8_to_12_bit.csv +257 -0
  112. imap_processing/lo/l0/decompression_tables/8_to_16_bit.csv +257 -0
  113. imap_processing/lo/l0/decompression_tables/decompression_tables.py +75 -0
  114. imap_processing/lo/l0/lo_apid.py +15 -0
  115. imap_processing/lo/l0/lo_science.py +150 -0
  116. imap_processing/lo/l0/utils/binary_string.py +59 -0
  117. imap_processing/lo/l0/utils/bit_decompression.py +62 -0
  118. imap_processing/lo/l0/utils/lo_base.py +57 -0
  119. imap_processing/lo/l1a/__init__.py +0 -0
  120. imap_processing/lo/l1a/lo_l1a.py +157 -0
  121. imap_processing/lo/l1b/lo_l1b.py +160 -0
  122. imap_processing/lo/l1c/lo_l1c.py +180 -0
  123. imap_processing/lo/packet_definitions/lo_xtce.xml +3541 -0
  124. imap_processing/mag/__init__.py +2 -0
  125. imap_processing/mag/constants.py +108 -0
  126. imap_processing/mag/l0/decom_mag.py +170 -0
  127. imap_processing/mag/l0/mag_l0_data.py +118 -0
  128. imap_processing/mag/l1a/mag_l1a.py +317 -0
  129. imap_processing/mag/l1a/mag_l1a_data.py +1007 -0
  130. imap_processing/mag/l1b/__init__.py +0 -0
  131. imap_processing/mag/l1b/imap_calibration_mag_20240229_v01.cdf +0 -0
  132. imap_processing/mag/l1b/mag_l1b.py +125 -0
  133. imap_processing/mag/l1c/mag_l1c.py +57 -0
  134. imap_processing/mag/packet_definitions/MAG_SCI_COMBINED.xml +235 -0
  135. imap_processing/quality_flags.py +91 -0
  136. imap_processing/spice/__init__.py +1 -0
  137. imap_processing/spice/geometry.py +322 -0
  138. imap_processing/spice/kernels.py +459 -0
  139. imap_processing/spice/time.py +72 -0
  140. imap_processing/swapi/__init__.py +1 -0
  141. imap_processing/swapi/l1/__init__.py +0 -0
  142. imap_processing/swapi/l1/swapi_l1.py +685 -0
  143. imap_processing/swapi/l2/__init__.py +0 -0
  144. imap_processing/swapi/l2/swapi_l2.py +107 -0
  145. imap_processing/swapi/packet_definitions/__init__.py +0 -0
  146. imap_processing/swapi/packet_definitions/swapi_packet_definition.xml +708 -0
  147. imap_processing/swapi/swapi_utils.py +25 -0
  148. imap_processing/swe/__init__.py +1 -0
  149. imap_processing/swe/l1a/__init__.py +0 -0
  150. imap_processing/swe/l1a/swe_l1a.py +48 -0
  151. imap_processing/swe/l1a/swe_science.py +223 -0
  152. imap_processing/swe/l1b/engineering_unit_convert_table.csv +65 -0
  153. imap_processing/swe/l1b/swe_esa_lookup_table.csv +1441 -0
  154. imap_processing/swe/l1b/swe_l1b.py +49 -0
  155. imap_processing/swe/l1b/swe_l1b_science.py +557 -0
  156. imap_processing/swe/packet_definitions/__init__.py +0 -0
  157. imap_processing/swe/packet_definitions/swe_packet_definition.xml +303 -0
  158. imap_processing/swe/utils/__init__.py +0 -0
  159. imap_processing/swe/utils/swe_utils.py +9 -0
  160. imap_processing/tests/__init__.py +0 -0
  161. imap_processing/tests/ccsds/test_data/expected_output.xml +171 -0
  162. imap_processing/tests/ccsds/test_excel_to_xtce.py +285 -0
  163. imap_processing/tests/cdf/__init__.py +0 -0
  164. imap_processing/tests/cdf/imap_default_global_cdf_attrs.yaml +8 -0
  165. imap_processing/tests/cdf/shared/default_global_cdf_attrs_schema.yaml +246 -0
  166. imap_processing/tests/cdf/shared/default_variable_cdf_attrs_schema.yaml +466 -0
  167. imap_processing/tests/cdf/test_cdf_attribute_manager.py +353 -0
  168. imap_processing/tests/cdf/test_data/imap_default_global_test_cdf_attrs.yaml +7 -0
  169. imap_processing/tests/cdf/test_data/imap_instrument1_global_cdf_attrs.yaml +14 -0
  170. imap_processing/tests/cdf/test_data/imap_instrument1_level1_variable_attrs.yaml +23 -0
  171. imap_processing/tests/cdf/test_data/imap_instrument2_global_cdf_attrs.yaml +23 -0
  172. imap_processing/tests/cdf/test_data/imap_instrument2_level2_variable_attrs.yaml +30 -0
  173. imap_processing/tests/cdf/test_data/imap_test_global.yaml +26 -0
  174. imap_processing/tests/cdf/test_data/imap_test_variable.yaml +41 -0
  175. imap_processing/tests/cdf/test_imap_cdf_manager.py +62 -0
  176. imap_processing/tests/cdf/test_utils.py +109 -0
  177. imap_processing/tests/codice/__init__.py +0 -0
  178. imap_processing/tests/codice/conftest.py +56 -0
  179. imap_processing/tests/codice/data/eu_unit_lookup_table.csv +101 -0
  180. imap_processing/tests/codice/data/idle_export_eu.COD_NHK_20230822_122700 2.csv +100 -0
  181. imap_processing/tests/codice/data/idle_export_raw.COD_NHK_20230822_122700.csv +100 -0
  182. imap_processing/tests/codice/data/imap_codice_l0_hi-counters-aggregated_20240429_v001.pkts +0 -0
  183. imap_processing/tests/codice/data/imap_codice_l0_hi-counters-singles_20240429_v001.pkts +0 -0
  184. imap_processing/tests/codice/data/imap_codice_l0_hi-omni_20240429_v001.pkts +0 -0
  185. imap_processing/tests/codice/data/imap_codice_l0_hi-pha_20240429_v001.pkts +0 -0
  186. imap_processing/tests/codice/data/imap_codice_l0_hi-sectored_20240429_v001.pkts +0 -0
  187. imap_processing/tests/codice/data/imap_codice_l0_hskp_20100101_v001.pkts +0 -0
  188. imap_processing/tests/codice/data/imap_codice_l0_lo-counters-aggregated_20240429_v001.pkts +0 -0
  189. imap_processing/tests/codice/data/imap_codice_l0_lo-counters-singles_20240429_v001.pkts +0 -0
  190. imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-angular_20240429_v001.pkts +0 -0
  191. imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-priority_20240429_v001.pkts +0 -0
  192. imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-species_20240429_v001.pkts +0 -0
  193. imap_processing/tests/codice/data/imap_codice_l0_lo-pha_20240429_v001.pkts +0 -0
  194. imap_processing/tests/codice/data/imap_codice_l0_lo-sw-angular_20240429_v001.pkts +0 -0
  195. imap_processing/tests/codice/data/imap_codice_l0_lo-sw-priority_20240429_v001.pkts +0 -0
  196. imap_processing/tests/codice/data/imap_codice_l0_lo-sw-species_20240429_v001.pkts +0 -0
  197. imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-aggregated_20240429_v001.cdf +0 -0
  198. imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-singles_20240429_v001.cdf +0 -0
  199. imap_processing/tests/codice/data/imap_codice_l1a_hi-omni_20240429_v001.cdf +0 -0
  200. imap_processing/tests/codice/data/imap_codice_l1a_hi-sectored_20240429_v001.cdf +0 -0
  201. imap_processing/tests/codice/data/imap_codice_l1a_hskp_20100101_v001.cdf +0 -0
  202. imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-aggregated_20240429_v001.cdf +0 -0
  203. imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-singles_20240429_v001.cdf +0 -0
  204. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-angular_20240429_v001.cdf +0 -0
  205. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-priority_20240429_v001.cdf +0 -0
  206. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-species_20240429_v001.cdf +0 -0
  207. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-angular_20240429_v001.cdf +0 -0
  208. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-priority_20240429_v001.cdf +0 -0
  209. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-species_20240429_v001.cdf +0 -0
  210. imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-aggregated_20240429_v001.cdf +0 -0
  211. imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-singles_20240429_v001.cdf +0 -0
  212. imap_processing/tests/codice/data/imap_codice_l1b_hi-omni_20240429_v001.cdf +0 -0
  213. imap_processing/tests/codice/data/imap_codice_l1b_hi-sectored_20240429_v001.cdf +0 -0
  214. imap_processing/tests/codice/data/imap_codice_l1b_hskp_20100101_v001.cdf +0 -0
  215. imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-aggregated_20240429_v001.cdf +0 -0
  216. imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-singles_20240429_v001.cdf +0 -0
  217. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-angular_20240429_v001.cdf +0 -0
  218. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-priority_20240429_v001.cdf +0 -0
  219. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-species_20240429_v001.cdf +0 -0
  220. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-angular_20240429_v001.cdf +0 -0
  221. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-priority_20240429_v001.cdf +0 -0
  222. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-species_20240429_v001.cdf +0 -0
  223. imap_processing/tests/codice/test_codice_l0.py +144 -0
  224. imap_processing/tests/codice/test_codice_l1a.py +187 -0
  225. imap_processing/tests/codice/test_codice_l1b.py +60 -0
  226. imap_processing/tests/codice/test_decompress.py +50 -0
  227. imap_processing/tests/conftest.py +372 -0
  228. imap_processing/tests/glows/direct_events_validation_data_l1a.csv +5704 -0
  229. imap_processing/tests/glows/glows_test_packet_20110921_v01.pkts +0 -0
  230. imap_processing/tests/glows/test_glows_decom.py +133 -0
  231. imap_processing/tests/glows/test_glows_l1a_cdf.py +85 -0
  232. imap_processing/tests/glows/test_glows_l1a_data.py +510 -0
  233. imap_processing/tests/glows/test_glows_l1b.py +348 -0
  234. imap_processing/tests/glows/test_glows_l1b_data.py +70 -0
  235. imap_processing/tests/hi/__init__.py +0 -0
  236. imap_processing/tests/hi/conftest.py +133 -0
  237. imap_processing/tests/hi/test_data/l0/20231030_H45_APP_NHK.bin +0 -0
  238. imap_processing/tests/hi/test_data/l0/20231030_H45_APP_NHK.csv +201 -0
  239. imap_processing/tests/hi/test_data/l0/20231030_H45_SCI_CNT.bin +0 -0
  240. imap_processing/tests/hi/test_data/l0/20231030_H45_SCI_DE.bin +0 -0
  241. imap_processing/tests/hi/test_data/l0/README.txt +54 -0
  242. imap_processing/tests/hi/test_decom.py +55 -0
  243. imap_processing/tests/hi/test_hi_l1b.py +31 -0
  244. imap_processing/tests/hi/test_hi_l1c.py +69 -0
  245. imap_processing/tests/hi/test_l1a.py +96 -0
  246. imap_processing/tests/hi/test_l1a_sci_de.py +72 -0
  247. imap_processing/tests/hi/test_utils.py +15 -0
  248. imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1251.pkts +0 -0
  249. imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1252.pkts +0 -0
  250. imap_processing/tests/hit/__init__.py +0 -0
  251. imap_processing/tests/hit/test_data/imap_hit_l0_hk_20100105_v001.pkts +0 -0
  252. imap_processing/tests/hit/test_data/sci_sample.ccsds +0 -0
  253. imap_processing/tests/hit/test_hit_decom.py +230 -0
  254. imap_processing/tests/hit/test_hit_l1a.py +224 -0
  255. imap_processing/tests/hit/test_hit_l1b.py +52 -0
  256. imap_processing/tests/hit/validation_data/hskp_sample_raw.csv +88 -0
  257. imap_processing/tests/ialirt/__init__.py +0 -0
  258. imap_processing/tests/ialirt/test_data/l0/IALiRT Raw Packet Telemetry.txt +33 -0
  259. imap_processing/tests/ialirt/test_data/l0/hit_ialirt_sample.ccsds +0 -0
  260. imap_processing/tests/ialirt/test_data/l0/hit_ialirt_sample.csv +1001 -0
  261. imap_processing/tests/ialirt/unit/__init__.py +0 -0
  262. imap_processing/tests/ialirt/unit/test_decom_ialirt.py +94 -0
  263. imap_processing/tests/ialirt/unit/test_process_hit.py +226 -0
  264. imap_processing/tests/idex/__init__.py +0 -0
  265. imap_processing/tests/idex/conftest.py +22 -0
  266. imap_processing/tests/idex/imap_idex_l0_raw_20230725_v001.pkts +0 -0
  267. imap_processing/tests/idex/impact_14_tof_high_data.txt +8189 -0
  268. imap_processing/tests/idex/test_idex_l0.py +45 -0
  269. imap_processing/tests/idex/test_idex_l1a.py +91 -0
  270. imap_processing/tests/lo/__init__.py +0 -0
  271. imap_processing/tests/lo/test_binary_string.py +21 -0
  272. imap_processing/tests/lo/test_bit_decompression.py +39 -0
  273. imap_processing/tests/lo/test_cdfs/imap_lo_l0_raw_20240627_v001.pkts +0 -0
  274. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_de_20100101_v001.cdf +0 -0
  275. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_spin_20100101_v001.cdf +0 -0
  276. imap_processing/tests/lo/test_cdfs/imap_lo_l1b_de_20100101_v001.cdf +0 -0
  277. imap_processing/tests/lo/test_lo_l1a.py +66 -0
  278. imap_processing/tests/lo/test_lo_l1b.py +74 -0
  279. imap_processing/tests/lo/test_lo_l1c.py +66 -0
  280. imap_processing/tests/lo/test_science_counts.py +41 -0
  281. imap_processing/tests/lo/test_science_direct_events.py +209 -0
  282. imap_processing/tests/lo/test_star_sensor.py +35 -0
  283. imap_processing/tests/mag/imap_mag_l1a_burst-magi_20231025_v001.cdf +0 -0
  284. imap_processing/tests/mag/mag_l0_test_data.pkts +0 -0
  285. imap_processing/tests/mag/mag_l0_test_output.csv +37 -0
  286. imap_processing/tests/mag/mag_l1_test_data.pkts +0 -0
  287. imap_processing/tests/mag/mag_l1a_test_output.csv +97 -0
  288. imap_processing/tests/mag/test_mag_decom.py +117 -0
  289. imap_processing/tests/mag/test_mag_l1a.py +856 -0
  290. imap_processing/tests/mag/test_mag_l1b.py +77 -0
  291. imap_processing/tests/mag/test_mag_l1c.py +40 -0
  292. imap_processing/tests/spice/__init__.py +0 -0
  293. imap_processing/tests/spice/test_data/imap_ena_sim_metakernel.template +4 -0
  294. imap_processing/tests/spice/test_data/imap_science_0001.tf +171 -0
  295. imap_processing/tests/spice/test_data/imap_sclk_0000.tsc +156 -0
  296. imap_processing/tests/spice/test_data/imap_sim_ck_2hr_2secsampling_with_nutation.bc +0 -0
  297. imap_processing/tests/spice/test_data/imap_simple_metakernel.template +3 -0
  298. imap_processing/tests/spice/test_data/imap_spk_demo.bsp +0 -0
  299. imap_processing/tests/spice/test_data/imap_wkcp.tf +1806 -0
  300. imap_processing/tests/spice/test_data/naif0012.tls +150 -0
  301. imap_processing/tests/spice/test_data/sim_1yr_imap_attitude.bc +0 -0
  302. imap_processing/tests/spice/test_data/sim_1yr_imap_pointing_frame.bc +0 -0
  303. imap_processing/tests/spice/test_geometry.py +214 -0
  304. imap_processing/tests/spice/test_kernels.py +272 -0
  305. imap_processing/tests/spice/test_time.py +35 -0
  306. imap_processing/tests/swapi/__init__.py +0 -0
  307. imap_processing/tests/swapi/conftest.py +16 -0
  308. imap_processing/tests/swapi/l0_data/__init__.py +0 -0
  309. imap_processing/tests/swapi/l0_data/imap_swapi_l0_raw_20231012_v001.pkts +0 -0
  310. imap_processing/tests/swapi/l0_validation_data/__init__.py +0 -0
  311. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_AUT_20231012_125245.csv +124 -0
  312. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_HK_20231012_125245.csv +98 -0
  313. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_MG_20231012_125245.csv +9 -0
  314. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_SCI_20231012_125245.csv +72 -0
  315. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_AUT_20231012_125245.csv +124 -0
  316. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_HK_20231012_125245.csv +98 -0
  317. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_MG_20231012_125245.csv +9 -0
  318. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_SCI_20231012_125245.csv +72 -0
  319. imap_processing/tests/swapi/test_swapi_decom.py +135 -0
  320. imap_processing/tests/swapi/test_swapi_l1.py +354 -0
  321. imap_processing/tests/swapi/test_swapi_l2.py +21 -0
  322. imap_processing/tests/swe/__init__.py +0 -0
  323. imap_processing/tests/swe/conftest.py +35 -0
  324. imap_processing/tests/swe/decompressed/20230927173238_4th_quarter_decompressed.csv +181 -0
  325. imap_processing/tests/swe/decompressed/20230927173253_1st_quarter_decompressed.csv +181 -0
  326. imap_processing/tests/swe/decompressed/20230927173308_2nd_quarter_decompressed.csv +181 -0
  327. imap_processing/tests/swe/decompressed/20230927173323_3rd_quarter_decompressed.csv +181 -0
  328. imap_processing/tests/swe/l0_data/2024051010_SWE_SCIENCE_packet.bin +0 -0
  329. imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_SCIENCE_20240510_092742.csv +544 -0
  330. imap_processing/tests/swe/l0_validation_data/idle_export_raw.SWE_SCIENCE_20240510_092742.csv +363 -0
  331. imap_processing/tests/swe/test_swe_l1a.py +12 -0
  332. imap_processing/tests/swe/test_swe_l1a_science.py +129 -0
  333. imap_processing/tests/swe/test_swe_l1b.py +61 -0
  334. imap_processing/tests/swe/test_swe_l1b_science.py +65 -0
  335. imap_processing/tests/test_cli.py +229 -0
  336. imap_processing/tests/test_decom.py +66 -0
  337. imap_processing/tests/test_quality_flags.py +71 -0
  338. imap_processing/tests/test_utils.py +107 -0
  339. imap_processing/tests/ultra/__init__.py +0 -0
  340. imap_processing/tests/ultra/test_data/l0/FM45_40P_Phi28p5_BeamCal_LinearScan_phi28.50_theta-0.00_20240207T102740.CCSDS +0 -0
  341. imap_processing/tests/ultra/test_data/l0/FM45_7P_Phi0.0_BeamCal_LinearScan_phi0.04_theta-0.01_20230821T121304.CCSDS +0 -0
  342. imap_processing/tests/ultra/test_data/l0/FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.CCSDS +0 -0
  343. imap_processing/tests/ultra/test_data/l0/Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.CCSDS +0 -0
  344. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_auxdata_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +24 -0
  345. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_enaphxtofhangimg_FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.csv +105 -0
  346. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultraimgrates_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +24 -0
  347. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimg_withFSWcalcs_FM45_40P_Phi28p5_BeamCal_LinearScan_phi2850_theta-000_20240207T102740.csv +3314 -0
  348. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimgevent_FM45_7P_Phi00_BeamCal_LinearScan_phi004_theta-001_20230821T121304.csv +702 -0
  349. imap_processing/tests/ultra/unit/__init__.py +0 -0
  350. imap_processing/tests/ultra/unit/conftest.py +210 -0
  351. imap_processing/tests/ultra/unit/test_decom_apid_880.py +98 -0
  352. imap_processing/tests/ultra/unit/test_decom_apid_881.py +50 -0
  353. imap_processing/tests/ultra/unit/test_decom_apid_883.py +44 -0
  354. imap_processing/tests/ultra/unit/test_decom_apid_896.py +104 -0
  355. imap_processing/tests/ultra/unit/test_lookup_utils.py +68 -0
  356. imap_processing/tests/ultra/unit/test_ultra_l1a.py +338 -0
  357. imap_processing/tests/ultra/unit/test_ultra_l1b.py +122 -0
  358. imap_processing/tests/ultra/unit/test_ultra_l1b_annotated.py +57 -0
  359. imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py +342 -0
  360. imap_processing/tests/ultra/unit/test_ultra_l1c.py +104 -0
  361. imap_processing/tests/ultra/unit/test_ultra_l1c_pset_bins.py +35 -0
  362. imap_processing/ultra/__init__.py +1 -0
  363. imap_processing/ultra/constants.py +60 -0
  364. imap_processing/ultra/l0/__init__.py +0 -0
  365. imap_processing/ultra/l0/decom_tools.py +281 -0
  366. imap_processing/ultra/l0/decom_ultra.py +278 -0
  367. imap_processing/ultra/l0/ultra_utils.py +326 -0
  368. imap_processing/ultra/l1a/__init__.py +0 -0
  369. imap_processing/ultra/l1a/ultra_l1a.py +319 -0
  370. imap_processing/ultra/l1b/badtimes.py +26 -0
  371. imap_processing/ultra/l1b/cullingmask.py +26 -0
  372. imap_processing/ultra/l1b/de.py +59 -0
  373. imap_processing/ultra/l1b/extendedspin.py +45 -0
  374. imap_processing/ultra/l1b/lookup_utils.py +165 -0
  375. imap_processing/ultra/l1b/ultra_l1b.py +65 -0
  376. imap_processing/ultra/l1b/ultra_l1b_annotated.py +54 -0
  377. imap_processing/ultra/l1b/ultra_l1b_extended.py +764 -0
  378. imap_processing/ultra/l1c/histogram.py +36 -0
  379. imap_processing/ultra/l1c/pset.py +36 -0
  380. imap_processing/ultra/l1c/ultra_l1c.py +52 -0
  381. imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +54 -0
  382. imap_processing/ultra/lookup_tables/EgyNorm.mem.csv +32769 -0
  383. imap_processing/ultra/lookup_tables/FM45_Startup1_ULTRA_IMGPARAMS_20240719.csv +2 -0
  384. imap_processing/ultra/lookup_tables/ultra45_back-pos-luts.csv +4097 -0
  385. imap_processing/ultra/lookup_tables/ultra45_tdc_norm.csv +2050 -0
  386. imap_processing/ultra/lookup_tables/ultra90_back-pos-luts.csv +4097 -0
  387. imap_processing/ultra/lookup_tables/ultra90_tdc_norm.csv +2050 -0
  388. imap_processing/ultra/lookup_tables/yadjust.csv +257 -0
  389. imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +547 -0
  390. imap_processing/ultra/packet_definitions/__init__.py +0 -0
  391. imap_processing/ultra/utils/__init__.py +0 -0
  392. imap_processing/ultra/utils/ultra_l1_utils.py +50 -0
  393. imap_processing/utils.py +413 -0
  394. imap_processing-0.6.0.dist-info/LICENSE +21 -0
  395. imap_processing-0.6.0.dist-info/METADATA +107 -0
  396. imap_processing-0.6.0.dist-info/RECORD +398 -0
  397. imap_processing-0.6.0.dist-info/WHEEL +4 -0
  398. imap_processing-0.6.0.dist-info/entry_points.txt +4 -0
@@ -0,0 +1,1806 @@
1
+ KPL/FK
2
+
3
+ Interstellar Mapping and Acceleration Probe Frames Kernel
4
+ ========================================================================
5
+
6
+ This frames kernel contains the current set of coordinate frame
7
+ definitions for the Interstellar Mapping and Acceleration Probe
8
+ (IMAP) spacecraft, structures, and science instruments.
9
+
10
+ This kernel also contains NAIF ID/name mapping for the IMAP
11
+ instruments.
12
+
13
+
14
+ Version and Date
15
+ ========================================================================
16
+
17
+ The TEXT_KERNEL_ID stores version information of loaded project text
18
+ kernels. Each entry associated with the keyword is a string that
19
+ consists of four parts: the kernel name, version, entry date, and
20
+ type. For example, the frames kernel might have an entry as follows:
21
+
22
+
23
+ TEXT_KERNEL_ID += 'IMAP_FRAMES V1.0.0 2024-XXXX-NN FK'
24
+ | | | |
25
+ | | | |
26
+ KERNEL NAME <-------+ | | |
27
+ | | V
28
+ VERSION <------+ | KERNEL TYPE
29
+ |
30
+ V
31
+ ENTRY DATE
32
+
33
+
34
+ Interstellar Mapping and Acceleration Probe Frames Kernel Version:
35
+
36
+ \begindata
37
+
38
+ TEXT_KERNEL_ID += 'IMAP_FRAMES V1.0.0 2024-XXXX-NN FK'
39
+
40
+ \begintext
41
+
42
+ Version 1.0.0 -- XXXX NN, 2024 -- Douglas Rodgers
43
+ Lillian Nguyen
44
+ Nicholas Dutton
45
+
46
+ Initial complete release. Frame/Body codes for thrusters redefined
47
+
48
+ Version 0.0.1 -- July 9, 2021 -- Ian Wick Murphy
49
+
50
+ Modifying dart_008.tf to add basic IMAP frame components. This
51
+ includes IMAP, IMAP_THRUSTER, and CK/SCLK IDs. Also adding a place
52
+ holder for the IMAP-Lo instrument with the ID -43001 and IMAP_LO
53
+ name. Future work includes adding more detailed instrument frames,
54
+ and reaching out to mechanical for an "official" IMAP_SPACECRAFT
55
+ frame definition.
56
+
57
+
58
+ References
59
+ ========================================================================
60
+
61
+ 1. "Frames Required Reading"
62
+
63
+ 2. "Kernel Pool Required Reading"
64
+
65
+ 3. "C-Kernel Required Reading"
66
+
67
+ 4. "7516-9067: IMAP Mechanical Interface Control Document",
68
+ Johns Hopkins Applied Physics Laboratory
69
+
70
+ 5. "7516-9050: IMAP Coordinate Frame & Technical Definitions Doc.",
71
+ Johns Hopkins Applied Physics Laboratory
72
+
73
+ 6. "7516-0011: IMAP Mechanical Interface Control Drawing",
74
+ [EXPORT CONTROLLED], Johns Hopkins Applied Physics Laboratory
75
+
76
+ 7. "7523-0008: IMAP ULTRA Mechanical Interface Control Drawing",
77
+ [EXPORT CONTROLLED], Johns Hopkins Applied Physics Laboratory
78
+
79
+ 8. "058991000: IMAP SWAPI Mechanical Interface Control Drawing",
80
+ Princeton University Space Physics
81
+
82
+ 9. "GLOWS-CBK-DWG-2020-08-25-019-v4.4: IMAP GLOWS Mechanical
83
+ Interface Control Drawing", Centrum Badag Kosmicznych, Polska
84
+ Akademia Nauks
85
+
86
+ 10. Responses from IMAP instrument teams on their base frame axis
87
+ definitions, received in email.
88
+
89
+
90
+ Contact Information
91
+ ========================================================================
92
+
93
+ Douglas Rodgers, JHU/APL, Douglas.Rodgers@jhuapl.edu
94
+
95
+ Lillian Nguyen, JHU/APL, Lillian.Nguyen@jhuapl.edu
96
+
97
+ Nicholas Dutton, JHU/APL, Nicholas.Dutton@jhuapl.edu
98
+
99
+ Ian Wick Murphy, JHU/APL, Ian.Murphy@jhuapl.edu
100
+
101
+
102
+ Implementation Notes
103
+ ========================================================================
104
+
105
+ This file is used by the SPICE system as follows: programs that make
106
+ use of this frame kernel must `load' the kernel, normally during
107
+ program initialization. Loading the kernel associates the data items
108
+ with their names in a data structure called the `kernel pool'. The
109
+ SPICELIB routine FURNSH loads a kernel into the pool as shown below:
110
+
111
+ FORTRAN: (SPICELIB)
112
+
113
+ CALL FURNSH ( frame_kernel_name )
114
+
115
+ C: (CSPICE)
116
+
117
+ furnsh_c ( frame_kernel_name );
118
+
119
+ IDL: (ICY)
120
+
121
+ cspice_furnsh, frame_kernel_name
122
+
123
+ MATLAB: (MICE)
124
+
125
+ cspice_furnsh ( frame_kernel_name )
126
+
127
+ This file was created and may be updated with a text editor or word
128
+ processor.
129
+
130
+
131
+ IMAP NAIF ID Codes -- Definitions
132
+ ========================================================================
133
+
134
+ This section contains name to NAIF ID mappings for the IMAP mission.
135
+ Once the contents of this file are loaded into the KERNEL POOL, these
136
+ mappings become available within SPICE, making it possible to use
137
+ names instead of ID code in high level SPICE routine calls.
138
+
139
+ \begindata
140
+
141
+ NAIF_BODY_NAME += ( 'IMAP' )
142
+ NAIF_BODY_CODE += ( -43 )
143
+
144
+ NAIF_BODY_NAME += ( 'IMAP_SPACECRAFT' )
145
+ NAIF_BODY_CODE += ( -43000 )
146
+
147
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A1' )
148
+ NAIF_BODY_CODE += ( -43010 )
149
+
150
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A2' )
151
+ NAIF_BODY_CODE += ( -43011 )
152
+
153
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A3' )
154
+ NAIF_BODY_CODE += ( -43012 )
155
+
156
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A4' )
157
+ NAIF_BODY_CODE += ( -43013 )
158
+
159
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R1' )
160
+ NAIF_BODY_CODE += ( -43020 )
161
+
162
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R2' )
163
+ NAIF_BODY_CODE += ( -43021 )
164
+
165
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R3' )
166
+ NAIF_BODY_CODE += ( -43022 )
167
+
168
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R4' )
169
+ NAIF_BODY_CODE += ( -43023 )
170
+
171
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R5' )
172
+ NAIF_BODY_CODE += ( -43024 )
173
+
174
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R6' )
175
+ NAIF_BODY_CODE += ( -43025 )
176
+
177
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R7' )
178
+ NAIF_BODY_CODE += ( -43026 )
179
+
180
+ NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R8' )
181
+ NAIF_BODY_CODE += ( -43027 )
182
+
183
+ NAIF_BODY_NAME += ( 'IMAP_SUN_SENSOR_PZ' )
184
+ NAIF_BODY_CODE += ( -42030 )
185
+
186
+ NAIF_BODY_NAME += ( 'IMAP_SUN_SENSOR_MZ' )
187
+ NAIF_BODY_CODE += ( -42031 )
188
+
189
+ NAIF_BODY_NAME += ( 'IMAP_STAR_TRACKER_PX' )
190
+ NAIF_BODY_CODE += ( -42040 )
191
+
192
+ NAIF_BODY_NAME += ( 'IMAP_STAR_TRACKER_MX' )
193
+ NAIF_BODY_CODE += ( -42041 )
194
+
195
+ NAIF_BODY_NAME += ( 'IMAP_LOW_GAIN_ANTENNA' )
196
+ NAIF_BODY_CODE += ( -42050 )
197
+
198
+ NAIF_BODY_NAME += ( 'IMAP_MED_GAIN_ANTENNA' )
199
+ NAIF_BODY_CODE += ( -42051 )
200
+
201
+ NAIF_BODY_NAME += ( 'IMAP_NUTATION_DAMPER_01' )
202
+ NAIF_BODY_CODE += ( -42060 )
203
+
204
+ NAIF_BODY_NAME += ( 'IMAP_NUTATION_DAMPER_02' )
205
+ NAIF_BODY_CODE += ( -42061 )
206
+
207
+ NAIF_BODY_NAME += ( 'IMAP_LO_ENA_SENSOR' )
208
+ NAIF_BODY_CODE += ( -42102 )
209
+
210
+ NAIF_BODY_NAME += ( 'IMAP_LO_STAR_SENSOR' )
211
+ NAIF_BODY_CODE += ( -42103 )
212
+
213
+ NAIF_BODY_NAME += ( 'IMAP_HI_45' )
214
+ NAIF_BODY_CODE += ( -42150 )
215
+
216
+ NAIF_BODY_NAME += ( 'IMAP_HI_90' )
217
+ NAIF_BODY_CODE += ( -42175 )
218
+
219
+ NAIF_BODY_NAME += ( 'IMAP_ULTRA_45' )
220
+ NAIF_BODY_CODE += ( -42200 )
221
+
222
+ NAIF_BODY_NAME += ( 'IMAP_ULTRA_90' )
223
+ NAIF_BODY_CODE += ( -42225 )
224
+
225
+ NAIF_BODY_NAME += ( 'IMAP_MAG' )
226
+ NAIF_BODY_CODE += ( -42250 )
227
+
228
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_P63' )
229
+ NAIF_BODY_CODE += ( -42301 )
230
+
231
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_P42' )
232
+ NAIF_BODY_CODE += ( -42302 )
233
+
234
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_P21' )
235
+ NAIF_BODY_CODE += ( -42303 )
236
+
237
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_000' )
238
+ NAIF_BODY_CODE += ( -42304 )
239
+
240
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_M21' )
241
+ NAIF_BODY_CODE += ( -42305 )
242
+
243
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_M42' )
244
+ NAIF_BODY_CODE += ( -42306 )
245
+
246
+ NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_M63' )
247
+ NAIF_BODY_CODE += ( -42307 )
248
+
249
+ NAIF_BODY_NAME += ( 'IMAP_SWAPI_APERTURE_L' )
250
+ NAIF_BODY_CODE += ( -42351 )
251
+
252
+ NAIF_BODY_NAME += ( 'IMAP_SWAPI_APERTURE_R' )
253
+ NAIF_BODY_CODE += ( -42352 )
254
+
255
+ NAIF_BODY_NAME += ( 'IMAP_SWAPI_SUNGLASSES' )
256
+ NAIF_BODY_CODE += ( -42353 )
257
+
258
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_01' )
259
+ NAIF_BODY_CODE += ( -42401 )
260
+
261
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_02' )
262
+ NAIF_BODY_CODE += ( -42402 )
263
+
264
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_03' )
265
+ NAIF_BODY_CODE += ( -42403 )
266
+
267
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_04' )
268
+ NAIF_BODY_CODE += ( -42404 )
269
+
270
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_05' )
271
+ NAIF_BODY_CODE += ( -42405 )
272
+
273
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_06' )
274
+ NAIF_BODY_CODE += ( -42406 )
275
+
276
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_07' )
277
+ NAIF_BODY_CODE += ( -42407 )
278
+
279
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_08' )
280
+ NAIF_BODY_CODE += ( -42408 )
281
+
282
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_09' )
283
+ NAIF_BODY_CODE += ( -42409 )
284
+
285
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_10' )
286
+ NAIF_BODY_CODE += ( -42410 )
287
+
288
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_11' )
289
+ NAIF_BODY_CODE += ( -42411 )
290
+
291
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_12' )
292
+ NAIF_BODY_CODE += ( -42412 )
293
+
294
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_13' )
295
+ NAIF_BODY_CODE += ( -42413 )
296
+
297
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_14' )
298
+ NAIF_BODY_CODE += ( -42414 )
299
+
300
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_15' )
301
+ NAIF_BODY_CODE += ( -42415 )
302
+
303
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_16' )
304
+ NAIF_BODY_CODE += ( -42416 )
305
+
306
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_17' )
307
+ NAIF_BODY_CODE += ( -42417 )
308
+
309
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_18' )
310
+ NAIF_BODY_CODE += ( -42418 )
311
+
312
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_19' )
313
+ NAIF_BODY_CODE += ( -42419 )
314
+
315
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_20' )
316
+ NAIF_BODY_CODE += ( -42420 )
317
+
318
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_21' )
319
+ NAIF_BODY_CODE += ( -42421 )
320
+
321
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_22' )
322
+ NAIF_BODY_CODE += ( -42422 )
323
+
324
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_23' )
325
+ NAIF_BODY_CODE += ( -42423 )
326
+
327
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_24' )
328
+ NAIF_BODY_CODE += ( -42424 )
329
+
330
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_01' )
331
+ NAIF_BODY_CODE += ( -42425 )
332
+
333
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_02' )
334
+ NAIF_BODY_CODE += ( -42426 )
335
+
336
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_03' )
337
+ NAIF_BODY_CODE += ( -42427 )
338
+
339
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_04' )
340
+ NAIF_BODY_CODE += ( -42428 )
341
+
342
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_05' )
343
+ NAIF_BODY_CODE += ( -42429 )
344
+
345
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_06' )
346
+ NAIF_BODY_CODE += ( -42430 )
347
+
348
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_07' )
349
+ NAIF_BODY_CODE += ( -42431 )
350
+
351
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_08' )
352
+ NAIF_BODY_CODE += ( -42432 )
353
+
354
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_09' )
355
+ NAIF_BODY_CODE += ( -42433 )
356
+
357
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_10' )
358
+ NAIF_BODY_CODE += ( -42434 )
359
+
360
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_11' )
361
+ NAIF_BODY_CODE += ( -42435 )
362
+
363
+ NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_12' )
364
+ NAIF_BODY_CODE += ( -42436 )
365
+
366
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_01' )
367
+ NAIF_BODY_CODE += ( -42501 )
368
+
369
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_02' )
370
+ NAIF_BODY_CODE += ( -42502 )
371
+
372
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_03' )
373
+ NAIF_BODY_CODE += ( -42503 )
374
+
375
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_04' )
376
+ NAIF_BODY_CODE += ( -42504 )
377
+
378
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_05' )
379
+ NAIF_BODY_CODE += ( -42505 )
380
+
381
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_06' )
382
+ NAIF_BODY_CODE += ( -42506 )
383
+
384
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_07' )
385
+ NAIF_BODY_CODE += ( -42507 )
386
+
387
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_08' )
388
+ NAIF_BODY_CODE += ( -42508 )
389
+
390
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_09' )
391
+ NAIF_BODY_CODE += ( -42509 )
392
+
393
+ NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_10' )
394
+ NAIF_BODY_CODE += ( -42510 )
395
+
396
+ NAIF_BODY_NAME += ( 'IMAP_IDEX_DETECTOR' )
397
+ NAIF_BODY_CODE += ( -42701 )
398
+
399
+ NAIF_BODY_NAME += ( 'IMAP_IDEX_FULL_SCIENCE' )
400
+ NAIF_BODY_CODE += ( -42702 )
401
+
402
+ NAIF_BODY_NAME += ( 'IMAP_GLOWS' )
403
+ NAIF_BODY_CODE += ( -42750 )
404
+
405
+ \begintext
406
+
407
+
408
+ IMAP NAIF ID Codes -- Definitions
409
+ ========================================================================
410
+
411
+ The ID codes -43900 to -43999 have been reserved for the IMAP dynamic
412
+ frames kernel and are not utilized in this file.
413
+
414
+ The following frames are defined in this kernel file:
415
+
416
+ Frame Name Relative To Type NAIF ID
417
+ ========================== =============== ======= =======
418
+
419
+ Spacecraft (000-099)
420
+ --------------------------
421
+ IMAP_SPACECRAFT J2000 CK -43000
422
+ IMAP_THRUSTER_A1 IMAP_SPACECRAFT FIXED -43010
423
+ IMAP_THRUSTER_A2 IMAP_SPACECRAFT FIXED -43011
424
+ IMAP_THRUSTER_A3 IMAP_SPACECRAFT FIXED -43012
425
+ IMAP_THRUSTER_A4 IMAP_SPACECRAFT FIXED -43013
426
+ IMAP_THRUSTER_R1 IMAP_SPACECRAFT FIXED -43020
427
+ IMAP_THRUSTER_R2 IMAP_SPACECRAFT FIXED -43021
428
+ IMAP_THRUSTER_R3 IMAP_SPACECRAFT FIXED -43022
429
+ IMAP_THRUSTER_R4 IMAP_SPACECRAFT FIXED -43023
430
+ IMAP_THRUSTER_R5 IMAP_SPACECRAFT FIXED -43024
431
+ IMAP_THRUSTER_R6 IMAP_SPACECRAFT FIXED -43025
432
+ IMAP_THRUSTER_R7 IMAP_SPACECRAFT FIXED -43026
433
+ IMAP_THRUSTER_R8 IMAP_SPACECRAFT FIXED -43027
434
+ IMAP_SUN_SENSOR_PZ IMAP_SPACECRAFT FIXED -42030
435
+ IMAP_SUN_SENSOR_MZ IMAP_SPACECRAFT FIXED -42031
436
+ IMAP_STAR_TRACKER_PX IMAP_SPACECRAFT FIXED -42040
437
+ IMAP_STAR_TRACKER_MX IMAP_SPACECRAFT FIXED -42041
438
+ IMAP_LOW_GAIN_ANTENNA IMAP_SPACECRAFT FIXED -42050
439
+ IMAP_MED_GAIN_ANTENNA IMAP_SPACECRAFT FIXED -42051
440
+ IMAP_NUTATION_DAMPER_01 IMAP_SPACECRAFT FIXED -42060
441
+ IMAP_NUTATION_DAMPER_02 IMAP_SPACECRAFT FIXED -42061
442
+
443
+ IMAP-Lo (100-149)
444
+ --------------------------
445
+ IMAP_LO_BASE IMAP_SPACECRAFT FIXED -42100
446
+ IMAP_LO_PIVOT IMAP_LO_BASE CK -42101
447
+ IMAP_LO_ENA_SENSOR IMAP_LO_PIVOT FIXED -42102
448
+ IMAP_LO_STAR_SENSOR IMAP_LO_PIVOT FIXED -42103
449
+
450
+ IMAP-Hi (150-199)
451
+ --------------------------
452
+ IMAP_HI_45 IMAP_SPACECRAFT FIXED -42150
453
+ IMAP_HI_90 IMAP_SPACECRAFT FIXED -42175
454
+
455
+ IMAP-Ultra (200-249)
456
+ --------------------------
457
+ IMAP_ULTRA_45 IMAP_SPACECRAFT FIXED -42200
458
+ IMAP_ULTRA_90 IMAP_SPACECRAFT FIXED -42225
459
+
460
+ MAG (250-299)
461
+ --------------------------
462
+ IMAP_MAG IMAP_SPACECRAFT FIXED -42250
463
+
464
+ SWE (300-349)
465
+ --------------------------
466
+ IMAP_SWE IMAP_SPACECRAFT FIXED -42300
467
+ IMAP_SWE_DETECTOR_P63 IMAP_SWE FIXED -42301
468
+ IMAP_SWE_DETECTOR_P42 IMAP_SWE FIXED -42302
469
+ IMAP_SWE_DETECTOR_P21 IMAP_SWE FIXED -42303
470
+ IMAP_SWE_DETECTOR_000 IMAP_SWE FIXED -42304
471
+ IMAP_SWE_DETECTOR_M21 IMAP_SWE FIXED -42305
472
+ IMAP_SWE_DETECTOR_M42 IMAP_SWE FIXED -42306
473
+ IMAP_SWE_DETECTOR_M63 IMAP_SWE FIXED -42307
474
+
475
+ SWAPI (350-399)
476
+ --------------------------
477
+ IMAP_SWAPI IMAP_SPACECRAFT FIXED -42350
478
+ IMAP_SWAPI_APERTURE_L IMAP_SWAPI FIXED -42351
479
+ IMAP_SWAPI_APERTURE_R IMAP_SWAPI FIXED -42352
480
+ IMAP_SWAPI_SUNGLASSES IMAP_SWAPI FIXED -42353
481
+
482
+ CODICE (400-499)
483
+ --------------------------
484
+ IMAP_CODICE IMAP_SPACECRAFT FIXED -42400
485
+ IMAP_CODICE_LO_APERTURE_01 IMAP_CODICE FIXED -42401
486
+ IMAP_CODICE_LO_APERTURE_02 IMAP_CODICE FIXED -42402
487
+ IMAP_CODICE_LO_APERTURE_03 IMAP_CODICE FIXED -42403
488
+ IMAP_CODICE_LO_APERTURE_04 IMAP_CODICE FIXED -42404
489
+ IMAP_CODICE_LO_APERTURE_05 IMAP_CODICE FIXED -42405
490
+ IMAP_CODICE_LO_APERTURE_06 IMAP_CODICE FIXED -42406
491
+ IMAP_CODICE_LO_APERTURE_07 IMAP_CODICE FIXED -42407
492
+ IMAP_CODICE_LO_APERTURE_08 IMAP_CODICE FIXED -42408
493
+ IMAP_CODICE_LO_APERTURE_09 IMAP_CODICE FIXED -42409
494
+ IMAP_CODICE_LO_APERTURE_10 IMAP_CODICE FIXED -42410
495
+ IMAP_CODICE_LO_APERTURE_11 IMAP_CODICE FIXED -42411
496
+ IMAP_CODICE_LO_APERTURE_12 IMAP_CODICE FIXED -42412
497
+ IMAP_CODICE_LO_APERTURE_13 IMAP_CODICE FIXED -42413
498
+ IMAP_CODICE_LO_APERTURE_14 IMAP_CODICE FIXED -42414
499
+ IMAP_CODICE_LO_APERTURE_15 IMAP_CODICE FIXED -42415
500
+ IMAP_CODICE_LO_APERTURE_16 IMAP_CODICE FIXED -42416
501
+ IMAP_CODICE_LO_APERTURE_17 IMAP_CODICE FIXED -42417
502
+ IMAP_CODICE_LO_APERTURE_18 IMAP_CODICE FIXED -42418
503
+ IMAP_CODICE_LO_APERTURE_19 IMAP_CODICE FIXED -42419
504
+ IMAP_CODICE_LO_APERTURE_20 IMAP_CODICE FIXED -42420
505
+ IMAP_CODICE_LO_APERTURE_21 IMAP_CODICE FIXED -42421
506
+ IMAP_CODICE_LO_APERTURE_22 IMAP_CODICE FIXED -42422
507
+ IMAP_CODICE_LO_APERTURE_23 IMAP_CODICE FIXED -42423
508
+ IMAP_CODICE_LO_APERTURE_24 IMAP_CODICE FIXED -42424
509
+ IMAP_CODICE_HI_APERTURE_01 IMAP_CODICE FIXED -42425
510
+ IMAP_CODICE_HI_APERTURE_02 IMAP_CODICE FIXED -42426
511
+ IMAP_CODICE_HI_APERTURE_03 IMAP_CODICE FIXED -42427
512
+ IMAP_CODICE_HI_APERTURE_04 IMAP_CODICE FIXED -42428
513
+ IMAP_CODICE_HI_APERTURE_05 IMAP_CODICE FIXED -42429
514
+ IMAP_CODICE_HI_APERTURE_06 IMAP_CODICE FIXED -42430
515
+ IMAP_CODICE_HI_APERTURE_07 IMAP_CODICE FIXED -42431
516
+ IMAP_CODICE_HI_APERTURE_08 IMAP_CODICE FIXED -42432
517
+ IMAP_CODICE_HI_APERTURE_09 IMAP_CODICE FIXED -42433
518
+ IMAP_CODICE_HI_APERTURE_10 IMAP_CODICE FIXED -42434
519
+ IMAP_CODICE_HI_APERTURE_11 IMAP_CODICE FIXED -42435
520
+ IMAP_CODICE_HI_APERTURE_12 IMAP_CODICE FIXED -42436
521
+
522
+ HIT (500-699)
523
+ --------------------------
524
+ IMAP_HIT IMAP_SPACECRAFT FIXED -42500
525
+ IMAP_HIT_L1_APERTURE_01 IMAP_HIT FIXED -42501
526
+ IMAP_HIT_L1_APERTURE_02 IMAP_HIT FIXED -42502
527
+ IMAP_HIT_L1_APERTURE_03 IMAP_HIT FIXED -42503
528
+ IMAP_HIT_L1_APERTURE_04 IMAP_HIT FIXED -42504
529
+ IMAP_HIT_L1_APERTURE_05 IMAP_HIT FIXED -42505
530
+ IMAP_HIT_L1_APERTURE_06 IMAP_HIT FIXED -42506
531
+ IMAP_HIT_L1_APERTURE_07 IMAP_HIT FIXED -42507
532
+ IMAP_HIT_L1_APERTURE_08 IMAP_HIT FIXED -42508
533
+ IMAP_HIT_L1_APERTURE_09 IMAP_HIT FIXED -42509
534
+ IMAP_HIT_L1_APERTURE_10 IMAP_HIT FIXED -42510
535
+
536
+ IDEX (700-749)
537
+ --------------------------
538
+ IMAP_IDEX IMAP_SPACECRAFT FIXED -42700
539
+ IMAP_IDEX_DETECTOR IMAP_IDEX FIXED -42701
540
+ IMAP_IDEX_FULL_SCIENCE IMAP_IDEX FIXED -42702
541
+
542
+ GLOWS (750-799)
543
+ --------------------------
544
+ IMAP_GLOWS IMAP_SPACECRAFT FIXED -42750
545
+
546
+
547
+ IMAP Frame Tree
548
+ ========================================================================
549
+
550
+ The diagram below illustrates the IMAP frame hierarchy:
551
+
552
+ J2000
553
+ |
554
+ |<---ck
555
+ |
556
+ IMAP_SPACECRAFT
557
+ |
558
+ IMAP_THRUSTER_A1
559
+ |
560
+ |...
561
+ |
562
+ IMAP_THRUSTER_A4
563
+ |
564
+ IMAP_THRUSTER_R1
565
+ |
566
+ |...
567
+ |
568
+ IMAP_THRUSTER_R8
569
+ |
570
+ IMAP_SUN_SENSOR_PZ
571
+ |
572
+ IMAP_SUN_SENSOR_MZ
573
+ |
574
+ IMAP_STAR_TRACKER_PX
575
+ |
576
+ IMAP_STAR_TRACKER_MX
577
+ |
578
+ IMAP_LOW_GAIN_ANTENNA
579
+ |
580
+ IMAP_MED_GAIN_ANTENNA
581
+ |
582
+ IMAP_NUTATION_DAMPER_01
583
+ |
584
+ IMAP_NUTATION_DAMPER_02
585
+ |
586
+ IMAP_LO_BASE
587
+ | |
588
+ | |<---ck
589
+ | |
590
+ | IMAP_LO_PIVOT
591
+ | |
592
+ | IMAP_LO_ENA_SENSOR
593
+ | |
594
+ | IMAP_LO_STAR_SENSOR
595
+ |
596
+ IMAP_HI_45
597
+ |
598
+ IMAP_HI_90
599
+ |
600
+ IMAP_ULTRA_45
601
+ |
602
+ IMAP_ULTRA_90
603
+ |
604
+ IMAP_MAG
605
+ |
606
+ IMAP_SWE
607
+ | |
608
+ | IMAP_SWE_DETECTOR_P63
609
+ | |
610
+ | IMAP_SWE_DETECTOR_P42
611
+ | |
612
+ | IMAP_SWE_DETECTOR_P21
613
+ | |
614
+ | IMAP_SWE_DETECTOR_000
615
+ | |
616
+ | IMAP_SWE_DETECTOR_M21
617
+ | |
618
+ | IMAP_SWE_DETECTOR_M42
619
+ | |
620
+ | IMAP_SWE_DETECTOR_M63
621
+ |
622
+ IMAP_SWAPI
623
+ | |
624
+ | IMAP_SWAPI_APERTURE_L
625
+ | |
626
+ | IMAP_SWAPI_APERTURE_R
627
+ | |
628
+ | IMAP_SWAPI_SUNGLASSES
629
+ |
630
+ IMAP_CODICE
631
+ | |
632
+ | IMAP_CODICE_LO_APERTURE_01
633
+ | |
634
+ | |...
635
+ | |
636
+ | IMAP_CODICE_LO_APERTURE_24
637
+ | |
638
+ | IMAP_CODICE_HI_APERTURE_01
639
+ | |
640
+ | |...
641
+ | |
642
+ | IMAP_CODICE_HI_APERTURE_12
643
+ |
644
+ IMAP_HIT
645
+ | |
646
+ | IMAP_HIT_L1_APERTURE_01
647
+ | |
648
+ | |...
649
+ | |
650
+ | IMAP_HIT_L1_APERTURE_10
651
+ |
652
+ IMAP_IDEX
653
+ | |
654
+ | IMAP_IDEX_DETECTOR
655
+ | |
656
+ | IMAP_IDEX_FULL_SCIENCE
657
+ |
658
+ IMAP_GLOWS
659
+
660
+
661
+ IMAP Spacecraft Frame
662
+ ========================================================================
663
+
664
+ The orientation of the spacecraft body frame with respect to an
665
+ inertial frame, J2000 for IMAP, is provided by a C-kernel (see [3]
666
+ for details).
667
+
668
+ The spacecraft coordinate frames are defined by the IMAP control
669
+ documents (see [4,5], NB, figure 2.2). There are two frames described
670
+ there: Observatory Mechanical Design Reference Frame (most relevant)
671
+ and Observatory Pointing and Dynamics Reference Frame (less relevant
672
+ for this frame kernel).
673
+
674
+
675
+ Observatory Mechanical Design Reference Frame (IMAP_SPACECRAFT)
676
+ ---------------------------------------------------------------------
677
+
678
+ If not explicitly stated, references to 'spacecraft mechanical frame'
679
+ 'spacecraft frame', or 'S/C frame' will refer to this frame.
680
+
681
+ All instruments and component placements and orientations are defined
682
+ using this coordinate frame reference.
683
+
684
+ Origin: Center of the launch vehicle adapter ring at the
685
+ observatory/launch vehicle interface plane
686
+
687
+ +Z axis: Perpendicular to the launch vehicle interface plane pointed
688
+ in the direction of the top deck (runs through the center
689
+ of the central cylinder structure element)
690
+
691
+ +Y axis: Direction of the vector orthogonal to the +Z axis and
692
+ parallel to the deployed MAG boom
693
+
694
+ +X axis: The third orthogonal axis defined using an X, Y, Z ordered
695
+ right hand rule
696
+
697
+ NB: The Observatory Pointing and Dynamics Reference Frame is also
698
+ defined in [5]. It is identical to the observatory mechanical design
699
+ reference frame, but with the origin translated to the observatory
700
+ center of mass (which changes with boom deployment and fuel usage).
701
+ The offset difference between the mechanical and dynamic frame is
702
+ within the uncertainty range of the ephemeris, so the mechanical
703
+ design frame is used here for definiteness.
704
+
705
+ Three different views [5,6] of the spacecraft with labeled components
706
+ are presented below for illustrative purposes.
707
+
708
+
709
+ IMAP -Z Bottom View (Figure 3-2 in [5], G-G in [6] rotated 180°)
710
+ ---------------------------------------------------------------------
711
+ ---------
712
+ | +X axis | --------------------
713
+ --------- | +Z axis facing Sun |
714
+ . | into page |
715
+ /|\ --------------------
716
+ |
717
+ |
718
+ |
719
+ _
720
+ HI 45 /`~~__HI 90 `+ direction of
721
+ , = .^ - /_ ``-. '. positive
722
+ .+ + `^~/ ./ ~ rotation
723
+ ^ + + . -- ' `` \ _-~ \
724
+ _ / ',= ' \~'` \ IMAP \
725
+ ULTRA /' '-_ .~ ' \,.=.. \ LO \|/
726
+ 90 / ~ _,.,_ + + \ '
727
+ / ,~' +' `'+ + + \
728
+ / ~^ .' , = .'. '- ='' -`` ---------
729
+ ^/ / , = . + + \ \~'` | +Y axis |----->
730
+ | . + + + + . \ --------- ___
731
+ | | + + ' = ' | \--------------------| |
732
+ SWAPI| | ' = ', - . | /--------------------|___|
733
+ _+_: ' + + ' / MAG boom
734
+ \_ __\__ \ + + / /^*~,
735
+ + | SWE '. ' = ' .' ULTRA /
736
+ `~-' '~..,___,..~' 45 /~,*
737
+ _\ / /~,*`
738
+ * / CODICE ^*._/ *` HIT
739
+ *\ _/`. /
740
+ * / /~ _ _ ,.-^-., _ _ _ /
741
+ '=' + +
742
+ GLOWS + +
743
+ '-.,.-'
744
+ IDEX
745
+
746
+
747
+ IMAP +X Side View (F-F in [6])
748
+ ---------------------------------------------------------------------
749
+ ---------
750
+ | +Z axis |
751
+ --------- ---------------------
752
+ . | +X axis out of page |
753
+ /|\ ---------------------
754
+ | LGA
755
+ __________________|______|^|_________ ___
756
+ SWAPI|__________________|__________________|====================| |
757
+ #|-| | | .-==-, | / MAG boom '---'
758
+ #|-| {|## | | / \ | |
759
+ | {|## | |{ HI 90 }| IMAP LO|
760
+ | {|## | _.._ | \ / | _., |
761
+ | ULTRA | / \ | `-==-' | / __`',|
762
+ | 90 | \ HI 45/ | | \ \_\ ;|
763
+ | | '----` | | ~._ + |
764
+ '-------------------|----------/--------'
765
+ | | \_________O_________/ | | ---------------->
766
+ |__| ----------- /_\ ---------
767
+ STAR | S/C FRAME | MGA | +Y axis |
768
+ TRACKERS | ORIGIN | ---------
769
+ -----------
770
+
771
+
772
+ IMAP -X Side View (C-C in [6])
773
+ ---------------------------------------------------------------------
774
+ ---------
775
+ | +Z axis |
776
+ ------------------- ---------
777
+ | +X axis into page | .
778
+ ------------------- /|\
779
+ LGA |
780
+ ___ _________|^|______|__________________
781
+ | |====================|__________________|_____________ __ _|SWAPI
782
+ '---' MAG boom \ __ | | | // \ /--|#
783
+ |( )=|__|| | | \\__/ \--|#
784
+ | HIT | _|_ IDEX | CODICE |
785
+ | | ,.' | '., | |
786
+ | ____ | [ \ | / ] | SWE|
787
+ ULTRA ##',', |,.'|'.,| GLOWS (#)|
788
+ 45 ####'. + | + \\(O) |-||
789
+ '----####/----- + | + --------------'
790
+ <---------------- | | \______'-.O.-'______/ | |
791
+ --------- /_\ ----------- |__|
792
+ | +Y axis | MGA | S/C FRAME | STAR
793
+ --------- | ORIGIN | TRACKERS
794
+ -----------
795
+
796
+
797
+ IMAP Component Location and Orientation
798
+ ---------------------------------------------------------------------
799
+
800
+ Payload and subsystem component locations are specified[5,6] in the
801
+ Observatory Mechanical Design Reference Frame (described above).
802
+ Boresights are defined in azimuth and elevation (and resultant
803
+ direction cosign matrices) of these angles[6] in the same reference
804
+ frame. The azimuth and elevation angle diagram is provided below.
805
+
806
+ In general, descriptions in this kernel treat the +Z direction as
807
+ "up" and the -Z direction as "down." Locations referred to as "above"
808
+ are generally closer to the Sun, and vice versa for "below." The
809
+ "upper" side of the spacecraft is the plane of the solar panels,
810
+ while the "lower" side may refer to the area near the adapter ring.
811
+ If ambiguity could arise, more thorough descriptions will be used.
812
+
813
+
814
+ Toward Sun
815
+
816
+ +Z axis
817
+ .
818
+ |
819
+ .
820
+ |
821
+ . Component
822
+ | Location/
823
+ . Orientation
824
+ | @
825
+ Toward . .'|
826
+ MAG | +` |
827
+ .~ '` Boom S/C . .` \ |
828
+ .~ '` FRAME |.` : |
829
+ / ~'` ORIGIN O | |
830
+ *--- .~ '` \ Elevation
831
+ .~ '` \ | |
832
+ .~ '` \ ; |~
833
+ .~ '\ \ / | ^~
834
+ +Y axis \ \ + | ^~
835
+ '. '~, \ | ^~
836
+ '~ Azimuth \ | ^~
837
+ '~. `^~-> \| -X axis
838
+ ' ~ ., _ _ ,.~
839
+ ``'``
840
+
841
+
842
+ \begindata
843
+
844
+ FRAME_IMAP_SPACECRAFT = -43000
845
+ FRAME_-43000_NAME = 'IMAP_SPACECRAFT'
846
+ FRAME_-43000_CLASS = 3
847
+ FRAME_-43000_CLASS_ID = -43000
848
+ FRAME_-43000_CENTER = -43
849
+ CK_-43000_SCLK = -43
850
+ CK_-43000_SPK = -43
851
+
852
+ \begintext
853
+
854
+
855
+ IMAP Thruster Frames
856
+ ========================================================================
857
+
858
+ There are four axial (A) thrusters and eight radial (R) thrusters on
859
+ IMAP[6]. The table below shows the thruster positions defined in the
860
+ spacecraft frame[6], at the intersection of the thrust axis and the
861
+ nozzle exit plane. The unit direction vectors listed in the table
862
+ below point in the direction of the thruster exhaust. The positional
863
+ information is captured in the IMAP structure SPK, while the
864
+ orientation information is captured here.
865
+
866
+
867
+ Thruster ID X (mm) Y (mm) Z (mm) UnitDir (X,Y,Z)
868
+ ---------------- ------ -------- -------- ------- ---------------
869
+ IMAP_THRUSTER_A1 -43010 1007.28 516.50 1312.40 ( 0, 0, 1 )
870
+ IMAP_THRUSTER_A2 -43011 -1007.28 -516.50 1312.40 ( 0, 0, 1 )
871
+ IMAP_THRUSTER_A3 -43012 -1007.28 -516.50 101.77 ( 0, 0, -1 )
872
+ IMAP_THRUSTER_A4 -43013 1007.28 516.50 101.77 ( 0, 0, -1 )
873
+ IMAP_THRUSTER_R1 -43020 -126.90 1237.78 841.12 (-0.5, 0.866,0)
874
+ IMAP_THRUSTER_R2 -43021 126.90 -1237.78 841.12 ( 0.5,-0.866,0)
875
+ IMAP_THRUSTER_R3 -43022 -1008.49 728.79 841.12 (-0.5, 0.866,0)
876
+ IMAP_THRUSTER_R4 -43023 1008.49 -728.79 841.12 ( 0.5,-0.866,0)
877
+ IMAP_THRUSTER_R5 -43024 -126.90 1237.78 447.42 (-0.5, 0.866,0)
878
+ IMAP_THRUSTER_R6 -43025 126.90 -1237.78 447.42 ( 0.5,-0.866,0)
879
+ IMAP_THRUSTER_R7 -43026 -1008.49 728.79 447.42 (-0.5, 0.866,0)
880
+ IMAP_THRUSTER_R8 -43027 1008.49 -728.79 447.42 ( 0.5,-0.866,0)
881
+
882
+
883
+ Thruster Locations and Directions
884
+ ---------------------------------------------------------------------
885
+
886
+ The four axial thrusters[6] are directed along the spacecraft Z axis,
887
+ with A1,A2 located on the +Z side of the spacecraft and A3,A4 located
888
+ on the -Z side. A1,A2 fire in the +Z direction, while A3,A4 fire in
889
+ the -Z direction. A1 and A4 are aligned in the Z direction, while
890
+ A2 and A3 are aligned but on the opposite side of the S/C as A1/A4.
891
+
892
+ The eight radial thrusters[6] are grouped into four pairs (R1/R5,
893
+ R2/R6, R3/R7, R4/R8); each pair is aligned along the Z direction and
894
+ fire in the same direction. There are two distinct firing directions,
895
+ all perpendicular to the spacecraft Z axis: R1/R5 & R3/R7 fire toward
896
+ the +Y direction (with a slight -X component), while R2/R6 & R4/R8
897
+ fire in the -Y direction (with a slight +X component). Thrusters
898
+ R1-R4 are located above the center of mass (towards the Sun), while
899
+ thrusters R5-R8 are located below the center of mass (away from the
900
+ Sun). The table below shows the azimuth of location and direction of
901
+ radial thrusters calculated from using thruster table above.
902
+
903
+
904
+ Location Azim Direction Azim
905
+ -------------- --------------
906
+ R1/R5 5.85° 30.0°
907
+ R2/R6 180° + 5.85° 180° + 30.0°
908
+ R3/R7 54.15° 30.0°
909
+ R4/R8 180° + 54.15° 180° + 30.0°
910
+
911
+
912
+ +X axis +Z axis facing Sun
913
+ . into page
914
+ /|\
915
+ |
916
+ |
917
+ | A1 (on +Z side)
918
+ A4 (on -Z side)
919
+ R4/R8 Dir /`~~__ /
920
+ '~._ , = .^ - /_ ``-. /
921
+ /~._ .+ + `^~/ .\/
922
+ 30°| '~. + . -- ' `` @\ _-~
923
+ - - + - - - -# R4/R8 \~'` \
924
+ /' '-_ . \,.=.. \
925
+ / ~ _,.,_ + + \
926
+ R2/R6 Dir / ,~' +' `'+ + + \
927
+ '~._ / ~^ .' , = .'. '- ='' -``
928
+ /~._ ^/ / , = . + + \ \~'`
929
+ 30°| '~. | . + + + + . \ +Y axis ----->
930
+ - - + - - - -|# R2/R6 | + + ' = ' | \
931
+ | | ' = ', - . | R1/R5 #._- - - - - + - -
932
+ _+_: ' + + ' / '~._ |
933
+ \_ __\__ \ + + / /^*~, '~._ / 30°
934
+ + | \ '. ' = ' .' / / '~.
935
+ `~-' '~..,___,..~' / /~,* R1/R5 Dir
936
+ _\ / /~,*`
937
+ * / \ ^*._/ *`
938
+ *\ _/`. R3/R7 #/._- - - - - + - -
939
+ * / /\@_ _ ,.-^-., _ _ _ / '~._ |
940
+ '=' | + + '~._ / 30°
941
+ | + + '~.
942
+ | '-.,.-' R3/R7 Dir
943
+ |
944
+ A2 (on +Z side)
945
+ A3 (on -Z side)
946
+
947
+
948
+ Axial Thruster Frames
949
+ ---------------------------------------------------------------------
950
+
951
+ Each axial thruster has a frame defined so that the thruster exhaust
952
+ exits in the +Z' direction. The +Y' axis is chosen to lie in the
953
+ direction of the MAG boom. X' = Y' x Z' completes the frame.
954
+
955
+ [X] [ 1 0 0 ] [X']
956
+ [Y] = [ 0 1 0 ] [Y']
957
+ [Z]S/C [ 0 0 1 ] [Z']Axial Thrusters A1,A2
958
+
959
+ [X] [ -1 0 0 ] [X']
960
+ [Y] = [ 0 1 0 ] [Y']
961
+ [Z]S/C [ 0 0 -1 ] [Z']Axial Thrusters A3,A4
962
+
963
+
964
+ Axial Thruster
965
+ Exhaust Direction
966
+
967
+ +Z' axis
968
+ |
969
+ |
970
+ _. -|- ._
971
+ ,' | ',
972
+ |, | ,|
973
+ | ' -.,_|_,.- ' |
974
+ ' '
975
+ \ /
976
+ \ /
977
+ \ /
978
+ \ /
979
+ \ / Toward
980
+ ',_,' ^~ MAG
981
+ .~ '` ^~ ^~ Boom
982
+ .~ '` ^~ ^~
983
+ .~ '` ^~ ^~
984
+ .~ '` ^~ ^~ \
985
+ +X' axis ^~ --*
986
+ ^~
987
+ ^~
988
+ +Y' axis
989
+
990
+
991
+ \begindata
992
+
993
+ FRAME_IMAP_THRUSTER_A1 = -43010
994
+ FRAME_-43010_NAME = 'IMAP_THRUSTER_A1'
995
+ FRAME_-43010_CLASS = 4
996
+ FRAME_-43010_CLASS_ID = -43010
997
+ FRAME_-43010_CENTER = -43
998
+ TKFRAME_-43010_RELATIVE = 'IMAP_SPACECRAFT'
999
+ TKFRAME_-43010_SPEC = 'MATRIX'
1000
+ TKFRAME_-43010_MATRIX = ( 1,
1001
+ 0,
1002
+ 0,
1003
+ 0,
1004
+ 1,
1005
+ 0,
1006
+ 0,
1007
+ 0,
1008
+ 1 )
1009
+
1010
+ FRAME_IMAP_THRUSTER_A2 = -43011
1011
+ FRAME_-43011_NAME = 'IMAP_THRUSTER_A2'
1012
+ FRAME_-43011_CLASS = 4
1013
+ FRAME_-43011_CLASS_ID = -43011
1014
+ FRAME_-43011_CENTER = -43
1015
+ TKFRAME_-43011_RELATIVE = 'IMAP_SPACECRAFT'
1016
+ TKFRAME_-43011_SPEC = 'MATRIX'
1017
+ TKFRAME_-43011_MATRIX = ( 1,
1018
+ 0,
1019
+ 0,
1020
+ 0,
1021
+ 1,
1022
+ 0,
1023
+ 0,
1024
+ 0,
1025
+ 1 )
1026
+
1027
+ FRAME_IMAP_THRUSTER_A3 = -43012
1028
+ FRAME_-43012_NAME = 'IMAP_THRUSTER_A3'
1029
+ FRAME_-43012_CLASS = 4
1030
+ FRAME_-43012_CLASS_ID = -43012
1031
+ FRAME_-43012_CENTER = -43
1032
+ TKFRAME_-43012_RELATIVE = 'IMAP_SPACECRAFT'
1033
+ TKFRAME_-43012_SPEC = 'MATRIX'
1034
+ TKFRAME_-43012_MATRIX = ( -1,
1035
+ 0,
1036
+ 0,
1037
+ 0,
1038
+ 1,
1039
+ 0,
1040
+ 0,
1041
+ 0,
1042
+ -1 )
1043
+
1044
+ FRAME_IMAP_THRUSTER_A4 = -43013
1045
+ FRAME_-43013_NAME = 'IMAP_THRUSTER_A4'
1046
+ FRAME_-43013_CLASS = 4
1047
+ FRAME_-43013_CLASS_ID = -43013
1048
+ FRAME_-43013_CENTER = -43
1049
+ TKFRAME_-43013_RELATIVE = 'IMAP_SPACECRAFT'
1050
+ TKFRAME_-43013_SPEC = 'MATRIX'
1051
+ TKFRAME_-43013_MATRIX = ( -1,
1052
+ 0,
1053
+ 0,
1054
+ 0,
1055
+ 1,
1056
+ 0,
1057
+ 0,
1058
+ 0,
1059
+ -1 )
1060
+
1061
+ \begintext
1062
+
1063
+
1064
+ Radial Thrusters
1065
+ ---------------------------------------------------------------------
1066
+
1067
+ Each radial thruster has a frame defined so that the thruster exhaust
1068
+ exits in the +Y' direction. The +Z' axis is chosen to lie along the
1069
+ spacecraft +Z axis (toward Sun). X' = Y' x Z' completes the frame.
1070
+
1071
+ [X] [ cos( 30) -sin( 30) 0 ] [X']
1072
+ [Y] = [ sin( 30) cos( 30) 0 ] [Y']
1073
+ [Z]S/C [ 0 0 1 ] [Z']Rad. Thrusters R1,R3,R5,R7
1074
+
1075
+ [X] [ cos(210) -sin(210) 0 ] [X']
1076
+ [Y] = [ sin(210) cos(210) 0 ] [Y']
1077
+ [Z]S/C [ 0 0 1 ] [Z']Rad. Thrusters R2,R4,R6,R8
1078
+
1079
+
1080
+ Toward Sun
1081
+
1082
+ +Z' axis
1083
+ .
1084
+ |
1085
+ .
1086
+ |
1087
+ .
1088
+ |
1089
+ .
1090
+ Radial Thruster |
1091
+ Exhaust Direction .
1092
+ |
1093
+ .~ '` .
1094
+ /.~ '` _,,~ ~ ~ ~ ~ ~ ~ ~ |
1095
+ *-- .;-. \ ~
1096
+ ,' '. ~ ^~
1097
+ ; \ ~' ^~
1098
+ | .~ '`: ~' ^~
1099
+ .~ '` | ~' ^~
1100
+ ~ '` \ ; _ ~' ^~
1101
+ +Y' axis '.,_._;-' ^~
1102
+ ^~
1103
+ -X' axis
1104
+
1105
+
1106
+ \begindata
1107
+
1108
+ FRAME_IMAP_THRUSTER_R1 = -43020
1109
+ FRAME_-43020_NAME = 'IMAP_THRUSTER_R1'
1110
+ FRAME_-43020_CLASS = 4
1111
+ FRAME_-43020_CLASS_ID = -43020
1112
+ FRAME_-43020_CENTER = -43
1113
+ TKFRAME_-43020_RELATIVE = 'IMAP_SPACECRAFT'
1114
+ TKFRAME_-43020_SPEC = 'MATRIX'
1115
+ TKFRAME_-43020_MATRIX = ( 0.86602540378443865,
1116
+ 0.50000000000000000,
1117
+ 0.00000000000000000,
1118
+ -0.50000000000000000,
1119
+ 0.86602540378443865,
1120
+ 0.00000000000000000,
1121
+ 0.00000000000000000,
1122
+ 0.00000000000000000,
1123
+ 1.00000000000000000 )
1124
+
1125
+ FRAME_IMAP_THRUSTER_R2 = -43021
1126
+ FRAME_-43021_NAME = 'IMAP_THRUSTER_R1'
1127
+ FRAME_-43021_CLASS = 4
1128
+ FRAME_-43021_CLASS_ID = -43021
1129
+ FRAME_-43021_CENTER = -43
1130
+ TKFRAME_-43021_RELATIVE = 'IMAP_SPACECRAFT'
1131
+ TKFRAME_-43021_SPEC = 'MATRIX'
1132
+ TKFRAME_-43021_MATRIX = ( -0.86602540378443865,
1133
+ -0.50000000000000000,
1134
+ 0.00000000000000000,
1135
+ 0.50000000000000000,
1136
+ -0.86602540378443865,
1137
+ 0.00000000000000000,
1138
+ 0.00000000000000000,
1139
+ 0.00000000000000000,
1140
+ 1.00000000000000000 )
1141
+
1142
+ FRAME_IMAP_THRUSTER_R3 = -43022
1143
+ FRAME_-43022_NAME = 'IMAP_THRUSTER_R3'
1144
+ FRAME_-43022_CLASS = 4
1145
+ FRAME_-43022_CLASS_ID = -43022
1146
+ FRAME_-43022_CENTER = -43
1147
+ TKFRAME_-43022_RELATIVE = 'IMAP_SPACECRAFT'
1148
+ TKFRAME_-43022_SPEC = 'MATRIX'
1149
+ TKFRAME_-43022_MATRIX = ( 0.86602540378443865,
1150
+ 0.50000000000000000,
1151
+ 0.00000000000000000,
1152
+ -0.50000000000000000,
1153
+ 0.86602540378443865,
1154
+ 0.00000000000000000,
1155
+ 0.00000000000000000,
1156
+ 0.00000000000000000,
1157
+ 1.00000000000000000 )
1158
+
1159
+ FRAME_IMAP_THRUSTER_R4 = -43023
1160
+ FRAME_-43023_NAME = 'IMAP_THRUSTER_R4'
1161
+ FRAME_-43023_CLASS = 4
1162
+ FRAME_-43023_CLASS_ID = -43023
1163
+ FRAME_-43023_CENTER = -43
1164
+ TKFRAME_-43023_RELATIVE = 'IMAP_SPACECRAFT'
1165
+ TKFRAME_-43023_SPEC = 'MATRIX'
1166
+ TKFRAME_-43023_MATRIX = ( -0.86602540378443865,
1167
+ -0.50000000000000000,
1168
+ 0.00000000000000000,
1169
+ 0.50000000000000000,
1170
+ -0.86602540378443865,
1171
+ 0.00000000000000000,
1172
+ 0.00000000000000000,
1173
+ 0.00000000000000000,
1174
+ 1.00000000000000000 )
1175
+
1176
+ FRAME_IMAP_THRUSTER_R5 = -43024
1177
+ FRAME_-43024_NAME = 'IMAP_THRUSTER_R5'
1178
+ FRAME_-43024_CLASS = 4
1179
+ FRAME_-43024_CLASS_ID = -43024
1180
+ FRAME_-43024_CENTER = -43
1181
+ TKFRAME_-43024_RELATIVE = 'IMAP_SPACECRAFT'
1182
+ TKFRAME_-43024_SPEC = 'MATRIX'
1183
+ TKFRAME_-43024_MATRIX = ( 0.86602540378443865,
1184
+ 0.50000000000000000,
1185
+ 0.00000000000000000,
1186
+ -0.50000000000000000,
1187
+ 0.86602540378443865,
1188
+ 0.00000000000000000,
1189
+ 0.00000000000000000,
1190
+ 0.00000000000000000,
1191
+ 1.00000000000000000 )
1192
+
1193
+ FRAME_IMAP_THRUSTER_R6 = -43025
1194
+ FRAME_-43025_NAME = 'IMAP_THRUSTER_R6'
1195
+ FRAME_-43025_CLASS = 4
1196
+ FRAME_-43025_CLASS_ID = -43025
1197
+ FRAME_-43025_CENTER = -43
1198
+ TKFRAME_-43025_RELATIVE = 'IMAP_SPACECRAFT'
1199
+ TKFRAME_-43025_SPEC = 'MATRIX'
1200
+ TKFRAME_-43025_MATRIX = ( -0.86602540378443865,
1201
+ -0.50000000000000000,
1202
+ 0.00000000000000000,
1203
+ 0.50000000000000000,
1204
+ -0.86602540378443865,
1205
+ 0.00000000000000000,
1206
+ 0.00000000000000000,
1207
+ 0.00000000000000000,
1208
+ 1.00000000000000000 )
1209
+
1210
+ FRAME_IMAP_THRUSTER_R7 = -43026
1211
+ FRAME_-43026_NAME = 'IMAP_THRUSTER_R7'
1212
+ FRAME_-43026_CLASS = 4
1213
+ FRAME_-43026_CLASS_ID = -43026
1214
+ FRAME_-43026_CENTER = -43
1215
+ TKFRAME_-43026_RELATIVE = 'IMAP_SPACECRAFT'
1216
+ TKFRAME_-43026_SPEC = 'MATRIX'
1217
+ TKFRAME_-43026_MATRIX = ( 0.86602540378443865,
1218
+ 0.50000000000000000,
1219
+ 0.00000000000000000,
1220
+ -0.50000000000000000,
1221
+ 0.86602540378443865,
1222
+ 0.00000000000000000,
1223
+ 0.00000000000000000,
1224
+ 0.00000000000000000,
1225
+ 1.00000000000000000 )
1226
+
1227
+ FRAME_IMAP_THRUSTER_R8 = -43027
1228
+ FRAME_-43027_NAME = 'IMAP_THRUSTER_R6'
1229
+ FRAME_-43027_CLASS = 4
1230
+ FRAME_-43027_CLASS_ID = -43027
1231
+ FRAME_-43027_CENTER = -43
1232
+ TKFRAME_-43027_RELATIVE = 'IMAP_SPACECRAFT'
1233
+ TKFRAME_-43027_SPEC = 'MATRIX'
1234
+ TKFRAME_-43027_MATRIX = ( -0.86602540378443865,
1235
+ -0.50000000000000000,
1236
+ 0.00000000000000000,
1237
+ 0.50000000000000000,
1238
+ -0.86602540378443865,
1239
+ 0.00000000000000000,
1240
+ 0.00000000000000000,
1241
+ 0.00000000000000000,
1242
+ 1.00000000000000000 )
1243
+
1244
+ \begintext
1245
+
1246
+
1247
+ IMAP Sun Sensor Frames
1248
+ ========================================================================
1249
+
1250
+ There are two digital sun sensors (DSS): one on the +Z side of the
1251
+ spacecraft pointing in +Z direction, and one on the -Z side pointing
1252
+ mostly in the radial direction with a mild tilt in the -Z direction.
1253
+ The positional information is captured in the IMAP structure SPK,
1254
+ while the orientation information is captured here.
1255
+
1256
+ Each DSS has a frame defined so that the look-direction is along the
1257
+ +Z' axis (toward Sun). The digital image rows and columns are aligned
1258
+ with the X' and Y' axes of the frame.
1259
+
1260
+ [X] [ cos(az) -sin(az) 0 ] [X']
1261
+ [Y] = [ sin(az) cos(az) 0 ] [Y']
1262
+ [Z]S/C [ 0 0 1 ] [Z']Digital Sun Sensor
1263
+
1264
+
1265
+ IMAP Star Trackers Frames
1266
+ ========================================================================
1267
+
1268
+
1269
+ IMAP Antenna Frames
1270
+ ========================================================================
1271
+
1272
+
1273
+ IMAP-Lo Frames
1274
+ ========================================================================
1275
+
1276
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1277
+ respect to an inertial
1278
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1279
+ for details).
1280
+
1281
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1282
+ frame.
1283
+
1284
+ \begindata
1285
+
1286
+ FRAME_IMAP_LO_BASE = -43100
1287
+ FRAME_-43100_NAME = 'IMAP_LO_BASE'
1288
+ FRAME_-43100_CLASS = 4
1289
+ FRAME_-43100_CLASS_ID = -43100
1290
+ FRAME_-43100_CENTER = -43
1291
+ TKFRAME_-43100_SPEC = 'MATRIX'
1292
+ TKFRAME_-43100_MATRIX = ( -0.866025,
1293
+ 0.500000,
1294
+ 0.000000,
1295
+ -0.500000,
1296
+ -0.866025,
1297
+ 0.000000,
1298
+ 0.000000,
1299
+ 0.000000,
1300
+ 1.000000 )
1301
+ TKFRAME_-43100_RELATIVE = 'IMAP_SPACECRAFT'
1302
+
1303
+ \begintext
1304
+
1305
+
1306
+ IMAP-Hi Frames
1307
+ ========================================================================
1308
+
1309
+ TODO: general discussion of Ultra.
1310
+
1311
+
1312
+ IMAP-Hi 45 Frames
1313
+ =====================================================================
1314
+
1315
+ \begindata
1316
+
1317
+ FRAME_IMAP_HI_45 = -43150
1318
+ FRAME_-43150_NAME = 'IMAP_HI_45'
1319
+ FRAME_-43150_CLASS = 4
1320
+ FRAME_-43150_CLASS_ID = -43150
1321
+ FRAME_-43150_CENTER = -43
1322
+ TKFRAME_-43150_SPEC = 'MATRIX'
1323
+ TKFRAME_-43150_MATRIX = ( 0.066987,
1324
+ -0.250000,
1325
+ 0.965926,
1326
+ 0.965926,
1327
+ 0.258819,
1328
+ 0.000000,
1329
+ -0.250000,
1330
+ 0.933013,
1331
+ 0.258819 )
1332
+ TKFRAME_-43150_RELATIVE = 'IMAP_SPACECRAFT'
1333
+
1334
+ \begintext
1335
+
1336
+
1337
+ IMAP-Hi 90 Frames
1338
+ =====================================================================
1339
+
1340
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1341
+ respect to an inertial
1342
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1343
+ for details).
1344
+
1345
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1346
+ frame.
1347
+
1348
+ \begindata
1349
+
1350
+ FRAME_IMAP_HI_90 = -43160
1351
+ FRAME_-43160_NAME = 'IMAP_HI_90'
1352
+ FRAME_-43160_CLASS = 4
1353
+ FRAME_-43160_CLASS_ID = -43160
1354
+ FRAME_-43160_CENTER = -43
1355
+ TKFRAME_-43160_SPEC = 'MATRIX'
1356
+ TKFRAME_-43160_MATRIX = ( -0.668531,
1357
+ 0.233315,
1358
+ -0.706138,
1359
+ 0.683013,
1360
+ -0.183013,
1361
+ -0.707107,
1362
+ -0.294210,
1363
+ -0.955024,
1364
+ -0.037007 )
1365
+ TKFRAME_-43160_RELATIVE = 'IMAP_SPACECRAFT'
1366
+
1367
+ \begintext
1368
+
1369
+
1370
+ IMAP-Ultra Frames
1371
+ ========================================================================
1372
+
1373
+ TODO: general discussion of Ultra.
1374
+
1375
+
1376
+ IMAP-Ultra 45 Frames
1377
+ =====================================================================
1378
+
1379
+ TODO: add diagrams
1380
+
1381
+ ULTRA-45 has the following nominal alignment to the spacecraft frame,
1382
+ reference Table 1 of [6]. The azimuth and elevation angles are
1383
+ illustrated in the 'IMAP I&T Component Placement' section near the top
1384
+ of this document.
1385
+
1386
+ azimuth | elevation
1387
+ (deg) | (deg)
1388
+ ---------+---------
1389
+ 127 | 15
1390
+
1391
+ The ULTRA-45 base frame is defined by the instrument team as follows [10]:
1392
+
1393
+ * +Z axis is the boresight (center axis of the instrument pointing
1394
+ away from the spacecraft body).
1395
+ * +X axis is along the instrument slit, in the anti-sunward direction.
1396
+
1397
+ The azimuth and elevation give the instrument boresight vector, +Z in
1398
+ the instrument frame:
1399
+
1400
+ Z = [ -sin(az) * cos(el), cos(az) * cos(el), sin(el) ]
1401
+ instr
1402
+
1403
+ The instrument +X axis is in the anti-sunward direction, towards the
1404
+ spacecraft -Z axis:
1405
+
1406
+ X = [ 0 0 -1 ]
1407
+ instr
1408
+
1409
+ Taking the cross product and normalizing, we arrive at the instrumet +Y
1410
+ axis:
1411
+ Z x X
1412
+ Y = ---------
1413
+ instr | Z x X |
1414
+
1415
+ And adjusting X:
1416
+
1417
+ Y x Z
1418
+ X = ---------
1419
+ instr | Y x Z |
1420
+
1421
+ This definition is captured in the keywords below.
1422
+
1423
+ \begindata
1424
+
1425
+ FRAME_IMAP_ULTRA_45 = -43200
1426
+ FRAME_-43200_NAME = 'IMAP_ULTRA_45'
1427
+ FRAME_-43200_CLASS = 4
1428
+ FRAME_-43200_CLASS_ID = -43200
1429
+ FRAME_-43200_CENTER = -43
1430
+ TKFRAME_-43200_SPEC = 'MATRIX'
1431
+ TKFRAME_-43200_MATRIX = ( 0.385117954958023,
1432
+ -0.593029645775782,
1433
+ -0.707106781186548,
1434
+ -0.838670567945424,
1435
+ -0.544639035015027,
1436
+ -0.000000000000000,
1437
+ -0.385117954958023,
1438
+ 0.593029645775783,
1439
+ -0.707106781186547 )
1440
+ TKFRAME_-43200_RELATIVE = 'IMAP_SPACECRAFT'
1441
+
1442
+ \begintext
1443
+
1444
+
1445
+ IMAP-Ultra 45 Frames
1446
+ =====================================================================
1447
+
1448
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1449
+ respect to an inertial
1450
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1451
+ for details).
1452
+
1453
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1454
+ frame.
1455
+
1456
+ \begindata
1457
+
1458
+ FRAME_IMAP_ULTRA_90 = -43210
1459
+ FRAME_-43210_NAME = 'IMAP_ULTRA_90'
1460
+ FRAME_-43210_CLASS = 4
1461
+ FRAME_-43210_CLASS_ID = -43210
1462
+ FRAME_-43210_CENTER = -43
1463
+ TKFRAME_-43210_SPEC = 'MATRIX'
1464
+ TKFRAME_-43210_MATRIX = ( 0.000000,
1465
+ 0.000000,
1466
+ 1.000000,
1467
+ -0.866025,
1468
+ -0.500000,
1469
+ 0.000000,
1470
+ 0.500000,
1471
+ -0.866025,
1472
+ 0.000000 )
1473
+ TKFRAME_-43210_RELATIVE = 'IMAP_SPACECRAFT'
1474
+
1475
+ \begintext
1476
+
1477
+
1478
+ IMAP Magnetometer (MAG) Frames
1479
+ ========================================================================
1480
+
1481
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1482
+ respect to an inertial
1483
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1484
+ for details).
1485
+
1486
+ Basically just maps Z-inst to Y-body
1487
+
1488
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1489
+ frame.
1490
+
1491
+ \begindata
1492
+
1493
+ FRAME_IMAP_MAG = -43250
1494
+ FRAME_-43250_NAME = 'IMAP_MAG'
1495
+ FRAME_-43250_CLASS = 4
1496
+ FRAME_-43250_CLASS_ID = -43250
1497
+ FRAME_-43250_CENTER = -43
1498
+ TKFRAME_-43250_SPEC = 'MATRIX'
1499
+ TKFRAME_-43250_MATRIX = ( 0.000000,
1500
+ -1.000000,
1501
+ 0.000000,
1502
+ -1.000000,
1503
+ 0.000000,
1504
+ 0.000000,
1505
+ 0.000000,
1506
+ 0.000000,
1507
+ -1.000000 )
1508
+ TKFRAME_-43250_RELATIVE = 'IMAP_SPACECRAFT'
1509
+
1510
+ \begintext
1511
+
1512
+
1513
+ IMAP Solar Wind Electron (SWE) Frames
1514
+ ========================================================================
1515
+
1516
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1517
+ respect to an inertial
1518
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1519
+ for details).
1520
+
1521
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1522
+ frame.
1523
+
1524
+ \begindata
1525
+
1526
+ FRAME_IMAP_SWE = -43300
1527
+ FRAME_-43300_NAME = 'IMAP_SWE'
1528
+ FRAME_-43300_CLASS = 4
1529
+ FRAME_-43300_CLASS_ID = -43300
1530
+ FRAME_-43300_CENTER = -43
1531
+ TKFRAME_-43300_SPEC = 'MATRIX'
1532
+ TKFRAME_-43300_MATRIX = ( 0.453990,
1533
+ 0.891007,
1534
+ 0.000000,
1535
+ -0.891007,
1536
+ 0.453990,
1537
+ 0.000000,
1538
+ 0.000000,
1539
+ 0.000000,
1540
+ 1.000000 )
1541
+ TKFRAME_-43300_RELATIVE = 'IMAP_SPACECRAFT'
1542
+
1543
+ \begintext
1544
+
1545
+
1546
+ IMAP Solar Wind and Pickup Ion (SWAPI) Frames
1547
+ ========================================================================
1548
+
1549
+ TODO: add diagrams
1550
+
1551
+ SWAPI has the following nominal alignment to the spacecraft frame,
1552
+ reference Table 1 of [6]. The azimuth and elevation angles are
1553
+ illustrated in the 'IMAP I&T Component Placement' section near the top
1554
+ of this document.
1555
+
1556
+ azimuth | elevation
1557
+ (deg) | (deg)
1558
+ ---------+---------
1559
+ 168 | 0
1560
+
1561
+ The SWAPI base frame is defined in the instrument MICD [8] as follows:
1562
+
1563
+ * -Z axis is the axis of symmetry of the instrument, pointing
1564
+ away from the spacecraft body.
1565
+ * +Y axis is along the aperture center, in the anti-sunward direction.
1566
+
1567
+ The azimuth and elevation give the outward axis of symmetry, -Z in the
1568
+ instrument frame:
1569
+
1570
+ -Z = -[ -sin(az) * cos(el), cos(az) * cos(el), sin(el) ]
1571
+ instr
1572
+
1573
+ The instrument +Y axis is in the sunward direction, towards the
1574
+ spacecraft +Z axis:
1575
+
1576
+ Y = [ 0 0 1 ]
1577
+ instr
1578
+
1579
+ Taking the cross product and normalizing, we arrive at the instrumet +X
1580
+ axis:
1581
+ Y x Z
1582
+ X = ---------
1583
+ instr | Y x Z |
1584
+
1585
+ And adjusting Y:
1586
+
1587
+ Z x X
1588
+ Y = ---------
1589
+ instr | Z x X |
1590
+
1591
+ This definition is captured in the keywords below.
1592
+
1593
+ \begindata
1594
+
1595
+ FRAME_IMAP_SWAPI = -43350
1596
+ FRAME_-43350_NAME = 'IMAP_SWAPI'
1597
+ FRAME_-43350_CLASS = 4
1598
+ FRAME_-43350_CLASS_ID = -43350
1599
+ FRAME_-43350_CENTER = -43
1600
+ TKFRAME_-43350_SPEC = 'MATRIX'
1601
+ TKFRAME_-43350_MATRIX = ( -0.97814760073381,
1602
+ 0.20791169081776,
1603
+ 0.00000000000000,
1604
+ 0.00000000000000,
1605
+ 0.00000000000000,
1606
+ 1.00000000000000,
1607
+ 0.20791169081776,
1608
+ 0.97814760073381,
1609
+ 0.00000000000000 )
1610
+ TKFRAME_-43350_RELATIVE = 'IMAP_SPACECRAFT'
1611
+
1612
+ \begintext
1613
+
1614
+
1615
+ IMAP Compact Dual Ion Composition Experiment (CoDICE) Frames
1616
+ ========================================================================
1617
+
1618
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1619
+ respect to an inertial
1620
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1621
+ for details).
1622
+
1623
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1624
+ frame.
1625
+
1626
+ \begindata
1627
+
1628
+ FRAME_IMAP_CODICE = -43400
1629
+ FRAME_-43400_NAME = 'IMAP_CODICE'
1630
+ FRAME_-43400_CLASS = 4
1631
+ FRAME_-43400_CLASS_ID = -43400
1632
+ FRAME_-43400_CENTER = -43
1633
+ TKFRAME_-43400_SPEC = 'MATRIX'
1634
+ TKFRAME_-43400_MATRIX = ( 0.694626,
1635
+ 0.719371,
1636
+ 0.000000,
1637
+ -0.719371,
1638
+ 0.694626,
1639
+ 0.000000,
1640
+ 0.000000,
1641
+ 0.000000,
1642
+ 1.000000 )
1643
+ TKFRAME_-43400_RELATIVE = 'IMAP_SPACECRAFT'
1644
+
1645
+ \begintext
1646
+
1647
+
1648
+ IMAP High-energy Ion Telescope (HIT) Frames
1649
+ ========================================================================
1650
+
1651
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1652
+ respect to an inertial
1653
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1654
+ for details).
1655
+
1656
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1657
+ frame.
1658
+
1659
+ \begindata
1660
+
1661
+ FRAME_IMAP_HIT = -43500
1662
+ FRAME_-43500_NAME = 'IMAP_HIT'
1663
+ FRAME_-43500_CLASS = 4
1664
+ FRAME_-43500_CLASS_ID = -43500
1665
+ FRAME_-43500_CENTER = -43
1666
+ TKFRAME_-43500_SPEC = 'MATRIX'
1667
+ TKFRAME_-43500_MATRIX = ( 0.866025,
1668
+ 0.500000,
1669
+ 0.000000,
1670
+ -0.500000,
1671
+ 0.866025,
1672
+ 0.000000,
1673
+ 0.000000,
1674
+ 0.000000,
1675
+ 1.000000 )
1676
+ TKFRAME_-43500_RELATIVE = 'IMAP_SPACECRAFT'
1677
+
1678
+ \begintext
1679
+
1680
+
1681
+ IMAP Interstellar Dust Experiment (IDEX) Frames
1682
+ ========================================================================
1683
+
1684
+ TODO: FIX ME...The orientation of the spacecraft body frame with
1685
+ respect to an inertial
1686
+ frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3]
1687
+ for details).
1688
+
1689
+ This frame specifies the rotating X,Y and pointing Z coordinate body
1690
+ frame.
1691
+
1692
+ \begindata
1693
+
1694
+ FRAME_IMAP_IDEX = -43700
1695
+ FRAME_-43700_NAME = 'IMAP_IDEX'
1696
+ FRAME_-43700_CLASS = 4
1697
+ FRAME_-43700_CLASS_ID = -43700
1698
+ FRAME_-43700_CENTER = -43
1699
+ TKFRAME_-43700_SPEC = 'MATRIX'
1700
+ TKFRAME_-43700_MATRIX = ( 0.000000,
1701
+ 1.000000,
1702
+ 0.000000,
1703
+ -0.707107,
1704
+ 0.000000,
1705
+ -0.707107,
1706
+ -0.707107,
1707
+ 0.000000,
1708
+ 0.707107 )
1709
+ TKFRAME_-43700_RELATIVE = 'IMAP_SPACECRAFT'
1710
+
1711
+ \begintext
1712
+
1713
+
1714
+ IMAP GLObal solar Wind Structure (GLOWS) Frames
1715
+ ========================================================================
1716
+
1717
+ TODO: add diagrams
1718
+
1719
+ GLOWS has the following nominal alignment to the spacecraft frame,
1720
+ reference Table 1 of [6]. The azimuth and elevation angles are
1721
+ illustrated in the 'IMAP I&T Component Placement' section near the top
1722
+ of this document.
1723
+
1724
+ azimuth | elevation
1725
+ (deg) | (deg)
1726
+ ---------+---------
1727
+ 127 | 15
1728
+
1729
+ The GLOWS base frame is defined by the instrument team as follows [10]:
1730
+
1731
+ * +Z axis points in the anti-boresight direction
1732
+ * +Y axis points in the anti-sunward direction.
1733
+
1734
+ The azimuth and elevation give the outward axis of symmetry, -Z in the
1735
+ instrument frame:
1736
+
1737
+ Z = -[ -sin(az) * cos(el), cos(az) * cos(el), sin(el) ]
1738
+ instr
1739
+
1740
+ The instrument +Y axis is in the anti-sunward direction, towards the
1741
+ spacecraft -Z axis:
1742
+
1743
+ Y = [ 0 0 -1 ]
1744
+ instr
1745
+
1746
+ Taking the cross product and normalizing, we arrive at the instrumet +X
1747
+ axis:
1748
+ Y x Z
1749
+ X = ---------
1750
+ instr | Y x Z |
1751
+
1752
+ And adjusting Y:
1753
+
1754
+ Z x X
1755
+ Y = ---------
1756
+ instr | Z x X |
1757
+
1758
+ This definition is captured in the keywords below.
1759
+
1760
+ \begindata
1761
+
1762
+ FRAME_IMAP_GLOWS = -43750
1763
+ FRAME_-43750_NAME = 'IMAP_GLOWS'
1764
+ FRAME_-43750_CLASS = 4
1765
+ FRAME_-43750_CLASS_ID = -43750
1766
+ FRAME_-43750_CENTER = -43
1767
+ TKFRAME_-43750_SPEC = 'MATRIX'
1768
+ TKFRAME_-43750_MATRIX = ( 0.60181502315205,
1769
+ -0.79863551004729,
1770
+ 0.00000000000000,
1771
+ -0.20670208009540,
1772
+ -0.15576118962056,
1773
+ -0.96592582628907,
1774
+ 0.77142266494622,
1775
+ 0.58130867351132,
1776
+ -0.25881904510252 )
1777
+ TKFRAME_-43750_RELATIVE = 'IMAP_SPACECRAFT'
1778
+
1779
+ \begintext
1780
+
1781
+ Generic axis
1782
+
1783
+ +Z axis
1784
+ .
1785
+ |
1786
+ .
1787
+ |
1788
+ .
1789
+ |
1790
+ .
1791
+ |
1792
+ .
1793
+ |
1794
+ .
1795
+ |
1796
+ .~ ~
1797
+ .~ '` ^~
1798
+ .~ '` ^~
1799
+ .~ '` ^~
1800
+ .~ '` ^~
1801
+ +X axis ^~
1802
+ ^~
1803
+ ^~
1804
+ +Y axis
1805
+
1806
+ End of FK file.