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,547 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <xtce:SpaceSystem xmlns:xtce="http://www.omg.org/space/xtce" name="P_U45_AUXILIARY">
3
+ <xtce:Header date="2023-08-24T07:53:00MST" version="1.0" author="IMAP SDC" />
4
+ <xtce:TelemetryMetaData>
5
+ <xtce:ParameterTypeSet>
6
+ <xtce:IntegerParameterType name="uint0" signed="false">
7
+ <xtce:IntegerDataEncoding sizeInBits="0" encoding="unsigned" />
8
+ <xtce:UnitSet />
9
+ </xtce:IntegerParameterType>
10
+ <xtce:IntegerParameterType name="uint1" signed="false">
11
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned" />
12
+ <xtce:UnitSet />
13
+ </xtce:IntegerParameterType>
14
+ <xtce:IntegerParameterType name="uint2" signed="false">
15
+ <xtce:IntegerDataEncoding sizeInBits="2" encoding="unsigned" />
16
+ <xtce:UnitSet />
17
+ </xtce:IntegerParameterType>
18
+ <xtce:IntegerParameterType name="uint3" signed="false">
19
+ <xtce:IntegerDataEncoding sizeInBits="3" encoding="unsigned" />
20
+ <xtce:UnitSet />
21
+ </xtce:IntegerParameterType>
22
+ <xtce:IntegerParameterType name="uint4" signed="false">
23
+ <xtce:IntegerDataEncoding sizeInBits="4" encoding="unsigned" />
24
+ <xtce:UnitSet />
25
+ </xtce:IntegerParameterType>
26
+ <xtce:IntegerParameterType name="uint5" signed="false">
27
+ <xtce:IntegerDataEncoding sizeInBits="5" encoding="unsigned" />
28
+ <xtce:UnitSet />
29
+ </xtce:IntegerParameterType>
30
+ <xtce:IntegerParameterType name="uint6" signed="false">
31
+ <xtce:IntegerDataEncoding sizeInBits="6" encoding="unsigned" />
32
+ <xtce:UnitSet />
33
+ </xtce:IntegerParameterType>
34
+ <xtce:IntegerParameterType name="uint7" signed="false">
35
+ <xtce:IntegerDataEncoding sizeInBits="7" encoding="unsigned" />
36
+ <xtce:UnitSet />
37
+ </xtce:IntegerParameterType>
38
+ <xtce:IntegerParameterType name="uint8" signed="false">
39
+ <xtce:IntegerDataEncoding sizeInBits="8" encoding="unsigned" />
40
+ <xtce:UnitSet />
41
+ </xtce:IntegerParameterType>
42
+ <xtce:IntegerParameterType name="uint9" signed="false">
43
+ <xtce:IntegerDataEncoding sizeInBits="9" encoding="unsigned" />
44
+ <xtce:UnitSet />
45
+ </xtce:IntegerParameterType>
46
+ <xtce:IntegerParameterType name="uint10" signed="false">
47
+ <xtce:IntegerDataEncoding sizeInBits="10" encoding="unsigned" />
48
+ <xtce:UnitSet />
49
+ </xtce:IntegerParameterType>
50
+ <xtce:IntegerParameterType name="uint11" signed="false">
51
+ <xtce:IntegerDataEncoding sizeInBits="11" encoding="unsigned" />
52
+ <xtce:UnitSet />
53
+ </xtce:IntegerParameterType>
54
+ <xtce:IntegerParameterType name="uint12" signed="false">
55
+ <xtce:IntegerDataEncoding sizeInBits="12" encoding="unsigned" />
56
+ <xtce:UnitSet />
57
+ </xtce:IntegerParameterType>
58
+ <xtce:IntegerParameterType name="uint13" signed="false">
59
+ <xtce:IntegerDataEncoding sizeInBits="13" encoding="unsigned" />
60
+ <xtce:UnitSet />
61
+ </xtce:IntegerParameterType>
62
+ <xtce:IntegerParameterType name="uint14" signed="false">
63
+ <xtce:IntegerDataEncoding sizeInBits="14" encoding="unsigned" />
64
+ <xtce:UnitSet />
65
+ </xtce:IntegerParameterType>
66
+ <xtce:IntegerParameterType name="uint15" signed="false">
67
+ <xtce:IntegerDataEncoding sizeInBits="15" encoding="unsigned" />
68
+ <xtce:UnitSet />
69
+ </xtce:IntegerParameterType>
70
+ <xtce:IntegerParameterType name="uint16" signed="false">
71
+ <xtce:IntegerDataEncoding sizeInBits="16" encoding="unsigned" />
72
+ <xtce:UnitSet />
73
+ </xtce:IntegerParameterType>
74
+ <xtce:IntegerParameterType name="uint17" signed="false">
75
+ <xtce:IntegerDataEncoding sizeInBits="17" encoding="unsigned" />
76
+ <xtce:UnitSet />
77
+ </xtce:IntegerParameterType>
78
+ <xtce:IntegerParameterType name="uint18" signed="false">
79
+ <xtce:IntegerDataEncoding sizeInBits="18" encoding="unsigned" />
80
+ <xtce:UnitSet />
81
+ </xtce:IntegerParameterType>
82
+ <xtce:IntegerParameterType name="uint19" signed="false">
83
+ <xtce:IntegerDataEncoding sizeInBits="19" encoding="unsigned" />
84
+ <xtce:UnitSet />
85
+ </xtce:IntegerParameterType>
86
+ <xtce:IntegerParameterType name="uint20" signed="false">
87
+ <xtce:IntegerDataEncoding sizeInBits="20" encoding="unsigned" />
88
+ <xtce:UnitSet />
89
+ </xtce:IntegerParameterType>
90
+ <xtce:IntegerParameterType name="uint21" signed="false">
91
+ <xtce:IntegerDataEncoding sizeInBits="21" encoding="unsigned" />
92
+ <xtce:UnitSet />
93
+ </xtce:IntegerParameterType>
94
+ <xtce:IntegerParameterType name="uint22" signed="false">
95
+ <xtce:IntegerDataEncoding sizeInBits="22" encoding="unsigned" />
96
+ <xtce:UnitSet />
97
+ </xtce:IntegerParameterType>
98
+ <xtce:IntegerParameterType name="uint23" signed="false">
99
+ <xtce:IntegerDataEncoding sizeInBits="23" encoding="unsigned" />
100
+ <xtce:UnitSet />
101
+ </xtce:IntegerParameterType>
102
+ <xtce:IntegerParameterType name="uint24" signed="false">
103
+ <xtce:IntegerDataEncoding sizeInBits="24" encoding="unsigned" />
104
+ <xtce:UnitSet />
105
+ </xtce:IntegerParameterType>
106
+ <xtce:IntegerParameterType name="uint25" signed="false">
107
+ <xtce:IntegerDataEncoding sizeInBits="25" encoding="unsigned" />
108
+ <xtce:UnitSet />
109
+ </xtce:IntegerParameterType>
110
+ <xtce:IntegerParameterType name="uint26" signed="false">
111
+ <xtce:IntegerDataEncoding sizeInBits="26" encoding="unsigned" />
112
+ <xtce:UnitSet />
113
+ </xtce:IntegerParameterType>
114
+ <xtce:IntegerParameterType name="uint27" signed="false">
115
+ <xtce:IntegerDataEncoding sizeInBits="27" encoding="unsigned" />
116
+ <xtce:UnitSet />
117
+ </xtce:IntegerParameterType>
118
+ <xtce:IntegerParameterType name="uint28" signed="false">
119
+ <xtce:IntegerDataEncoding sizeInBits="28" encoding="unsigned" />
120
+ <xtce:UnitSet />
121
+ </xtce:IntegerParameterType>
122
+ <xtce:IntegerParameterType name="uint29" signed="false">
123
+ <xtce:IntegerDataEncoding sizeInBits="29" encoding="unsigned" />
124
+ <xtce:UnitSet />
125
+ </xtce:IntegerParameterType>
126
+ <xtce:IntegerParameterType name="uint30" signed="false">
127
+ <xtce:IntegerDataEncoding sizeInBits="30" encoding="unsigned" />
128
+ <xtce:UnitSet />
129
+ </xtce:IntegerParameterType>
130
+ <xtce:IntegerParameterType name="uint31" signed="false">
131
+ <xtce:IntegerDataEncoding sizeInBits="31" encoding="unsigned" />
132
+ <xtce:UnitSet />
133
+ </xtce:IntegerParameterType>
134
+ <xtce:IntegerParameterType name="uint32" signed="false">
135
+ <xtce:IntegerDataEncoding sizeInBits="32" encoding="unsigned" />
136
+ <xtce:UnitSet />
137
+ </xtce:IntegerParameterType>
138
+ <xtce:BinaryParameterType name="fastdata">
139
+ <xtce:UnitSet/>
140
+ <xtce:BinaryDataEncoding>
141
+ <xtce:SizeInBits>
142
+ <xtce:DynamicValue>
143
+ <xtce:ParameterInstanceRef parameterRef="PKT_LEN"/>
144
+ <!--Equation: (PKT_LEN+7)*8-112 -->
145
+ <xtce:LinearAdjustment intercept="-56" slope="8"/>
146
+ </xtce:DynamicValue>
147
+ </xtce:SizeInBits>
148
+ </xtce:BinaryDataEncoding>
149
+ </xtce:BinaryParameterType>
150
+ <xtce:BinaryParameterType name="packetdata">
151
+ <xtce:UnitSet/>
152
+ <xtce:BinaryDataEncoding>
153
+ <xtce:SizeInBits>
154
+ <xtce:DynamicValue>
155
+ <xtce:ParameterInstanceRef parameterRef="PKT_LEN"/>
156
+ <!--Equation: (PKT_LEN+7)*8-120 -->
157
+ <!--7: packet header + 1 -->
158
+ <!--120: start bit -->
159
+ <xtce:LinearAdjustment intercept="-64" slope="8"/>
160
+ </xtce:DynamicValue>
161
+ </xtce:SizeInBits>
162
+ </xtce:BinaryDataEncoding>
163
+ </xtce:BinaryParameterType>
164
+ <xtce:BinaryParameterType name="eventdata">
165
+ <xtce:UnitSet/>
166
+ <xtce:BinaryDataEncoding>
167
+ <xtce:SizeInBits>
168
+ <xtce:DynamicValue>
169
+ <xtce:ParameterInstanceRef parameterRef="PKT_LEN"/>
170
+ <!--Explanation: fixed length data (including the header) is 72bits (32+8+8+1+15+8). -->
171
+ <!-- PKT_LEN field counts from 0-->
172
+ <!--8 * (PKT_LEN + 1) - 72-->
173
+ <!--Equation: 8 * PKT_LEN - 64 -->
174
+ <xtce:LinearAdjustment intercept="-64" slope="8"/>
175
+ </xtce:DynamicValue>
176
+ </xtce:SizeInBits>
177
+ </xtce:BinaryDataEncoding>
178
+ </xtce:BinaryParameterType>
179
+ <!-- Enumerated Data Types -->
180
+ <xtce:EnumeratedParameterType name="spin_period_validity_enum" signed="false">
181
+ <xtce:UnitSet/>
182
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
183
+ <xtce:EnumerationList>
184
+ <xtce:Enumeration label="INVALID" value="0"/>
185
+ <xtce:Enumeration label="VALID" value="1"/>
186
+ </xtce:EnumerationList>
187
+ </xtce:EnumeratedParameterType>
188
+ <xtce:EnumeratedParameterType name="spin_phase_validity_enum" signed="false">
189
+ <xtce:UnitSet/>
190
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
191
+ <xtce:EnumerationList>
192
+ <xtce:Enumeration label="INVALID" value="0"/>
193
+ <xtce:Enumeration label="VALID" value="1"/>
194
+ </xtce:EnumerationList>
195
+ </xtce:EnumeratedParameterType>
196
+ <xtce:EnumeratedParameterType name="spin_period_source_enum" signed="false">
197
+ <xtce:UnitSet/>
198
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
199
+ <xtce:EnumerationList>
200
+ <xtce:Enumeration label="SAFING" value="0"/>
201
+ <xtce:Enumeration label="NOMINAL" value="1"/>
202
+ </xtce:EnumerationList>
203
+ </xtce:EnumeratedParameterType>
204
+ <xtce:EnumeratedParameterType name="catbed_heater_enum" signed="false">
205
+ <xtce:UnitSet/>
206
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
207
+ <xtce:EnumerationList>
208
+ <xtce:Enumeration label="UNFLAGGED" value="0"/>
209
+ <xtce:Enumeration label="FLAGGED" value="1"/>
210
+ </xtce:EnumerationList>
211
+ </xtce:EnumeratedParameterType>
212
+ <xtce:EnumeratedParameterType name="hwmode_enum" signed="false">
213
+ <xtce:UnitSet/>
214
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
215
+ <xtce:EnumerationList>
216
+ <xtce:Enumeration label="MODE0" value="0"/>
217
+ <xtce:Enumeration label="MODE1" value="1"/>
218
+ </xtce:EnumerationList>
219
+ </xtce:EnumeratedParameterType>
220
+ <xtce:EnumeratedParameterType name="imcenb_enum" signed="false">
221
+ <xtce:UnitSet/>
222
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
223
+ <xtce:EnumerationList>
224
+ <xtce:Enumeration label="MODE0" value="0"/>
225
+ <xtce:Enumeration label="MODE1" value="1"/>
226
+ </xtce:EnumerationList>
227
+ </xtce:EnumeratedParameterType>
228
+ <xtce:EnumeratedParameterType name="leftdeflect_enum" signed="false">
229
+ <xtce:UnitSet/>
230
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
231
+ <xtce:EnumerationList>
232
+ <xtce:Enumeration label="MODE0" value="0"/>
233
+ <xtce:Enumeration label="MODE1" value="1"/>
234
+ </xtce:EnumerationList>
235
+ </xtce:EnumeratedParameterType>
236
+ <xtce:EnumeratedParameterType name="rightdeflect_enum" signed="false">
237
+ <xtce:UnitSet/>
238
+ <xtce:IntegerDataEncoding sizeInBits="1" encoding="unsigned"/>
239
+ <xtce:EnumerationList>
240
+ <xtce:Enumeration label="MODE0" value="0"/>
241
+ <xtce:Enumeration label="MODE1" value="1"/>
242
+ </xtce:EnumerationList>
243
+ </xtce:EnumeratedParameterType>
244
+ </xtce:ParameterTypeSet>
245
+ <xtce:ParameterSet>
246
+ <!-- Within the ParameterSet, utilize the data types defined in the ParameterTypeSet to create variables
247
+ with their respective data types. -->
248
+
249
+ <!--CCSDS Header Elements-->
250
+ <xtce:Parameter name="VERSION" parameterTypeRef="uint3">
251
+ <xtce:LongDescription>CCSDS Packet Version Number (always 0)</xtce:LongDescription>
252
+ </xtce:Parameter>
253
+ <xtce:Parameter name="TYPE" parameterTypeRef="uint1">
254
+ <xtce:LongDescription>CCSDS Packet Type Indicator (0=telemetry)</xtce:LongDescription>
255
+ </xtce:Parameter>
256
+ <xtce:Parameter name="SEC_HDR_FLG" parameterTypeRef="uint1">
257
+ <xtce:LongDescription>CCSDS Packet Secondary Header Flag (always 1)</xtce:LongDescription>
258
+ </xtce:Parameter>
259
+ <xtce:Parameter name="PKT_APID" parameterTypeRef="uint11">
260
+ <xtce:LongDescription>CCSDS Packet Application Process ID</xtce:LongDescription>
261
+ </xtce:Parameter>
262
+ <xtce:Parameter name="SEQ_FLGS" parameterTypeRef="uint2">
263
+ <xtce:LongDescription>CCSDS Packet Grouping Flags (3=not part of group)</xtce:LongDescription>
264
+ </xtce:Parameter>
265
+ <xtce:Parameter name="SRC_SEQ_CTR" parameterTypeRef="uint14">
266
+ <xtce:LongDescription>CCSDS Packet Sequence Count (increments with each new packet)</xtce:LongDescription>
267
+ </xtce:Parameter>
268
+ <xtce:Parameter name="PKT_LEN" parameterTypeRef="uint16">
269
+ <xtce:LongDescription>CCSDS Packet Length (number of bytes after Packet length minus 1)</xtce:LongDescription>
270
+ </xtce:Parameter>
271
+ <!-- Start metadata -->
272
+ <xtce:Parameter name="SHCOARSE" parameterTypeRef="uint32">
273
+ <xtce:LongDescription>CCSDS Packet Time Stamp (coarse time)</xtce:LongDescription>
274
+ </xtce:Parameter>
275
+ <xtce:Parameter name="TIMESPINSTART" parameterTypeRef="uint32">
276
+ <xtce:LongDescription>Spin Start Seconds</xtce:LongDescription>
277
+ </xtce:Parameter>
278
+ <xtce:Parameter name="TIMESPINSTARTSUB" parameterTypeRef="uint16">
279
+ <xtce:LongDescription>Spin Start Subseconds</xtce:LongDescription>
280
+ </xtce:Parameter>
281
+ <xtce:Parameter name="DURATION" parameterTypeRef="uint16">
282
+ <xtce:LongDescription>Spin Duration</xtce:LongDescription>
283
+ </xtce:Parameter>
284
+ <xtce:Parameter name="SPINNUMBER" parameterTypeRef="uint32">
285
+ <xtce:LongDescription>Spin Number</xtce:LongDescription>
286
+ </xtce:Parameter>
287
+ <xtce:Parameter name="TIMESPINDATA" parameterTypeRef="uint32">
288
+ <xtce:LongDescription>Spin DataTime</xtce:LongDescription>
289
+ </xtce:Parameter>
290
+ <xtce:Parameter name="SPINPERIOD" parameterTypeRef="uint16">
291
+ <xtce:LongDescription>Spin Period</xtce:LongDescription>
292
+ </xtce:Parameter>
293
+ <xtce:Parameter name="SPINPHASE" parameterTypeRef="uint16">
294
+ <xtce:LongDescription>Spin Phase</xtce:LongDescription>
295
+ </xtce:Parameter>
296
+ <xtce:Parameter name="SPINPERIODVALID" parameterTypeRef="spin_period_validity_enum">
297
+ <xtce:LongDescription>
298
+ Spin period valid bit:
299
+ '1' -- valid,
300
+ '0' -- invalid
301
+ </xtce:LongDescription>
302
+ </xtce:Parameter>
303
+ <xtce:Parameter name="SPINPHASEVALID" parameterTypeRef="spin_phase_validity_enum">
304
+ <xtce:LongDescription>
305
+ Spin phase valid bit:
306
+ '1' -- valid,
307
+ '0' -- invalid
308
+ </xtce:LongDescription>
309
+ </xtce:Parameter>
310
+ <xtce:Parameter name="SPINPERIODSOURCE" parameterTypeRef="spin_period_source_enum">
311
+ <xtce:LongDescription>
312
+ Spin period source bit:
313
+ '1' -- sun sensor (safing),
314
+ '0' -- star tracker (nominal)
315
+ </xtce:LongDescription>
316
+ </xtce:Parameter>
317
+ <xtce:Parameter name="CATBEDHEATERFLAG" parameterTypeRef="catbed_heater_enum">
318
+ <xtce:LongDescription>
319
+ Catbead heater flag:
320
+ '1' -- flagged,
321
+ '0' -- unflagged
322
+ </xtce:LongDescription>
323
+ </xtce:Parameter>
324
+ <xtce:Parameter name="SPARE1" parameterTypeRef="uint4">
325
+ <xtce:LongDescription>Spare</xtce:LongDescription>
326
+ </xtce:Parameter>
327
+ <xtce:Parameter name="INTS" parameterTypeRef="uint8">
328
+ <xtce:LongDescription>Spins</xtce:LongDescription>
329
+ </xtce:Parameter>
330
+ <xtce:Parameter name="INTN1" parameterTypeRef="uint8">
331
+ <xtce:LongDescription>Integration Multiplier 1</xtce:LongDescription>
332
+ </xtce:Parameter>
333
+ <xtce:Parameter name="INTN2" parameterTypeRef="uint8">
334
+ <xtce:LongDescription>Integration Multiplier 2</xtce:LongDescription>
335
+ </xtce:Parameter>
336
+ <xtce:Parameter name="SPARE2" parameterTypeRef="uint4">
337
+ <xtce:LongDescription>Reserved</xtce:LongDescription>
338
+ </xtce:Parameter>
339
+ <xtce:Parameter name="HWMODE" parameterTypeRef="hwmode_enum">
340
+ <xtce:LongDescription>
341
+ Hardware mode:
342
+ '1' -- mode1,
343
+ '0' -- mode0
344
+ </xtce:LongDescription>
345
+ </xtce:Parameter>
346
+ <xtce:Parameter name="IMCENB" parameterTypeRef="imcenb_enum">
347
+ <xtce:LongDescription>
348
+ IMCENB mode:
349
+ '1' -- mode1,
350
+ '0' -- mode0
351
+ </xtce:LongDescription>
352
+ </xtce:Parameter>
353
+ <xtce:Parameter name="LEFTDEFLECTIONCHARGE" parameterTypeRef="leftdeflect_enum">
354
+ <xtce:LongDescription>
355
+ LEFTDEFLECTIONCHARGE mode:
356
+ '1' -- mode1,
357
+ '0' -- mode0
358
+ </xtce:LongDescription>
359
+ </xtce:Parameter>
360
+ <xtce:Parameter name="RIGHTDEFLECTIONCHARGE" parameterTypeRef="rightdeflect_enum">
361
+ <xtce:LongDescription>
362
+ RIGHTDEFLECTIONCHARGE mode:
363
+ '1' -- mode1,
364
+ '0' -- mode0
365
+ </xtce:LongDescription>
366
+ </xtce:Parameter>
367
+ <xtce:Parameter name="SPARE3" parameterTypeRef="uint8">
368
+ <xtce:LongDescription>Spare</xtce:LongDescription>
369
+ </xtce:Parameter>
370
+ <!-- Unique to Image Rates -->
371
+ <xtce:Parameter name="SID" parameterTypeRef="uint8">
372
+ <xtce:LongDescription>Science ID</xtce:LongDescription>
373
+ </xtce:Parameter>
374
+ <xtce:Parameter name="SPIN" parameterTypeRef="uint8">
375
+ <xtce:LongDescription>Spin number at integration start</xtce:LongDescription>
376
+ </xtce:Parameter>
377
+ <xtce:Parameter name="ABORTFLAG" parameterTypeRef="uint1">
378
+ <xtce:LongDescription>Integration aborted?</xtce:LongDescription>
379
+ </xtce:Parameter>
380
+ <xtce:Parameter name="STARTDELAY" parameterTypeRef="uint15">
381
+ <xtce:LongDescription>Integration start delay (ms)</xtce:LongDescription>
382
+ </xtce:Parameter>
383
+ <xtce:Parameter name="FASTDATA_00" parameterTypeRef="fastdata">
384
+ <xtce:LongDescription>Fast-compressed rate data</xtce:LongDescription>
385
+ </xtce:Parameter>
386
+ <!-- Unique to TOF -->
387
+ <xtce:Parameter name="P00" parameterTypeRef="uint8">
388
+ <xtce:LongDescription>Starting pixel</xtce:LongDescription>
389
+ </xtce:Parameter>
390
+ <xtce:Parameter name="PACKETDATA" parameterTypeRef="packetdata">
391
+ <xtce:LongDescription>Image Packet Data</xtce:LongDescription>
392
+ </xtce:Parameter>
393
+ <!-- Unique to Raw Events -->
394
+ <xtce:Parameter name="COUNT" parameterTypeRef="uint8">
395
+ <xtce:LongDescription>Event Count</xtce:LongDescription>
396
+ </xtce:Parameter>
397
+ <xtce:Parameter name="EVENTDATA" parameterTypeRef="eventdata">
398
+ <xtce:LongDescription>Event Data, 166 bits per event</xtce:LongDescription>
399
+ </xtce:Parameter>
400
+ </xtce:ParameterSet>
401
+ <!-- End metadata -->
402
+ <xtce:ContainerSet>
403
+ <!--CCSDS Header Elements-->
404
+ <xtce:SequenceContainer name="CCSDSPacket" abstract="true">
405
+ <xtce:EntryList>
406
+ <xtce:ParameterRefEntry parameterRef="VERSION" />
407
+ <xtce:ParameterRefEntry parameterRef="TYPE" />
408
+ <xtce:ParameterRefEntry parameterRef="SEC_HDR_FLG" />
409
+ <xtce:ParameterRefEntry parameterRef="PKT_APID" />
410
+ <xtce:ParameterRefEntry parameterRef="SEQ_FLGS" />
411
+ <xtce:ParameterRefEntry parameterRef="SRC_SEQ_CTR" />
412
+ <xtce:ParameterRefEntry parameterRef="PKT_LEN" />
413
+ </xtce:EntryList>
414
+ </xtce:SequenceContainer>
415
+ <xtce:SequenceContainer name="UltraAuxiliaryPacket">
416
+ <xtce:BaseContainer containerRef="CCSDSPacket">
417
+ <xtce:RestrictionCriteria>
418
+ <xtce:BooleanExpression>
419
+ <xtce:ORedConditions>
420
+ <xtce:Condition>
421
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
422
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
423
+ <xtce:Value>880</xtce:Value>
424
+ </xtce:Condition>
425
+ <xtce:Condition>
426
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
427
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
428
+ <xtce:Value>994</xtce:Value>
429
+ </xtce:Condition>
430
+ </xtce:ORedConditions>
431
+ </xtce:BooleanExpression>
432
+ </xtce:RestrictionCriteria>
433
+ </xtce:BaseContainer>
434
+ <xtce:EntryList>
435
+ <xtce:ParameterRefEntry parameterRef="SHCOARSE" />
436
+ <xtce:ParameterRefEntry parameterRef="TIMESPINSTART"/>
437
+ <xtce:ParameterRefEntry parameterRef="TIMESPINSTARTSUB"/>
438
+ <xtce:ParameterRefEntry parameterRef="DURATION"/>
439
+ <xtce:ParameterRefEntry parameterRef="SPINNUMBER"/>
440
+ <xtce:ParameterRefEntry parameterRef="TIMESPINDATA"/>
441
+ <xtce:ParameterRefEntry parameterRef="SPINPERIOD"/>
442
+ <xtce:ParameterRefEntry parameterRef="SPINPHASE"/>
443
+ <xtce:ParameterRefEntry parameterRef="SPINPERIODVALID"/>
444
+ <xtce:ParameterRefEntry parameterRef="SPINPHASEVALID"/>
445
+ <xtce:ParameterRefEntry parameterRef="SPINPERIODSOURCE"/>
446
+ <xtce:ParameterRefEntry parameterRef="CATBEDHEATERFLAG"/>
447
+ <xtce:ParameterRefEntry parameterRef="SPARE1"/>
448
+ <xtce:ParameterRefEntry parameterRef="INTS"/>
449
+ <xtce:ParameterRefEntry parameterRef="INTN1"/>
450
+ <xtce:ParameterRefEntry parameterRef="INTN2"/>
451
+ <xtce:ParameterRefEntry parameterRef="SPARE2"/>
452
+ <xtce:ParameterRefEntry parameterRef="HWMODE"/>
453
+ <xtce:ParameterRefEntry parameterRef="IMCENB"/>
454
+ <xtce:ParameterRefEntry parameterRef="LEFTDEFLECTIONCHARGE"/>
455
+ <xtce:ParameterRefEntry parameterRef="RIGHTDEFLECTIONCHARGE"/>
456
+ <xtce:ParameterRefEntry parameterRef="SPARE3"/>
457
+ </xtce:EntryList>
458
+ </xtce:SequenceContainer>
459
+ <xtce:SequenceContainer name="UltraImageRatesPacket">
460
+ <xtce:BaseContainer containerRef="CCSDSPacket">
461
+ <xtce:RestrictionCriteria>
462
+ <xtce:BooleanExpression>
463
+ <xtce:ORedConditions>
464
+ <xtce:Condition>
465
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
466
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
467
+ <xtce:Value>881</xtce:Value>
468
+ </xtce:Condition>
469
+ <xtce:Condition>
470
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
471
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
472
+ <xtce:Value>945</xtce:Value>
473
+ </xtce:Condition>
474
+ </xtce:ORedConditions>
475
+ </xtce:BooleanExpression>
476
+ </xtce:RestrictionCriteria>
477
+ </xtce:BaseContainer>
478
+ <xtce:EntryList>
479
+ <xtce:ParameterRefEntry parameterRef="SHCOARSE" />
480
+ <xtce:ParameterRefEntry parameterRef="SID" />
481
+ <xtce:ParameterRefEntry parameterRef="SPIN" />
482
+ <xtce:ParameterRefEntry parameterRef="ABORTFLAG" />
483
+ <xtce:ParameterRefEntry parameterRef="STARTDELAY" />
484
+ <xtce:ParameterRefEntry parameterRef="FASTDATA_00" />
485
+ </xtce:EntryList>
486
+ </xtce:SequenceContainer>
487
+ <xtce:SequenceContainer name="UltraPHXTOFPacket">
488
+ <xtce:BaseContainer containerRef="CCSDSPacket">
489
+ <xtce:RestrictionCriteria>
490
+ <xtce:BooleanExpression>
491
+ <xtce:ORedConditions>
492
+ <xtce:Condition>
493
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
494
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
495
+ <xtce:Value>883</xtce:Value>
496
+ </xtce:Condition>
497
+ <xtce:Condition>
498
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
499
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
500
+ <xtce:Value>947</xtce:Value>
501
+ </xtce:Condition>
502
+ </xtce:ORedConditions>
503
+ </xtce:BooleanExpression>
504
+ </xtce:RestrictionCriteria>
505
+ </xtce:BaseContainer>
506
+ <xtce:EntryList>
507
+ <xtce:ParameterRefEntry parameterRef="SHCOARSE" />
508
+ <xtce:ParameterRefEntry parameterRef="SID" />
509
+ <xtce:ParameterRefEntry parameterRef="SPIN" />
510
+ <xtce:ParameterRefEntry parameterRef="ABORTFLAG" />
511
+ <xtce:ParameterRefEntry parameterRef="STARTDELAY" />
512
+ <xtce:ParameterRefEntry parameterRef="P00" />
513
+ <xtce:ParameterRefEntry parameterRef="PACKETDATA" />
514
+ </xtce:EntryList>
515
+ </xtce:SequenceContainer>
516
+ <xtce:SequenceContainer name="UltraRawEventsPacket">
517
+ <xtce:BaseContainer containerRef="CCSDSPacket">
518
+ <xtce:RestrictionCriteria>
519
+ <xtce:BooleanExpression>
520
+ <xtce:ORedConditions>
521
+ <xtce:Condition>
522
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
523
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
524
+ <xtce:Value>896</xtce:Value>
525
+ </xtce:Condition>
526
+ <xtce:Condition>
527
+ <xtce:ParameterInstanceRef parameterRef="PKT_APID" useCalibratedValue="false"/>
528
+ <xtce:ComparisonOperator>==</xtce:ComparisonOperator>
529
+ <xtce:Value>960</xtce:Value>
530
+ </xtce:Condition>
531
+ </xtce:ORedConditions>
532
+ </xtce:BooleanExpression>
533
+ </xtce:RestrictionCriteria>
534
+ </xtce:BaseContainer>
535
+ <xtce:EntryList>
536
+ <xtce:ParameterRefEntry parameterRef="SHCOARSE" />
537
+ <xtce:ParameterRefEntry parameterRef="SID" />
538
+ <xtce:ParameterRefEntry parameterRef="SPIN" />
539
+ <xtce:ParameterRefEntry parameterRef="ABORTFLAG" />
540
+ <xtce:ParameterRefEntry parameterRef="STARTDELAY" />
541
+ <xtce:ParameterRefEntry parameterRef="COUNT" />
542
+ <xtce:ParameterRefEntry parameterRef="EVENTDATA" />
543
+ </xtce:EntryList>
544
+ </xtce:SequenceContainer>
545
+ </xtce:ContainerSet>
546
+ </xtce:TelemetryMetaData>
547
+ </xtce:SpaceSystem>
File without changes
File without changes
@@ -0,0 +1,50 @@
1
+ """Create dataset."""
2
+
3
+ import xarray as xr
4
+
5
+ from imap_processing.cdf.imap_cdf_manager import ImapCdfAttributes
6
+
7
+
8
+ def create_dataset(data_dict: dict, name: str, level: str) -> xr.Dataset:
9
+ """
10
+ Create xarray for L1b data.
11
+
12
+ Parameters
13
+ ----------
14
+ data_dict : dict
15
+ L1b data dictionary.
16
+ name : str
17
+ Name of the dataset.
18
+ level : str
19
+ Level of the dataset.
20
+
21
+ Returns
22
+ -------
23
+ dataset : xarray.Dataset
24
+ Data in xarray format.
25
+ """
26
+ cdf_manager = ImapCdfAttributes()
27
+ cdf_manager.add_instrument_global_attrs("ultra")
28
+ cdf_manager.add_instrument_variable_attrs("ultra", level)
29
+ epoch_time = xr.DataArray(
30
+ data_dict["epoch"],
31
+ name="epoch",
32
+ dims=["epoch"],
33
+ attrs=cdf_manager.get_variable_attributes("epoch"),
34
+ )
35
+
36
+ dataset = xr.Dataset(
37
+ coords={"epoch": epoch_time},
38
+ attrs=cdf_manager.get_global_attributes(name),
39
+ )
40
+
41
+ for key in data_dict.keys():
42
+ if key == "epoch":
43
+ continue
44
+ dataset[key] = xr.DataArray(
45
+ data_dict[key],
46
+ dims=["epoch"],
47
+ attrs=cdf_manager.get_variable_attributes(key),
48
+ )
49
+
50
+ return dataset