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,303 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <xtce:SpaceSystem xmlns:xtce="http://www.omg.org/space/xtce" name="SWE">
3
+ <xtce:Header date="nan" version="nan" author="IMAP SDC" />
4
+ <xtce:TelemetryMetaData>
5
+ <xtce:ParameterTypeSet>
6
+ <xtce:IntegerParameterType name="VERSION" signed="false">
7
+ <xtce:IntegerDataEncoding sizeInBits="3" encoding="unsigned" />
8
+ </xtce:IntegerParameterType>
9
+ <xtce:IntegerParameterType name="TYPE" signed="false">
10
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
11
+ </xtce:IntegerParameterType>
12
+ <xtce:IntegerParameterType name="SEC_HDR_FLG" signed="false">
13
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
14
+ </xtce:IntegerParameterType>
15
+ <xtce:IntegerParameterType name="PKT_APID" signed="false">
16
+ <xtce:IntegerDataEncoding sizeInBits="11" encoding="unsigned" />
17
+ </xtce:IntegerParameterType>
18
+ <xtce:IntegerParameterType name="SEQ_FLGS" signed="false">
19
+ <xtce:IntegerDataEncoding sizeInBits="2" encoding="unsigned" />
20
+ </xtce:IntegerParameterType>
21
+ <xtce:IntegerParameterType name="SRC_SEQ_CTR" signed="false">
22
+ <xtce:IntegerDataEncoding sizeInBits="14" encoding="unsigned" />
23
+ </xtce:IntegerParameterType>
24
+ <xtce:IntegerParameterType name="PKT_LEN" signed="false">
25
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned" />
26
+ </xtce:IntegerParameterType>
27
+ <xtce:IntegerParameterType name="SWE_SCIENCE.SHCOARSE" signed="false">
28
+ <xtce:IntegerDataEncoding sizeInBits="32" encoding="unsigned" />
29
+ </xtce:IntegerParameterType>
30
+ <xtce:IntegerParameterType name="SWE_SCIENCE.ACQ_START_COARSE" signed="false">
31
+ <xtce:IntegerDataEncoding sizeInBits="32" encoding="unsigned" />
32
+ </xtce:IntegerParameterType>
33
+ <xtce:IntegerParameterType name="SWE_SCIENCE.ACQ_START_FINE" signed="false">
34
+ <xtce:IntegerDataEncoding sizeInBits="20" encoding="unsigned" />
35
+ </xtce:IntegerParameterType>
36
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.CEM_NOMINAL_ONLY" signed="false">
37
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
38
+ <xtce:EnumerationList>
39
+ <xtce:Enumeration value="0" label="NOT_NOMINAL" />
40
+ <xtce:Enumeration value="1" label="NOMINAL" />
41
+ </xtce:EnumerationList>
42
+ </xtce:EnumeratedParameterType>
43
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.SPIN_PERIOD_VALIDITY" signed="false">
44
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
45
+ <xtce:EnumerationList>
46
+ <xtce:Enumeration value="0" label="INVALID" />
47
+ <xtce:Enumeration value="1" label="VALID" />
48
+ </xtce:EnumerationList>
49
+ </xtce:EnumeratedParameterType>
50
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.SPIN_PHASE_VALIDITY" signed="false">
51
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
52
+ <xtce:EnumerationList>
53
+ <xtce:Enumeration value="0" label="INVALID" />
54
+ <xtce:Enumeration value="1" label="VALID" />
55
+ </xtce:EnumerationList>
56
+ </xtce:EnumeratedParameterType>
57
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.SPIN_PERIOD_SOURCE" signed="false">
58
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
59
+ <xtce:EnumerationList>
60
+ <xtce:Enumeration value="0" label="STAR_TRACKER" />
61
+ <xtce:Enumeration value="1" label="SUN_SENSOR" />
62
+ </xtce:EnumerationList>
63
+ </xtce:EnumeratedParameterType>
64
+ <xtce:IntegerParameterType name="SWE_SCIENCE.SETTLE_DURATION" signed="false">
65
+ <xtce:IntegerDataEncoding sizeInBits="15" encoding="unsigned" />
66
+ </xtce:IntegerParameterType>
67
+ <xtce:IntegerParameterType name="SWE_SCIENCE.ACQ_DURATION" signed="false">
68
+ <xtce:IntegerDataEncoding sizeInBits="17" encoding="unsigned" />
69
+ </xtce:IntegerParameterType>
70
+ <xtce:IntegerParameterType name="SWE_SCIENCE.SPIN_PHASE" signed="false">
71
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned">
72
+ <xtce:DefaultCalibrator>
73
+ <xtce:PolynomialCalibrator>
74
+ <xtce:Term coefficient="0.005493" exponent="1" />
75
+ </xtce:PolynomialCalibrator>
76
+ </xtce:DefaultCalibrator>
77
+ </xtce:IntegerDataEncoding>
78
+ </xtce:IntegerParameterType>
79
+ <xtce:IntegerParameterType name="SWE_SCIENCE.SPIN_PERIOD" signed="false">
80
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned">
81
+ <xtce:DefaultCalibrator>
82
+ <xtce:PolynomialCalibrator>
83
+ <xtce:Term coefficient="0.00032" exponent="1" />
84
+ </xtce:PolynomialCalibrator>
85
+ </xtce:DefaultCalibrator>
86
+ </xtce:IntegerDataEncoding>
87
+ </xtce:IntegerParameterType>
88
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.REPOINT_WARNING" signed="false">
89
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
90
+ <xtce:EnumerationList>
91
+ <xtce:Enumeration value="0" label="NO" />
92
+ <xtce:Enumeration value="1" label="YES" />
93
+ </xtce:EnumerationList>
94
+ </xtce:EnumeratedParameterType>
95
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.HIGH_COUNT" signed="false">
96
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
97
+ <xtce:EnumerationList>
98
+ <xtce:Enumeration value="0" label="NO" />
99
+ <xtce:Enumeration value="1" label="YES" />
100
+ </xtce:EnumerationList>
101
+ </xtce:EnumeratedParameterType>
102
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.STIM_ENABLED" signed="false">
103
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
104
+ <xtce:EnumerationList>
105
+ <xtce:Enumeration value="0" label="DISABLED" />
106
+ <xtce:Enumeration value="1" label="ENABLED" />
107
+ </xtce:EnumerationList>
108
+ </xtce:EnumeratedParameterType>
109
+ <xtce:EnumeratedParameterType name="SWE_SCIENCE.QUARTER_CYCLE" signed="false">
110
+ <xtce:IntegerDataEncoding sizeInBits="5" encoding="unsigned" />
111
+ <xtce:EnumerationList>
112
+ <xtce:Enumeration value="0" label="FIRST" />
113
+ <xtce:Enumeration value="1" label="SECOND" />
114
+ <xtce:Enumeration value="2" label="THIRD" />
115
+ <xtce:Enumeration value="3" label="FORTH" />
116
+ </xtce:EnumerationList>
117
+ </xtce:EnumeratedParameterType>
118
+ <xtce:IntegerParameterType name="SWE_SCIENCE.ESA_TABLE_NUM" signed="false">
119
+ <xtce:IntegerDataEncoding sizeInBits="8" encoding="unsigned" />
120
+ </xtce:IntegerParameterType>
121
+ <xtce:IntegerParameterType name="SWE_SCIENCE.ESA_ACQ_CFG" signed="false">
122
+ <xtce:IntegerDataEncoding sizeInBits="8" encoding="unsigned" />
123
+ </xtce:IntegerParameterType>
124
+ <xtce:IntegerParameterType name="SWE_SCIENCE.THRESHOLD_DAC" signed="false">
125
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned">
126
+ <xtce:DefaultCalibrator>
127
+ <xtce:PolynomialCalibrator>
128
+ <xtce:Term coefficient="0.001221" exponent="1" />
129
+ </xtce:PolynomialCalibrator>
130
+ </xtce:DefaultCalibrator>
131
+ </xtce:IntegerDataEncoding>
132
+ </xtce:IntegerParameterType>
133
+ <xtce:IntegerParameterType name="SWE_SCIENCE.STIM_CFG_REG" signed="false">
134
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned" />
135
+ </xtce:IntegerParameterType>
136
+ <xtce:BinaryParameterType name="SWE_SCIENCE.SCIENCE_DATA">
137
+ <xtce:BinaryDataEncoding bitOrder="mostSignificantBitFirst">
138
+ <xtce:SizeInBits>
139
+ <xtce:DynamicValue>
140
+ <xtce:ParameterInstanceRef parameterRef="PKT_LEN" />
141
+ <xtce:LinearAdjustment slope="8" intercept="-216" />
142
+ </xtce:DynamicValue>
143
+ </xtce:SizeInBits>
144
+ </xtce:BinaryDataEncoding>
145
+ </xtce:BinaryParameterType>
146
+ <xtce:IntegerParameterType name="SWE_SCIENCE.CKSUM" signed="false">
147
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned" />
148
+ </xtce:IntegerParameterType>
149
+ </xtce:ParameterTypeSet>
150
+ <xtce:ParameterSet>
151
+ <xtce:Parameter name="VERSION" parameterTypeRef="VERSION">
152
+ <xtce:LongDescription>CCSDS Packet Version Number (always 0)</xtce:LongDescription>
153
+ </xtce:Parameter>
154
+ <xtce:Parameter name="TYPE" parameterTypeRef="TYPE">
155
+ <xtce:LongDescription>CCSDS Packet Type Indicator (0=telemetry)</xtce:LongDescription>
156
+ </xtce:Parameter>
157
+ <xtce:Parameter name="SEC_HDR_FLG" parameterTypeRef="SEC_HDR_FLG">
158
+ <xtce:LongDescription>CCSDS Packet Secondary Header Flag (always 1)</xtce:LongDescription>
159
+ </xtce:Parameter>
160
+ <xtce:Parameter name="PKT_APID" parameterTypeRef="PKT_APID">
161
+ <xtce:LongDescription>CCSDS Packet Application Process ID</xtce:LongDescription>
162
+ </xtce:Parameter>
163
+ <xtce:Parameter name="SEQ_FLGS" parameterTypeRef="SEQ_FLGS">
164
+ <xtce:LongDescription>CCSDS Packet Grouping Flags (3=not part of group)</xtce:LongDescription>
165
+ </xtce:Parameter>
166
+ <xtce:Parameter name="SRC_SEQ_CTR" parameterTypeRef="SRC_SEQ_CTR">
167
+ <xtce:LongDescription>CCSDS Packet Sequence Count (increments with each new packet)</xtce:LongDescription>
168
+ </xtce:Parameter>
169
+ <xtce:Parameter name="PKT_LEN" parameterTypeRef="PKT_LEN">
170
+ <xtce:LongDescription>CCSDS Packet Length (number of bytes after Packet length minus 1)</xtce:LongDescription>
171
+ </xtce:Parameter>
172
+ <xtce:Parameter name="SWE_SCIENCE.SHCOARSE" parameterTypeRef="SWE_SCIENCE.SHCOARSE">
173
+ <xtce:LongDescription>Mission elapsed time</xtce:LongDescription>
174
+ </xtce:Parameter>
175
+ <xtce:Parameter name="SWE_SCIENCE.ACQ_START_COARSE" parameterTypeRef="SWE_SCIENCE.ACQ_START_COARSE">
176
+ <xtce:LongDescription>Acquisition start time coarse in seconds</xtce:LongDescription>
177
+ </xtce:Parameter>
178
+ <xtce:Parameter name="SWE_SCIENCE.ACQ_START_FINE" parameterTypeRef="SWE_SCIENCE.ACQ_START_FINE">
179
+ <xtce:LongDescription>Acquisition start time fine in microseconds</xtce:LongDescription>
180
+ </xtce:Parameter>
181
+ <xtce:Parameter name="SWE_SCIENCE.CEM_NOMINAL_ONLY" parameterTypeRef="SWE_SCIENCE.CEM_NOMINAL_ONLY">
182
+ <xtce:LongDescription>CEM Nominal status bit
183
+ '1' -- nominal
184
+ '0' -- not nominal</xtce:LongDescription>
185
+ </xtce:Parameter>
186
+ <xtce:Parameter name="SWE_SCIENCE.SPIN_PERIOD_VALIDITY" parameterTypeRef="SWE_SCIENCE.SPIN_PERIOD_VALIDITY">
187
+ <xtce:LongDescription>Spin period valid bit
188
+ '1' -- valid
189
+ '0' -- invalid</xtce:LongDescription>
190
+ </xtce:Parameter>
191
+ <xtce:Parameter name="SWE_SCIENCE.SPIN_PHASE_VALIDITY" parameterTypeRef="SWE_SCIENCE.SPIN_PHASE_VALIDITY">
192
+ <xtce:LongDescription>Spin phase valid bit
193
+ '1' -- valid
194
+ '0' -- invalid</xtce:LongDescription>
195
+ </xtce:Parameter>
196
+ <xtce:Parameter name="SWE_SCIENCE.SPIN_PERIOD_SOURCE" parameterTypeRef="SWE_SCIENCE.SPIN_PERIOD_SOURCE">
197
+ <xtce:LongDescription>Spin period source bit
198
+ '1' -- sun sensor (safing)
199
+ '0' -- star tracker (nominal)</xtce:LongDescription>
200
+ </xtce:Parameter>
201
+ <xtce:Parameter name="SWE_SCIENCE.SETTLE_DURATION" parameterTypeRef="SWE_SCIENCE.SETTLE_DURATION">
202
+ <xtce:LongDescription>HVPS settling duration</xtce:LongDescription>
203
+ </xtce:Parameter>
204
+ <xtce:Parameter name="SWE_SCIENCE.ACQ_DURATION" parameterTypeRef="SWE_SCIENCE.ACQ_DURATION">
205
+ <xtce:LongDescription>Acquisition duration</xtce:LongDescription>
206
+ </xtce:Parameter>
207
+ <xtce:Parameter name="SWE_SCIENCE.SPIN_PHASE" parameterTypeRef="SWE_SCIENCE.SPIN_PHASE">
208
+ <xtce:LongDescription>Spin phase</xtce:LongDescription>
209
+ </xtce:Parameter>
210
+ <xtce:Parameter name="SWE_SCIENCE.SPIN_PERIOD" parameterTypeRef="SWE_SCIENCE.SPIN_PERIOD">
211
+ <xtce:LongDescription>Spin period</xtce:LongDescription>
212
+ </xtce:Parameter>
213
+ <xtce:Parameter name="SWE_SCIENCE.REPOINT_WARNING" parameterTypeRef="SWE_SCIENCE.REPOINT_WARNING">
214
+ <xtce:LongDescription>Thruster fired during this quarter cycle
215
+ '1' -- yes, warning received
216
+ '0' -- no, warning not received</xtce:LongDescription>
217
+ </xtce:Parameter>
218
+ <xtce:Parameter name="SWE_SCIENCE.HIGH_COUNT" parameterTypeRef="SWE_SCIENCE.HIGH_COUNT">
219
+ <xtce:LongDescription>High CEM count observed for at least one CEM during this quarter cycle
220
+ '1' -- yes, high count occurred
221
+ '0' -- no, no high count occurred</xtce:LongDescription>
222
+ </xtce:Parameter>
223
+ <xtce:Parameter name="SWE_SCIENCE.STIM_ENABLED" parameterTypeRef="SWE_SCIENCE.STIM_ENABLED">
224
+ <xtce:LongDescription>Stim state
225
+ '1' -- enabled
226
+ '0' -- disabled</xtce:LongDescription>
227
+ </xtce:Parameter>
228
+ <xtce:Parameter name="SWE_SCIENCE.QUARTER_CYCLE" parameterTypeRef="SWE_SCIENCE.QUARTER_CYCLE">
229
+ <xtce:LongDescription>Quarter cycle number</xtce:LongDescription>
230
+ </xtce:Parameter>
231
+ <xtce:Parameter name="SWE_SCIENCE.ESA_TABLE_NUM" parameterTypeRef="SWE_SCIENCE.ESA_TABLE_NUM">
232
+ <xtce:LongDescription>ESA table identifier</xtce:LongDescription>
233
+ </xtce:Parameter>
234
+ <xtce:Parameter name="SWE_SCIENCE.ESA_ACQ_CFG" parameterTypeRef="SWE_SCIENCE.ESA_ACQ_CFG">
235
+ <xtce:LongDescription>ESA acquisition configuration</xtce:LongDescription>
236
+ </xtce:Parameter>
237
+ <xtce:Parameter name="SWE_SCIENCE.THRESHOLD_DAC" parameterTypeRef="SWE_SCIENCE.THRESHOLD_DAC">
238
+ <xtce:LongDescription>Threshold DAC value</xtce:LongDescription>
239
+ </xtce:Parameter>
240
+ <xtce:Parameter name="SWE_SCIENCE.STIM_CFG_REG" parameterTypeRef="SWE_SCIENCE.STIM_CFG_REG">
241
+ <xtce:LongDescription>Stim pulse configuration register. Bits 0-3, period, 4-7, duration, 8-9 mode</xtce:LongDescription>
242
+ </xtce:Parameter>
243
+ <xtce:Parameter name="SWE_SCIENCE.SCIENCE_DATA" parameterTypeRef="SWE_SCIENCE.SCIENCE_DATA">
244
+ <xtce:LongDescription>Data for a science acquisiton quarter cycle. (56 bit * 180 array)
245
+ Seven consecutive bytes represent data for a single step:
246
+ CEM1 - 8 bit counter
247
+ CEM2 - 8 bit counter
248
+ CEM3 - 8 bit counter
249
+ CEM4 - 8 bit counter
250
+ CEM5 - 8 bit counter
251
+ CEM6 - 8 bit counter
252
+ CEM7 - 8 bit counter
253
+ 180 steps are for the 180 ESA voltages used in a quarter cycle</xtce:LongDescription>
254
+ </xtce:Parameter>
255
+ <xtce:Parameter name="SWE_SCIENCE.CKSUM" parameterTypeRef="SWE_SCIENCE.CKSUM">
256
+ <xtce:LongDescription>Checksum</xtce:LongDescription>
257
+ </xtce:Parameter>
258
+ </xtce:ParameterSet>
259
+ <xtce:ContainerSet>
260
+ <xtce:SequenceContainer name="CCSDSPacket" abstract="true">
261
+ <xtce:EntryList>
262
+ <xtce:ParameterRefEntry parameterRef="VERSION" />
263
+ <xtce:ParameterRefEntry parameterRef="TYPE" />
264
+ <xtce:ParameterRefEntry parameterRef="SEC_HDR_FLG" />
265
+ <xtce:ParameterRefEntry parameterRef="PKT_APID" />
266
+ <xtce:ParameterRefEntry parameterRef="SEQ_FLGS" />
267
+ <xtce:ParameterRefEntry parameterRef="SRC_SEQ_CTR" />
268
+ <xtce:ParameterRefEntry parameterRef="PKT_LEN" />
269
+ </xtce:EntryList>
270
+ </xtce:SequenceContainer>
271
+ <xtce:SequenceContainer name="SWE_SCIENCE">
272
+ <xtce:BaseContainer containerRef="CCSDSPacket">
273
+ <xtce:RestrictionCriteria>
274
+ <xtce:Comparison parameterRef="PKT_APID" value="1344" useCalibratedValue="false" />
275
+ </xtce:RestrictionCriteria>
276
+ </xtce:BaseContainer>
277
+ <xtce:EntryList>
278
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SHCOARSE" />
279
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.ACQ_START_COARSE" />
280
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.ACQ_START_FINE" />
281
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.CEM_NOMINAL_ONLY" />
282
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SPIN_PERIOD_VALIDITY" />
283
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SPIN_PHASE_VALIDITY" />
284
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SPIN_PERIOD_SOURCE" />
285
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SETTLE_DURATION" />
286
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.ACQ_DURATION" />
287
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SPIN_PHASE" />
288
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SPIN_PERIOD" />
289
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.REPOINT_WARNING" />
290
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.HIGH_COUNT" />
291
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.STIM_ENABLED" />
292
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.QUARTER_CYCLE" />
293
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.ESA_TABLE_NUM" />
294
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.ESA_ACQ_CFG" />
295
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.THRESHOLD_DAC" />
296
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.STIM_CFG_REG" />
297
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.SCIENCE_DATA" />
298
+ <xtce:ParameterRefEntry parameterRef="SWE_SCIENCE.CKSUM" />
299
+ </xtce:EntryList>
300
+ </xtce:SequenceContainer>
301
+ </xtce:ContainerSet>
302
+ </xtce:TelemetryMetaData>
303
+ </xtce:SpaceSystem>
File without changes
@@ -0,0 +1,9 @@
1
+ """Various utility classes and functions to support SWE processing."""
2
+
3
+ from enum import IntEnum
4
+
5
+
6
+ class SWEAPID(IntEnum):
7
+ """Create ENUM for apid."""
8
+
9
+ SWE_SCIENCE = 1344
File without changes
@@ -0,0 +1,171 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <xtce:SpaceSystem xmlns:xtce="http://www.omg.org/space/xtce" name="Test Instrument">
3
+ <xtce:Header date="2024-07-26 00:00:00" version="v1.2" author="IMAP SDC" />
4
+ <xtce:TelemetryMetaData>
5
+ <xtce:ParameterTypeSet>
6
+ <xtce:IntegerParameterType name="VERSION" signed="false">
7
+ <xtce:IntegerDataEncoding sizeInBits="3" encoding="unsigned" />
8
+ </xtce:IntegerParameterType>
9
+ <xtce:IntegerParameterType name="TYPE" signed="false">
10
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
11
+ </xtce:IntegerParameterType>
12
+ <xtce:IntegerParameterType name="SEC_HDR_FLG" signed="false">
13
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
14
+ </xtce:IntegerParameterType>
15
+ <xtce:IntegerParameterType name="PKT_APID" signed="false">
16
+ <xtce:IntegerDataEncoding sizeInBits="11" encoding="unsigned" />
17
+ </xtce:IntegerParameterType>
18
+ <xtce:IntegerParameterType name="SEQ_FLGS" signed="false">
19
+ <xtce:IntegerDataEncoding sizeInBits="2" encoding="unsigned" />
20
+ </xtce:IntegerParameterType>
21
+ <xtce:IntegerParameterType name="SRC_SEQ_CTR" signed="false">
22
+ <xtce:IntegerDataEncoding sizeInBits="14" encoding="unsigned" />
23
+ </xtce:IntegerParameterType>
24
+ <xtce:IntegerParameterType name="PKT_LEN" signed="false">
25
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned" />
26
+ </xtce:IntegerParameterType>
27
+ <xtce:IntegerParameterType name="TEST_PACKET.SHCOARSE" signed="false">
28
+ <xtce:IntegerDataEncoding sizeInBits="32" encoding="unsigned" />
29
+ </xtce:IntegerParameterType>
30
+ <xtce:IntegerParameterType name="TEST_PACKET.VAR_UINT" signed="false">
31
+ <xtce:IntegerDataEncoding sizeInBits="2" encoding="unsigned">
32
+ <xtce:DefaultCalibrator>
33
+ <xtce:PolynomialCalibrator>
34
+ <xtce:Term coefficient="1.5" exponent="0" />
35
+ <xtce:Term coefficient="2.5" exponent="1" />
36
+ </xtce:PolynomialCalibrator>
37
+ </xtce:DefaultCalibrator>
38
+ </xtce:IntegerDataEncoding>
39
+ </xtce:IntegerParameterType>
40
+ <xtce:IntegerParameterType name="TEST_PACKET.VAR_INT" signed="true">
41
+ <xtce:IntegerDataEncoding sizeInBits="4" encoding="signed" />
42
+ </xtce:IntegerParameterType>
43
+ <xtce:IntegerParameterType name="TEST_PACKET.VAR_SINT" signed="true">
44
+ <xtce:IntegerDataEncoding sizeInBits="5" encoding="signed" />
45
+ </xtce:IntegerParameterType>
46
+ <xtce:BinaryParameterType name="TEST_PACKET.VAR_BYTE">
47
+ <xtce:BinaryDataEncoding bitOrder="mostSignificantBitFirst">
48
+ <xtce:SizeInBits>
49
+ <xtce:DynamicValue>
50
+ <xtce:ParameterInstanceRef parameterRef="PKT_LEN" />
51
+ <xtce:LinearAdjustment slope="8" intercept="-71" />
52
+ </xtce:DynamicValue>
53
+ </xtce:SizeInBits>
54
+ </xtce:BinaryDataEncoding>
55
+ </xtce:BinaryParameterType>
56
+ <xtce:IntegerParameterType name="TEST_PACKET.VAR_FILL" signed="false">
57
+ <xtce:IntegerDataEncoding sizeInBits="3" encoding="unsigned" />
58
+ </xtce:IntegerParameterType>
59
+ <xtce:FloatParameterType name="TEST_PACKET.VAR_FLOAT">
60
+ <xtce:FloatDataEncoding sizeInBits="32" encoding="IEEE-754" />
61
+ </xtce:FloatParameterType>
62
+ <xtce:EnumeratedParameterType name="TEST_PACKET.VAR_STATE" signed="false">
63
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
64
+ <xtce:EnumerationList>
65
+ <xtce:Enumeration value="0" label="OFF" />
66
+ <xtce:Enumeration value="1" label="ON" />
67
+ </xtce:EnumerationList>
68
+ </xtce:EnumeratedParameterType>
69
+ <xtce:IntegerParameterType name="TEST_PACKET2.SHCOARSE" signed="false">
70
+ <xtce:IntegerDataEncoding sizeInBits="32" encoding="unsigned" />
71
+ </xtce:IntegerParameterType>
72
+ <xtce:IntegerParameterType name="TEST_PACKET2.VAR1" signed="false">
73
+ <xtce:IntegerDataEncoding sizeInBits="2" encoding="unsigned" />
74
+ </xtce:IntegerParameterType>
75
+ </xtce:ParameterTypeSet>
76
+ <xtce:ParameterSet>
77
+ <xtce:Parameter name="VERSION" parameterTypeRef="VERSION">
78
+ <xtce:LongDescription>CCSDS Packet Version Number (always 0)</xtce:LongDescription>
79
+ </xtce:Parameter>
80
+ <xtce:Parameter name="TYPE" parameterTypeRef="TYPE">
81
+ <xtce:LongDescription>CCSDS Packet Type Indicator (0=telemetry)</xtce:LongDescription>
82
+ </xtce:Parameter>
83
+ <xtce:Parameter name="SEC_HDR_FLG" parameterTypeRef="SEC_HDR_FLG">
84
+ <xtce:LongDescription>CCSDS Packet Secondary Header Flag (always 1)</xtce:LongDescription>
85
+ </xtce:Parameter>
86
+ <xtce:Parameter name="PKT_APID" parameterTypeRef="PKT_APID">
87
+ <xtce:LongDescription>CCSDS Packet Application Process ID</xtce:LongDescription>
88
+ </xtce:Parameter>
89
+ <xtce:Parameter name="SEQ_FLGS" parameterTypeRef="SEQ_FLGS">
90
+ <xtce:LongDescription>CCSDS Packet Grouping Flags (3=not part of group)</xtce:LongDescription>
91
+ </xtce:Parameter>
92
+ <xtce:Parameter name="SRC_SEQ_CTR" parameterTypeRef="SRC_SEQ_CTR">
93
+ <xtce:LongDescription>CCSDS Packet Sequence Count (increments with each new packet)</xtce:LongDescription>
94
+ </xtce:Parameter>
95
+ <xtce:Parameter name="PKT_LEN" parameterTypeRef="PKT_LEN">
96
+ <xtce:LongDescription>CCSDS Packet Length (number of bytes after Packet length minus 1)</xtce:LongDescription>
97
+ </xtce:Parameter>
98
+ <xtce:Parameter name="TEST_PACKET.SHCOARSE" parameterTypeRef="TEST_PACKET.SHCOARSE">
99
+ <xtce:LongDescription>Mission elapsed time</xtce:LongDescription>
100
+ </xtce:Parameter>
101
+ <xtce:Parameter name="TEST_PACKET.VAR_UINT" parameterTypeRef="TEST_PACKET.VAR_UINT">
102
+ <xtce:LongDescription>Unsgned integer data with conversion</xtce:LongDescription>
103
+ </xtce:Parameter>
104
+ <xtce:Parameter name="TEST_PACKET.VAR_INT" parameterTypeRef="TEST_PACKET.VAR_INT">
105
+ <xtce:LongDescription>Integer data</xtce:LongDescription>
106
+ </xtce:Parameter>
107
+ <xtce:Parameter name="TEST_PACKET.VAR_SINT" parameterTypeRef="TEST_PACKET.VAR_SINT">
108
+ <xtce:LongDescription>Signed integer data</xtce:LongDescription>
109
+ </xtce:Parameter>
110
+ <xtce:Parameter name="TEST_PACKET.VAR_BYTE" parameterTypeRef="TEST_PACKET.VAR_BYTE">
111
+ <xtce:LongDescription>Binary data - variable length</xtce:LongDescription>
112
+ </xtce:Parameter>
113
+ <xtce:Parameter name="TEST_PACKET.VAR_FILL" parameterTypeRef="TEST_PACKET.VAR_FILL">
114
+ <xtce:LongDescription>Fill data</xtce:LongDescription>
115
+ </xtce:Parameter>
116
+ <xtce:Parameter name="TEST_PACKET.VAR_FLOAT" parameterTypeRef="TEST_PACKET.VAR_FLOAT">
117
+ <xtce:LongDescription>Float data</xtce:LongDescription>
118
+ </xtce:Parameter>
119
+ <xtce:Parameter name="TEST_PACKET.VAR_STATE" parameterTypeRef="TEST_PACKET.VAR_STATE">
120
+ <xtce:LongDescription>State data</xtce:LongDescription>
121
+ </xtce:Parameter>
122
+ <xtce:Parameter name="TEST_PACKET2.SHCOARSE" parameterTypeRef="TEST_PACKET2.SHCOARSE">
123
+ <xtce:LongDescription>Mission elapsed time</xtce:LongDescription>
124
+ </xtce:Parameter>
125
+ <xtce:Parameter name="TEST_PACKET2.VAR1" parameterTypeRef="TEST_PACKET2.VAR1" shortDescription="Variable 1 short description">
126
+ <xtce:LongDescription>Variable 1 long description</xtce:LongDescription>
127
+ </xtce:Parameter>
128
+ </xtce:ParameterSet>
129
+ <xtce:ContainerSet>
130
+ <xtce:SequenceContainer name="CCSDSPacket" abstract="true">
131
+ <xtce:EntryList>
132
+ <xtce:ParameterRefEntry parameterRef="VERSION" />
133
+ <xtce:ParameterRefEntry parameterRef="TYPE" />
134
+ <xtce:ParameterRefEntry parameterRef="SEC_HDR_FLG" />
135
+ <xtce:ParameterRefEntry parameterRef="PKT_APID" />
136
+ <xtce:ParameterRefEntry parameterRef="SEQ_FLGS" />
137
+ <xtce:ParameterRefEntry parameterRef="SRC_SEQ_CTR" />
138
+ <xtce:ParameterRefEntry parameterRef="PKT_LEN" />
139
+ </xtce:EntryList>
140
+ </xtce:SequenceContainer>
141
+ <xtce:SequenceContainer name="TEST_PACKET">
142
+ <xtce:BaseContainer containerRef="CCSDSPacket">
143
+ <xtce:RestrictionCriteria>
144
+ <xtce:Comparison parameterRef="PKT_APID" value="1" useCalibratedValue="false" />
145
+ </xtce:RestrictionCriteria>
146
+ </xtce:BaseContainer>
147
+ <xtce:EntryList>
148
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.SHCOARSE" />
149
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_UINT" />
150
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_INT" />
151
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_SINT" />
152
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_BYTE" />
153
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_FILL" />
154
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_FLOAT" />
155
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET.VAR_STATE" />
156
+ </xtce:EntryList>
157
+ </xtce:SequenceContainer>
158
+ <xtce:SequenceContainer name="TEST_PACKET2">
159
+ <xtce:BaseContainer containerRef="CCSDSPacket">
160
+ <xtce:RestrictionCriteria>
161
+ <xtce:Comparison parameterRef="PKT_APID" value="15" useCalibratedValue="false" />
162
+ </xtce:RestrictionCriteria>
163
+ </xtce:BaseContainer>
164
+ <xtce:EntryList>
165
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET2.SHCOARSE" />
166
+ <xtce:ParameterRefEntry parameterRef="TEST_PACKET2.VAR1" />
167
+ </xtce:EntryList>
168
+ </xtce:SequenceContainer>
169
+ </xtce:ContainerSet>
170
+ </xtce:TelemetryMetaData>
171
+ </xtce:SpaceSystem>