imap-processing 0.11.0__py3-none-any.whl → 0.13.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.

Potentially problematic release.


This version of imap-processing might be problematic. Click here for more details.

Files changed (415) hide show
  1. imap_processing/__init__.py +11 -11
  2. imap_processing/_version.py +2 -2
  3. imap_processing/ccsds/ccsds_data.py +1 -2
  4. imap_processing/ccsds/excel_to_xtce.py +66 -18
  5. imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +24 -40
  6. imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +934 -42
  7. imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +1846 -128
  8. imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +0 -5
  9. imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +10 -11
  10. imap_processing/cdf/config/imap_hi_variable_attrs.yaml +17 -19
  11. imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +27 -14
  12. imap_processing/cdf/config/imap_hit_l1a_variable_attrs.yaml +106 -116
  13. imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +120 -145
  14. imap_processing/cdf/config/imap_hit_l2_variable_attrs.yaml +14 -0
  15. imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +25 -9
  16. imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +6 -4
  17. imap_processing/cdf/config/imap_idex_l1b_variable_attrs.yaml +3 -3
  18. imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +0 -12
  19. imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +1 -1
  20. imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +23 -20
  21. imap_processing/cdf/config/imap_mag_l1a_variable_attrs.yaml +361 -0
  22. imap_processing/cdf/config/imap_mag_l1b_variable_attrs.yaml +160 -0
  23. imap_processing/cdf/config/imap_mag_l1c_variable_attrs.yaml +160 -0
  24. imap_processing/cdf/config/imap_spacecraft_global_cdf_attrs.yaml +18 -0
  25. imap_processing/cdf/config/imap_spacecraft_variable_attrs.yaml +40 -0
  26. imap_processing/cdf/config/imap_swapi_global_cdf_attrs.yaml +1 -5
  27. imap_processing/cdf/config/imap_swapi_variable_attrs.yaml +22 -0
  28. imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +12 -4
  29. imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +16 -2
  30. imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +64 -52
  31. imap_processing/cdf/config/imap_swe_l2_variable_attrs.yaml +71 -47
  32. imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +180 -19
  33. imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +5045 -41
  34. imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +80 -17
  35. imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +32 -57
  36. imap_processing/cdf/utils.py +52 -38
  37. imap_processing/cli.py +477 -233
  38. imap_processing/codice/codice_l1a.py +466 -131
  39. imap_processing/codice/codice_l1b.py +51 -152
  40. imap_processing/codice/constants.py +1360 -569
  41. imap_processing/codice/decompress.py +2 -6
  42. imap_processing/ena_maps/ena_maps.py +1103 -146
  43. imap_processing/ena_maps/utils/coordinates.py +19 -0
  44. imap_processing/ena_maps/utils/map_utils.py +14 -17
  45. imap_processing/ena_maps/utils/spatial_utils.py +55 -52
  46. imap_processing/glows/l1a/glows_l1a.py +28 -99
  47. imap_processing/glows/l1a/glows_l1a_data.py +2 -2
  48. imap_processing/glows/l1b/glows_l1b.py +1 -4
  49. imap_processing/glows/l1b/glows_l1b_data.py +1 -3
  50. imap_processing/glows/l2/glows_l2.py +2 -5
  51. imap_processing/hi/l1a/hi_l1a.py +54 -29
  52. imap_processing/hi/l1a/histogram.py +0 -1
  53. imap_processing/hi/l1a/science_direct_event.py +6 -8
  54. imap_processing/hi/l1b/hi_l1b.py +111 -82
  55. imap_processing/hi/l1c/hi_l1c.py +416 -32
  56. imap_processing/hi/utils.py +58 -12
  57. imap_processing/hit/ancillary/imap_hit_l1b-to-l2-sector-dt0-factors_20250219_v002.csv +81 -0
  58. imap_processing/hit/ancillary/imap_hit_l1b-to-l2-standard-dt0-factors_20250219_v002.csv +205 -0
  59. imap_processing/hit/ancillary/imap_hit_l1b-to-l2-standard-dt1-factors_20250219_v002.csv +205 -0
  60. imap_processing/hit/ancillary/imap_hit_l1b-to-l2-standard-dt2-factors_20250219_v002.csv +205 -0
  61. imap_processing/hit/ancillary/imap_hit_l1b-to-l2-standard-dt3-factors_20250219_v002.csv +205 -0
  62. imap_processing/hit/ancillary/imap_hit_l1b-to-l2-summed-dt0-factors_20250219_v002.csv +68 -0
  63. imap_processing/hit/hit_utils.py +235 -5
  64. imap_processing/hit/l0/constants.py +20 -11
  65. imap_processing/hit/l0/decom_hit.py +21 -5
  66. imap_processing/hit/l1a/hit_l1a.py +71 -75
  67. imap_processing/hit/l1b/constants.py +321 -0
  68. imap_processing/hit/l1b/hit_l1b.py +377 -67
  69. imap_processing/hit/l2/constants.py +318 -0
  70. imap_processing/hit/l2/hit_l2.py +723 -0
  71. imap_processing/hit/packet_definitions/hit_packet_definitions.xml +1323 -71
  72. imap_processing/ialirt/l0/mag_l0_ialirt_data.py +155 -0
  73. imap_processing/ialirt/l0/parse_mag.py +374 -0
  74. imap_processing/ialirt/l0/process_swapi.py +69 -0
  75. imap_processing/ialirt/l0/process_swe.py +548 -0
  76. imap_processing/ialirt/packet_definitions/ialirt.xml +216 -208
  77. imap_processing/ialirt/packet_definitions/ialirt_codicehi.xml +1 -1
  78. imap_processing/ialirt/packet_definitions/ialirt_codicelo.xml +1 -1
  79. imap_processing/ialirt/packet_definitions/ialirt_mag.xml +115 -0
  80. imap_processing/ialirt/packet_definitions/ialirt_swapi.xml +14 -14
  81. imap_processing/ialirt/utils/grouping.py +114 -0
  82. imap_processing/ialirt/utils/time.py +29 -0
  83. imap_processing/idex/atomic_masses.csv +22 -0
  84. imap_processing/idex/decode.py +2 -2
  85. imap_processing/idex/idex_constants.py +33 -0
  86. imap_processing/idex/idex_l0.py +22 -8
  87. imap_processing/idex/idex_l1a.py +81 -51
  88. imap_processing/idex/idex_l1b.py +13 -39
  89. imap_processing/idex/idex_l2a.py +823 -0
  90. imap_processing/idex/idex_l2b.py +120 -0
  91. imap_processing/idex/idex_variable_unpacking_and_eu_conversion.csv +11 -11
  92. imap_processing/idex/packet_definitions/idex_housekeeping_packet_definition.xml +9130 -0
  93. imap_processing/lo/l0/lo_science.py +7 -2
  94. imap_processing/lo/l1a/lo_l1a.py +1 -5
  95. imap_processing/lo/l1b/lo_l1b.py +702 -29
  96. imap_processing/lo/l1b/tof_conversions.py +11 -0
  97. imap_processing/lo/l1c/lo_l1c.py +1 -4
  98. imap_processing/mag/constants.py +51 -0
  99. imap_processing/mag/imap_mag_sdc_configuration_v001.py +8 -0
  100. imap_processing/mag/l0/decom_mag.py +10 -3
  101. imap_processing/mag/l1a/mag_l1a.py +23 -19
  102. imap_processing/mag/l1a/mag_l1a_data.py +35 -10
  103. imap_processing/mag/l1b/mag_l1b.py +259 -50
  104. imap_processing/mag/l1c/interpolation_methods.py +388 -0
  105. imap_processing/mag/l1c/mag_l1c.py +621 -17
  106. imap_processing/mag/l2/mag_l2.py +140 -0
  107. imap_processing/mag/l2/mag_l2_data.py +288 -0
  108. imap_processing/quality_flags.py +1 -0
  109. imap_processing/spacecraft/packet_definitions/scid_x252.xml +538 -0
  110. imap_processing/spacecraft/quaternions.py +121 -0
  111. imap_processing/spice/geometry.py +19 -22
  112. imap_processing/spice/kernels.py +0 -276
  113. imap_processing/spice/pointing_frame.py +257 -0
  114. imap_processing/spice/repoint.py +149 -0
  115. imap_processing/spice/spin.py +38 -33
  116. imap_processing/spice/time.py +24 -0
  117. imap_processing/swapi/l1/swapi_l1.py +20 -12
  118. imap_processing/swapi/l2/swapi_l2.py +116 -5
  119. imap_processing/swapi/swapi_utils.py +32 -0
  120. imap_processing/swe/l1a/swe_l1a.py +44 -12
  121. imap_processing/swe/l1a/swe_science.py +13 -13
  122. imap_processing/swe/l1b/swe_l1b.py +898 -23
  123. imap_processing/swe/l2/swe_l2.py +75 -136
  124. imap_processing/swe/packet_definitions/swe_packet_definition.xml +1121 -1
  125. imap_processing/swe/utils/swe_constants.py +64 -0
  126. imap_processing/swe/utils/swe_utils.py +85 -28
  127. imap_processing/tests/ccsds/test_data/expected_output.xml +40 -1
  128. imap_processing/tests/ccsds/test_excel_to_xtce.py +24 -21
  129. imap_processing/tests/cdf/test_data/imap_instrument2_global_cdf_attrs.yaml +0 -2
  130. imap_processing/tests/cdf/test_utils.py +14 -16
  131. imap_processing/tests/codice/conftest.py +44 -33
  132. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-counters-aggregated_20241110193700_v0.0.0.cdf +0 -0
  133. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-counters-singles_20241110193700_v0.0.0.cdf +0 -0
  134. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-ialirt_20241110193700_v0.0.0.cdf +0 -0
  135. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-omni_20241110193700_v0.0.0.cdf +0 -0
  136. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-pha_20241110193700_v0.0.0.cdf +0 -0
  137. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-priorities_20241110193700_v0.0.0.cdf +0 -0
  138. imap_processing/tests/codice/data/validation/imap_codice_l1a_hi-sectored_20241110193700_v0.0.0.cdf +0 -0
  139. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-counters-aggregated_20241110193700_v0.0.0.cdf +0 -0
  140. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-counters-singles_20241110193700_v0.0.0.cdf +0 -0
  141. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-ialirt_20241110193700_v0.0.0.cdf +0 -0
  142. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-nsw-angular_20241110193700_v0.0.0.cdf +0 -0
  143. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-nsw-priority_20241110193700_v0.0.0.cdf +0 -0
  144. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-nsw-species_20241110193700_v0.0.0.cdf +0 -0
  145. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-pha_20241110193700_v0.0.0.cdf +0 -0
  146. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-sw-angular_20241110193700_v0.0.0.cdf +0 -0
  147. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-sw-priority_20241110193700_v0.0.0.cdf +0 -0
  148. imap_processing/tests/codice/data/validation/imap_codice_l1a_lo-sw-species_20241110193700_v0.0.0.cdf +0 -0
  149. imap_processing/tests/codice/test_codice_l1a.py +126 -53
  150. imap_processing/tests/codice/test_codice_l1b.py +6 -7
  151. imap_processing/tests/codice/test_decompress.py +4 -4
  152. imap_processing/tests/conftest.py +239 -27
  153. imap_processing/tests/ena_maps/conftest.py +51 -0
  154. imap_processing/tests/ena_maps/test_ena_maps.py +1068 -110
  155. imap_processing/tests/ena_maps/test_map_utils.py +66 -43
  156. imap_processing/tests/ena_maps/test_spatial_utils.py +17 -21
  157. imap_processing/tests/glows/conftest.py +10 -14
  158. imap_processing/tests/glows/test_glows_decom.py +4 -4
  159. imap_processing/tests/glows/test_glows_l1a_cdf.py +6 -27
  160. imap_processing/tests/glows/test_glows_l1a_data.py +6 -8
  161. imap_processing/tests/glows/test_glows_l1b.py +11 -11
  162. imap_processing/tests/glows/test_glows_l1b_data.py +5 -5
  163. imap_processing/tests/glows/test_glows_l2.py +2 -8
  164. imap_processing/tests/hi/conftest.py +1 -1
  165. imap_processing/tests/hi/data/l0/H45_diag_fee_20250208.bin +0 -0
  166. imap_processing/tests/hi/data/l0/H45_diag_fee_20250208_verify.csv +205 -0
  167. imap_processing/tests/hi/test_hi_l1b.py +22 -27
  168. imap_processing/tests/hi/test_hi_l1c.py +249 -18
  169. imap_processing/tests/hi/test_l1a.py +35 -7
  170. imap_processing/tests/hi/test_science_direct_event.py +3 -3
  171. imap_processing/tests/hi/test_utils.py +24 -2
  172. imap_processing/tests/hit/helpers/l1_validation.py +74 -73
  173. imap_processing/tests/hit/test_data/hskp_sample.ccsds +0 -0
  174. imap_processing/tests/hit/test_data/imap_hit_l0_raw_20100105_v001.pkts +0 -0
  175. imap_processing/tests/hit/test_decom_hit.py +5 -1
  176. imap_processing/tests/hit/test_hit_l1a.py +32 -36
  177. imap_processing/tests/hit/test_hit_l1b.py +300 -81
  178. imap_processing/tests/hit/test_hit_l2.py +716 -0
  179. imap_processing/tests/hit/test_hit_utils.py +184 -7
  180. imap_processing/tests/hit/validation_data/hit_l1b_standard_sample2_nsrl_v4_3decimals.csv +62 -62
  181. imap_processing/tests/hit/validation_data/hskp_sample_eu_3_6_2025.csv +89 -0
  182. imap_processing/tests/hit/validation_data/hskp_sample_raw.csv +89 -88
  183. imap_processing/tests/hit/validation_data/sci_sample_raw.csv +1 -1
  184. imap_processing/tests/ialirt/data/l0/461971383-404.bin +0 -0
  185. imap_processing/tests/ialirt/data/l0/461971384-405.bin +0 -0
  186. imap_processing/tests/ialirt/data/l0/461971385-406.bin +0 -0
  187. imap_processing/tests/ialirt/data/l0/461971386-407.bin +0 -0
  188. imap_processing/tests/ialirt/data/l0/461971387-408.bin +0 -0
  189. imap_processing/tests/ialirt/data/l0/461971388-409.bin +0 -0
  190. imap_processing/tests/ialirt/data/l0/461971389-410.bin +0 -0
  191. imap_processing/tests/ialirt/data/l0/461971390-411.bin +0 -0
  192. imap_processing/tests/ialirt/data/l0/461971391-412.bin +0 -0
  193. imap_processing/tests/ialirt/data/l0/sample_decoded_i-alirt_data.csv +383 -0
  194. imap_processing/tests/ialirt/unit/test_decom_ialirt.py +16 -81
  195. imap_processing/tests/ialirt/unit/test_grouping.py +81 -0
  196. imap_processing/tests/ialirt/unit/test_parse_mag.py +223 -0
  197. imap_processing/tests/ialirt/unit/test_process_codicehi.py +3 -3
  198. imap_processing/tests/ialirt/unit/test_process_codicelo.py +3 -10
  199. imap_processing/tests/ialirt/unit/test_process_ephemeris.py +4 -4
  200. imap_processing/tests/ialirt/unit/test_process_hit.py +3 -3
  201. imap_processing/tests/ialirt/unit/test_process_swapi.py +24 -16
  202. imap_processing/tests/ialirt/unit/test_process_swe.py +319 -6
  203. imap_processing/tests/ialirt/unit/test_time.py +16 -0
  204. imap_processing/tests/idex/conftest.py +127 -6
  205. imap_processing/tests/idex/test_data/imap_idex_l0_raw_20231218_v001.pkts +0 -0
  206. imap_processing/tests/idex/test_data/imap_idex_l0_raw_20241206_v001.pkts +0 -0
  207. imap_processing/tests/idex/test_data/imap_idex_l0_raw_20250108_v001.pkts +0 -0
  208. imap_processing/tests/idex/test_data/impact_14_tof_high_data.txt +4508 -4508
  209. imap_processing/tests/idex/test_idex_l0.py +33 -11
  210. imap_processing/tests/idex/test_idex_l1a.py +92 -21
  211. imap_processing/tests/idex/test_idex_l1b.py +106 -27
  212. imap_processing/tests/idex/test_idex_l2a.py +399 -0
  213. imap_processing/tests/idex/test_idex_l2b.py +93 -0
  214. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_de_20241022_v002.cdf +0 -0
  215. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_spin_20241022_v002.cdf +0 -0
  216. imap_processing/tests/lo/test_lo_l1a.py +3 -3
  217. imap_processing/tests/lo/test_lo_l1b.py +515 -6
  218. imap_processing/tests/lo/test_lo_l1c.py +1 -1
  219. imap_processing/tests/lo/test_lo_science.py +7 -7
  220. imap_processing/tests/lo/test_star_sensor.py +1 -1
  221. imap_processing/tests/mag/conftest.py +120 -2
  222. imap_processing/tests/mag/test_mag_decom.py +5 -4
  223. imap_processing/tests/mag/test_mag_l1a.py +51 -7
  224. imap_processing/tests/mag/test_mag_l1b.py +40 -59
  225. imap_processing/tests/mag/test_mag_l1c.py +354 -19
  226. imap_processing/tests/mag/test_mag_l2.py +130 -0
  227. imap_processing/tests/mag/test_mag_validation.py +247 -26
  228. imap_processing/tests/mag/validation/L1b/T009/MAGScience-normal-(2,2)-8s-20250204-16h39.csv +17 -0
  229. imap_processing/tests/mag/validation/L1b/T009/mag-l1a-l1b-t009-magi-out.csv +16 -16
  230. imap_processing/tests/mag/validation/L1b/T009/mag-l1a-l1b-t009-mago-out.csv +16 -16
  231. imap_processing/tests/mag/validation/L1b/T010/MAGScience-normal-(2,2)-8s-20250206-12h05.csv +17 -0
  232. imap_processing/tests/mag/validation/L1b/T011/MAGScience-normal-(2,2)-8s-20250204-16h08.csv +17 -0
  233. imap_processing/tests/mag/validation/L1b/T011/mag-l1a-l1b-t011-magi-out.csv +16 -16
  234. imap_processing/tests/mag/validation/L1b/T011/mag-l1a-l1b-t011-mago-out.csv +16 -16
  235. imap_processing/tests/mag/validation/L1b/T012/MAGScience-normal-(2,2)-8s-20250204-16h08.csv +17 -0
  236. imap_processing/tests/mag/validation/L1b/T012/data.bin +0 -0
  237. imap_processing/tests/mag/validation/L1b/T012/field_like_all_ranges.txt +19200 -0
  238. imap_processing/tests/mag/validation/L1b/T012/mag-l1a-l1b-t012-cal.cdf +0 -0
  239. imap_processing/tests/mag/validation/L1b/T012/mag-l1a-l1b-t012-in.csv +17 -0
  240. imap_processing/tests/mag/validation/L1b/T012/mag-l1a-l1b-t012-magi-out.csv +17 -0
  241. imap_processing/tests/mag/validation/L1b/T012/mag-l1a-l1b-t012-mago-out.csv +17 -0
  242. imap_processing/tests/mag/validation/L1c/T013/mag-l1b-l1c-t013-magi-normal-in.csv +1217 -0
  243. imap_processing/tests/mag/validation/L1c/T013/mag-l1b-l1c-t013-magi-normal-out.csv +1857 -0
  244. imap_processing/tests/mag/validation/L1c/T013/mag-l1b-l1c-t013-mago-normal-in.csv +1217 -0
  245. imap_processing/tests/mag/validation/L1c/T013/mag-l1b-l1c-t013-mago-normal-out.csv +1857 -0
  246. imap_processing/tests/mag/validation/L1c/T014/mag-l1b-l1c-t014-magi-normal-in.csv +1217 -0
  247. imap_processing/tests/mag/validation/L1c/T014/mag-l1b-l1c-t014-magi-normal-out.csv +1793 -0
  248. imap_processing/tests/mag/validation/L1c/T014/mag-l1b-l1c-t014-mago-normal-in.csv +1217 -0
  249. imap_processing/tests/mag/validation/L1c/T014/mag-l1b-l1c-t014-mago-normal-out.csv +1793 -0
  250. imap_processing/tests/mag/validation/L1c/T015/mag-l1b-l1c-t015-magi-burst-in.csv +2561 -0
  251. imap_processing/tests/mag/validation/L1c/T015/mag-l1b-l1c-t015-magi-normal-in.csv +961 -0
  252. imap_processing/tests/mag/validation/L1c/T015/mag-l1b-l1c-t015-magi-normal-out.csv +1539 -0
  253. imap_processing/tests/mag/validation/L1c/T015/mag-l1b-l1c-t015-mago-normal-in.csv +1921 -0
  254. imap_processing/tests/mag/validation/L1c/T015/mag-l1b-l1c-t015-mago-normal-out.csv +2499 -0
  255. imap_processing/tests/mag/validation/L1c/T016/mag-l1b-l1c-t016-magi-normal-in.csv +865 -0
  256. imap_processing/tests/mag/validation/L1c/T016/mag-l1b-l1c-t016-magi-normal-out.csv +1196 -0
  257. imap_processing/tests/mag/validation/L1c/T016/mag-l1b-l1c-t016-mago-normal-in.csv +1729 -0
  258. imap_processing/tests/mag/validation/L1c/T016/mag-l1b-l1c-t016-mago-normal-out.csv +3053 -0
  259. imap_processing/tests/mag/validation/L2/imap_mag_l1b_norm-mago_20251017_v002.cdf +0 -0
  260. imap_processing/tests/mag/validation/calibration/imap_mag_l1b-calibration_20240229_v001.cdf +0 -0
  261. imap_processing/tests/mag/validation/calibration/imap_mag_l2-calibration-matrices_20251017_v004.cdf +0 -0
  262. imap_processing/tests/mag/validation/calibration/imap_mag_l2-offsets-norm_20251017_20251017_v001.cdf +0 -0
  263. imap_processing/tests/spacecraft/data/SSR_2024_190_20_08_12_0483851794_2_DA_apid0594_1packet.pkts +0 -0
  264. imap_processing/tests/spacecraft/test_quaternions.py +71 -0
  265. imap_processing/tests/spice/test_data/fake_repoint_data.csv +5 -0
  266. imap_processing/tests/spice/test_data/fake_spin_data.csv +11 -11
  267. imap_processing/tests/spice/test_geometry.py +9 -12
  268. imap_processing/tests/spice/test_kernels.py +1 -200
  269. imap_processing/tests/spice/test_pointing_frame.py +185 -0
  270. imap_processing/tests/spice/test_repoint.py +121 -0
  271. imap_processing/tests/spice/test_spin.py +50 -9
  272. imap_processing/tests/spice/test_time.py +14 -0
  273. imap_processing/tests/swapi/lut/imap_swapi_esa-unit-conversion_20250211_v000.csv +73 -0
  274. imap_processing/tests/swapi/lut/imap_swapi_lut-notes_20250211_v000.csv +1025 -0
  275. imap_processing/tests/swapi/test_swapi_l1.py +13 -11
  276. imap_processing/tests/swapi/test_swapi_l2.py +180 -8
  277. imap_processing/tests/swe/l0_data/2024051010_SWE_HK_packet.bin +0 -0
  278. imap_processing/tests/swe/l0_data/2024051011_SWE_CEM_RAW_packet.bin +0 -0
  279. imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_APP_HK_20240510_092742.csv +49 -0
  280. imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_CEM_RAW_20240510_092742.csv +593 -0
  281. imap_processing/tests/swe/lut/checker-board-indices.csv +24 -0
  282. imap_processing/tests/swe/lut/imap_swe_esa-lut_20250301_v000.csv +385 -0
  283. imap_processing/tests/swe/lut/imap_swe_l1b-in-flight-cal_20240510_20260716_v000.csv +3 -0
  284. imap_processing/tests/swe/test_swe_l1a.py +20 -2
  285. imap_processing/tests/swe/test_swe_l1a_cem_raw.py +52 -0
  286. imap_processing/tests/swe/test_swe_l1a_hk.py +68 -0
  287. imap_processing/tests/swe/test_swe_l1a_science.py +3 -3
  288. imap_processing/tests/swe/test_swe_l1b.py +162 -24
  289. imap_processing/tests/swe/test_swe_l2.py +153 -91
  290. imap_processing/tests/test_cli.py +171 -88
  291. imap_processing/tests/test_utils.py +140 -17
  292. imap_processing/tests/ultra/data/l0/FM45_UltraFM45_Functional_2024-01-22T0105_20240122T010548.CCSDS +0 -0
  293. imap_processing/tests/ultra/data/l0/ultra45_raw_sc_ultraimgrates_20220530_00.csv +164 -0
  294. imap_processing/tests/ultra/{test_data → data}/l0/ultra45_raw_sc_ultrarawimg_withFSWcalcs_FM45_40P_Phi28p5_BeamCal_LinearScan_phi2850_theta-000_20240207T102740.csv +3243 -3243
  295. imap_processing/tests/ultra/data/mock_data.py +369 -0
  296. imap_processing/tests/ultra/unit/conftest.py +115 -89
  297. imap_processing/tests/ultra/unit/test_badtimes.py +4 -4
  298. imap_processing/tests/ultra/unit/test_cullingmask.py +8 -6
  299. imap_processing/tests/ultra/unit/test_de.py +14 -13
  300. imap_processing/tests/ultra/unit/test_decom_apid_880.py +27 -76
  301. imap_processing/tests/ultra/unit/test_decom_apid_881.py +54 -11
  302. imap_processing/tests/ultra/unit/test_decom_apid_883.py +12 -10
  303. imap_processing/tests/ultra/unit/test_decom_apid_896.py +202 -55
  304. imap_processing/tests/ultra/unit/test_lookup_utils.py +23 -1
  305. imap_processing/tests/ultra/unit/test_spacecraft_pset.py +77 -0
  306. imap_processing/tests/ultra/unit/test_ultra_l1a.py +98 -305
  307. imap_processing/tests/ultra/unit/test_ultra_l1b.py +60 -14
  308. imap_processing/tests/ultra/unit/test_ultra_l1b_annotated.py +2 -2
  309. imap_processing/tests/ultra/unit/test_ultra_l1b_culling.py +26 -27
  310. imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py +239 -70
  311. imap_processing/tests/ultra/unit/test_ultra_l1c.py +5 -5
  312. imap_processing/tests/ultra/unit/test_ultra_l1c_pset_bins.py +114 -83
  313. imap_processing/tests/ultra/unit/test_ultra_l2.py +230 -0
  314. imap_processing/ultra/constants.py +1 -1
  315. imap_processing/ultra/l0/decom_tools.py +27 -39
  316. imap_processing/ultra/l0/decom_ultra.py +168 -204
  317. imap_processing/ultra/l0/ultra_utils.py +152 -136
  318. imap_processing/ultra/l1a/ultra_l1a.py +55 -271
  319. imap_processing/ultra/l1b/badtimes.py +1 -4
  320. imap_processing/ultra/l1b/cullingmask.py +2 -6
  321. imap_processing/ultra/l1b/de.py +116 -57
  322. imap_processing/ultra/l1b/extendedspin.py +20 -18
  323. imap_processing/ultra/l1b/lookup_utils.py +72 -9
  324. imap_processing/ultra/l1b/ultra_l1b.py +36 -16
  325. imap_processing/ultra/l1b/ultra_l1b_culling.py +66 -30
  326. imap_processing/ultra/l1b/ultra_l1b_extended.py +297 -94
  327. imap_processing/ultra/l1c/histogram.py +2 -6
  328. imap_processing/ultra/l1c/spacecraft_pset.py +84 -0
  329. imap_processing/ultra/l1c/ultra_l1c.py +8 -9
  330. imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +206 -108
  331. imap_processing/ultra/l2/ultra_l2.py +299 -0
  332. imap_processing/ultra/lookup_tables/Angular_Profiles_FM45_LeftSlit.csv +526 -0
  333. imap_processing/ultra/lookup_tables/Angular_Profiles_FM45_RightSlit.csv +526 -0
  334. imap_processing/ultra/lookup_tables/Angular_Profiles_FM90_LeftSlit.csv +526 -0
  335. imap_processing/ultra/lookup_tables/Angular_Profiles_FM90_RightSlit.csv +526 -0
  336. imap_processing/ultra/lookup_tables/FM45_Startup1_ULTRA_IMGPARAMS_20240719.csv +2 -2
  337. imap_processing/ultra/lookup_tables/FM90_Startup1_ULTRA_IMGPARAMS_20240719.csv +2 -0
  338. imap_processing/ultra/packet_definitions/README.md +38 -0
  339. imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +15302 -482
  340. imap_processing/ultra/utils/ultra_l1_utils.py +31 -12
  341. imap_processing/utils.py +69 -29
  342. {imap_processing-0.11.0.dist-info → imap_processing-0.13.0.dist-info}/METADATA +10 -6
  343. imap_processing-0.13.0.dist-info/RECORD +578 -0
  344. imap_processing/cdf/config/imap_mag_l1_variable_attrs.yaml +0 -237
  345. imap_processing/hi/l1a/housekeeping.py +0 -27
  346. imap_processing/hi/l1b/hi_eng_unit_convert_table.csv +0 -154
  347. imap_processing/swe/l1b/swe_esa_lookup_table.csv +0 -1441
  348. imap_processing/swe/l1b/swe_l1b_science.py +0 -652
  349. imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-aggregated_20240429_v001.cdf +0 -0
  350. imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-singles_20240429_v001.cdf +0 -0
  351. imap_processing/tests/codice/data/imap_codice_l1a_hi-omni_20240429_v001.cdf +0 -0
  352. imap_processing/tests/codice/data/imap_codice_l1a_hi-sectored_20240429_v001.cdf +0 -0
  353. imap_processing/tests/codice/data/imap_codice_l1a_hskp_20100101_v001.cdf +0 -0
  354. imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-aggregated_20240429_v001.cdf +0 -0
  355. imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-singles_20240429_v001.cdf +0 -0
  356. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-angular_20240429_v001.cdf +0 -0
  357. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-priority_20240429_v001.cdf +0 -0
  358. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-species_20240429_v001.cdf +0 -0
  359. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-angular_20240429_v001.cdf +0 -0
  360. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-priority_20240429_v001.cdf +0 -0
  361. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-species_20240429_v001.cdf +0 -0
  362. imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-aggregated_20240429_v001.cdf +0 -0
  363. imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-singles_20240429_v001.cdf +0 -0
  364. imap_processing/tests/codice/data/imap_codice_l1b_hi-omni_20240429_v001.cdf +0 -0
  365. imap_processing/tests/codice/data/imap_codice_l1b_hi-sectored_20240429_v001.cdf +0 -0
  366. imap_processing/tests/codice/data/imap_codice_l1b_hskp_20100101_v001.cdf +0 -0
  367. imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-aggregated_20240429_v001.cdf +0 -0
  368. imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-singles_20240429_v001.cdf +0 -0
  369. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-angular_20240429_v001.cdf +0 -0
  370. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-priority_20240429_v001.cdf +0 -0
  371. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-species_20240429_v001.cdf +0 -0
  372. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-angular_20240429_v001.cdf +0 -0
  373. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-priority_20240429_v001.cdf +0 -0
  374. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-species_20240429_v001.cdf +0 -0
  375. imap_processing/tests/hi/data/l1/imap_hi_l1b_45sensor-de_20250415_v999.cdf +0 -0
  376. imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1251.pkts +0 -0
  377. imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1252.pkts +0 -0
  378. imap_processing/tests/hit/validation_data/hskp_sample_eu.csv +0 -89
  379. imap_processing/tests/hit/validation_data/sci_sample_raw1.csv +0 -29
  380. imap_processing/tests/idex/test_data/imap_idex_l0_raw_20231214_v001.pkts +0 -0
  381. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_de_20100101_v001.cdf +0 -0
  382. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_spin_20100101_v001.cdf +0 -0
  383. imap_processing/tests/swe/test_swe_l1b_science.py +0 -84
  384. imap_processing/tests/ultra/test_data/mock_data.py +0 -161
  385. imap_processing/ultra/l1c/pset.py +0 -40
  386. imap_processing/ultra/lookup_tables/dps_sensitivity45.cdf +0 -0
  387. imap_processing-0.11.0.dist-info/RECORD +0 -488
  388. /imap_processing/idex/packet_definitions/{idex_packet_definition.xml → idex_science_packet_definition.xml} +0 -0
  389. /imap_processing/tests/ialirt/{test_data → data}/l0/20240827095047_SWE_IALIRT_packet.bin +0 -0
  390. /imap_processing/tests/ialirt/{test_data → data}/l0/BinLog CCSDS_FRAG_TLM_20240826_152323Z_IALIRT_data_for_SDC.bin +0 -0
  391. /imap_processing/tests/ialirt/{test_data → data}/l0/IALiRT Raw Packet Telemetry.txt +0 -0
  392. /imap_processing/tests/ialirt/{test_data → data}/l0/apid01152.tlm +0 -0
  393. /imap_processing/tests/ialirt/{test_data → data}/l0/eu_SWP_IAL_20240826_152033.csv +0 -0
  394. /imap_processing/tests/ialirt/{test_data → data}/l0/hi_fsw_view_1_ccsds.bin +0 -0
  395. /imap_processing/tests/ialirt/{test_data → data}/l0/hit_ialirt_sample.ccsds +0 -0
  396. /imap_processing/tests/ialirt/{test_data → data}/l0/hit_ialirt_sample.csv +0 -0
  397. /imap_processing/tests/ialirt/{test_data → data}/l0/idle_export_eu.SWE_IALIRT_20240827_093852.csv +0 -0
  398. /imap_processing/tests/ialirt/{test_data → data}/l0/imap_codice_l1a_hi-ialirt_20240523200000_v0.0.0.cdf +0 -0
  399. /imap_processing/tests/ialirt/{test_data → data}/l0/imap_codice_l1a_lo-ialirt_20241110193700_v0.0.0.cdf +0 -0
  400. /imap_processing/{mag/l1b → tests/spacecraft}/__init__.py +0 -0
  401. /imap_processing/{swe/l1b/engineering_unit_convert_table.csv → tests/swe/lut/imap_swe_eu-conversion_20240510_v000.csv} +0 -0
  402. /imap_processing/tests/ultra/{test_data → data}/l0/FM45_40P_Phi28p5_BeamCal_LinearScan_phi28.50_theta-0.00_20240207T102740.CCSDS +0 -0
  403. /imap_processing/tests/ultra/{test_data → data}/l0/FM45_7P_Phi0.0_BeamCal_LinearScan_phi0.04_theta-0.01_20230821T121304.CCSDS +0 -0
  404. /imap_processing/tests/ultra/{test_data → data}/l0/FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.CCSDS +0 -0
  405. /imap_processing/tests/ultra/{test_data → data}/l0/Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.CCSDS +0 -0
  406. /imap_processing/tests/ultra/{test_data → data}/l0/ultra45_raw_sc_auxdata_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +0 -0
  407. /imap_processing/tests/ultra/{test_data → data}/l0/ultra45_raw_sc_enaphxtofhangimg_FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.csv +0 -0
  408. /imap_processing/tests/ultra/{test_data → data}/l0/ultra45_raw_sc_ultraimgrates_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +0 -0
  409. /imap_processing/tests/ultra/{test_data → data}/l0/ultra45_raw_sc_ultrarawimgevent_FM45_7P_Phi00_BeamCal_LinearScan_phi004_theta-001_20230821T121304.csv +0 -0
  410. /imap_processing/tests/ultra/{test_data → data}/l1/dps_exposure_helio_45_E1.cdf +0 -0
  411. /imap_processing/tests/ultra/{test_data → data}/l1/dps_exposure_helio_45_E12.cdf +0 -0
  412. /imap_processing/tests/ultra/{test_data → data}/l1/dps_exposure_helio_45_E24.cdf +0 -0
  413. {imap_processing-0.11.0.dist-info → imap_processing-0.13.0.dist-info}/LICENSE +0 -0
  414. {imap_processing-0.11.0.dist-info → imap_processing-0.13.0.dist-info}/WHEEL +0 -0
  415. {imap_processing-0.11.0.dist-info → imap_processing-0.13.0.dist-info}/entry_points.txt +0 -0
@@ -19,16 +19,16 @@ from imap_processing._version import __version__, __version_tuple__ # noqa: F40
19
19
  # Eg. imap_module_directory = /usr/local/lib/python3.11/site-packages/imap_processing
20
20
  imap_module_directory = Path(__file__).parent
21
21
 
22
- # TODO: should we move this to imap-data-access?
23
22
  PROCESSING_LEVELS = {
24
- "codice": ["l0", "l1a", "l1b", "l2"],
25
- "glows": ["l0", "l1a", "l1b", "l2"],
26
- "hi": ["l0", "l1a", "l1b", "l1c", "l2"],
27
- "hit": ["l0", "l1a", "l1b", "l2"],
28
- "idex": ["l0", "l1a", "l1b", "l2a", "l2b"],
29
- "lo": ["l0", "l1a", "l1b", "l1c", "l2"],
30
- "mag": ["l0", "l1a", "l1b", "l1c", "l2pre", "l2"],
31
- "swapi": ["l0", "l1", "l2", "l3a", "l3b"],
32
- "swe": ["l0", "l1a", "l1b", "l2"],
33
- "ultra": ["l0", "l1a", "l1b", "l1c", "l2"],
23
+ "codice": ["l1a", "l1b", "l2"],
24
+ "glows": ["l1a", "l1b", "l2"],
25
+ "hi": ["l1a", "l1b", "l1c", "l2"],
26
+ "hit": ["l1a", "l1b", "l2"],
27
+ "idex": ["l1a", "l1b", "l2a", "l2b"],
28
+ "lo": ["l1a", "l1b", "l1c", "l2"],
29
+ "mag": ["l1a", "l1b", "l1c", "l1d", "l2"],
30
+ "spacecraft": ["l1a"],
31
+ "swapi": ["l1", "l2", "l3a", "l3b"],
32
+ "swe": ["l1a", "l1b", "l2"],
33
+ "ultra": ["l1a", "l1b", "l1c", "l2"],
34
34
  }
@@ -1,3 +1,3 @@
1
1
  # These version placeholders will be replaced later during substitution.
2
- __version__ = "0.11.0"
3
- __version_tuple__ = (0, 11, 0)
2
+ __version__ = "0.13.0"
3
+ __version_tuple__ = (0, 13, 0)
@@ -47,6 +47,5 @@ class CcsdsData:
47
47
  setattr(self, key, value)
48
48
  else:
49
49
  raise KeyError(
50
- f"Did not find matching attribute in Histogram data class for "
51
- f"{key}"
50
+ f"Did not find matching attribute in Histogram data class for {key}"
52
51
  )
@@ -44,8 +44,7 @@ _CCSDS_PARAMETERS = [
44
44
  {
45
45
  "name": "SRC_SEQ_CTR",
46
46
  "lengthInBits": 14,
47
- "description": "CCSDS Packet Sequence Count "
48
- "(increments with each new packet)",
47
+ "description": "CCSDS Packet Sequence Count (increments with each new packet)",
49
48
  },
50
49
  {
51
50
  "name": "PKT_LEN",
@@ -352,21 +351,70 @@ class XTCEGenerator:
352
351
  conversion = analog_conversion.loc[
353
352
  (analog_conversion["mnemonic"] == row["mnemonic"])
354
353
  & (analog_conversion["packetName"] == row["packetName"])
355
- ].iloc[0]
354
+ ]
355
+ name = f"{row['packetName']}.{row['mnemonic']}"
356
356
 
357
- # Create the Conversion element
358
- default_calibrator = Et.SubElement(encoding, "xtce:DefaultCalibrator")
359
- polynomial_calibrator = Et.SubElement(
360
- default_calibrator, "xtce:PolynomialCalibrator"
361
- )
362
- # FIXME: Use lowValue / highValue from the conversion sheet
363
- # FIXME: Handle segmented polynomials (only using first segment now)
364
- for i in range(8):
365
- col = f"c{i}"
366
- if conversion[col] != 0:
367
- term = Et.SubElement(polynomial_calibrator, "xtce:Term")
368
- term.attrib["coefficient"] = str(conversion[col])
369
- term.attrib["exponent"] = str(i)
357
+ def add_poly_calibrator(segment: pd.Series, calibrator: Et.Element) -> None:
358
+ """
359
+ Add a polynomial calibrator to the input calibrator element.
360
+
361
+ Parameters
362
+ ----------
363
+ segment : pandas.Series
364
+ Row from the AnalogConversions sheet.
365
+ calibrator : Element
366
+ The calibrator element to add the polynomial to.
367
+ """
368
+ polynomial_calibrator = Et.SubElement(
369
+ calibrator, "xtce:PolynomialCalibrator"
370
+ )
371
+ for i in range(8):
372
+ col = f"c{i}"
373
+ if segment[col] != 0:
374
+ term = Et.SubElement(polynomial_calibrator, "xtce:Term")
375
+ term.attrib["coefficient"] = str(segment[col])
376
+ term.attrib["exponent"] = str(i)
377
+
378
+ if len(conversion) == 1:
379
+ # Unsegmented Polynomial has a single calibrator
380
+ # NOTE: We don't add the low/high limits to unsegmented polynomials
381
+ # because some instruments haven't defined these
382
+ calibrator = Et.SubElement(encoding, "xtce:DefaultCalibrator")
383
+ # There is only one segment, so no need to iterate here
384
+ segment = conversion.iloc[0]
385
+ add_poly_calibrator(segment, calibrator)
386
+ else:
387
+ # Segmented Polynomial has a list of calibrators
388
+ context_calibrator_list = Et.SubElement(
389
+ encoding, "xtce:ContextCalibratorList"
390
+ )
391
+ # One context calibrator for each segment
392
+ for _, segment in conversion.iterrows():
393
+ context_calibrator = Et.SubElement(
394
+ context_calibrator_list, "xtce:ContextCalibrator"
395
+ )
396
+
397
+ # The matching criteria for this calibrator
398
+ # >= lowValue and <= highValue
399
+ context_match = Et.SubElement(context_calibrator, "xtce:ContextMatch")
400
+ comparison_list = Et.SubElement(context_match, "xtce:ComparisonList")
401
+ comparison = Et.SubElement(comparison_list, "xtce:Comparison")
402
+ comparison.attrib["comparisonOperator"] = ">="
403
+ comparison.attrib["value"] = str(int(segment["lowValue"]))
404
+ comparison.attrib["parameterRef"] = name
405
+ # This references the parameter name itself, so we use the uncalibrated
406
+ # value for comparison
407
+ comparison.attrib["useCalibratedValue"] = "false"
408
+ comparison = Et.SubElement(comparison_list, "xtce:Comparison")
409
+ comparison.attrib["comparisonOperator"] = "<="
410
+ comparison.attrib["value"] = str(int(segment["highValue"]))
411
+ comparison.attrib["parameterRef"] = name
412
+ comparison.attrib["useCalibratedValue"] = "false"
413
+
414
+ # The calibrator for this segment
415
+ # (used if the matching criteria are met)
416
+ calibrator = Et.SubElement(context_calibrator, "xtce:Calibrator")
417
+ add_poly_calibrator(segment, calibrator)
370
418
 
371
419
  def _add_state_conversion(self, row: pd.Series, parameter_type: Et.Element) -> None:
372
420
  """
@@ -394,8 +442,8 @@ class XTCEGenerator:
394
442
  for _, state_row in state_sheet.iterrows():
395
443
  enumeration = Et.SubElement(enumeration_list, "xtce:Enumeration")
396
444
  valid_state = self._ensure_state_value_is_int(state_row)
397
- enumeration.attrib["value"] = str(valid_state["value"])
398
- enumeration.attrib["label"] = str(valid_state["state"])
445
+ enumeration.attrib["value"] = str(valid_state["value"]).strip()
446
+ enumeration.attrib["label"] = str(valid_state["state"]).strip()
399
447
 
400
448
  def _ensure_state_value_is_int(self, state: dict) -> dict:
401
449
  """
@@ -16,105 +16,96 @@ instrument_base: &instrument_base
16
16
  # L1a
17
17
  imap_codice_l1a_hskp:
18
18
  <<: *instrument_base
19
- Data_level: 1A
20
19
  Data_type: L1A_hskp->Level-1A Housekeeping Data
21
20
  Logical_source: imap_codice_l1a_hskp
22
21
  Logical_source_description: IMAP Mission CoDICE Instrument Level-1A Housekeeping Data.
23
22
 
24
23
  imap_codice_l1a_hi-counters-aggregated:
25
24
  <<: *instrument_base
26
- Data_level: 1A
27
25
  Data_type: L1A_hi-counters-aggregated->Level-1A Hi Aggregated Instrument Counts Data
28
26
  Logical_source: imap_codice_l1a_hi-counters-aggregated
29
27
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Aggregated Instrument Counts Data.
30
28
 
31
29
  imap_codice_l1a_hi-counters-singles:
32
30
  <<: *instrument_base
33
- Data_level: 1A
34
31
  Data_type: L1A_hi-counters-singles->Level-1A Hi Single Instrument Counts Data
35
32
  Logical_source: imap_codice_l1a_hi-counters-singles
36
33
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Single Instrument Counts Data.
37
34
 
38
35
  imap_codice_l1a_hi-omni:
39
36
  <<: *instrument_base
40
- Data_level: 1A
41
37
  Data_type: L1A_hi-omni->Level-1A Hi Omnidirectional Data
42
38
  Logical_source: imap_codice_l1a_hi-omni
43
39
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Omnidirectional Data.
44
40
 
41
+ imap_codice_l1a_hi-priority:
42
+ <<: *instrument_base
43
+ Data_type: L1A_hi-priority->Level-1A Hi Priority Data
44
+ Logical_source: imap_codice_l1a_hi-priority
45
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1A Priority Data.
46
+
45
47
  imap_codice_l1a_hi-sectored:
46
48
  <<: *instrument_base
47
- Data_level: 1A
48
49
  Data_type: L1A_hi-sectored->Level-1A Hi Sectored Data
49
50
  Logical_source: imap_codice_l1a_hi-sectored
50
51
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Sectored Data.
51
52
 
52
53
  imap_codice_l1a_hi-pha:
53
54
  <<: *instrument_base
54
- Data_level: 1A
55
55
  Data_type: L1A_hi-pha->Level-1A Hi Event Data
56
56
  Logical_source: imap_codice_l1a_hi-pha
57
57
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Event Data.
58
58
 
59
59
  imap_codice_l1a_lo-counters-aggregated:
60
60
  <<: *instrument_base
61
- Data_level: 1A
62
61
  Data_type: L1A_lo-counters-aggregated->Level-1A Lo Aggregated Instrument Counts Data
63
62
  Logical_source: imap_codice_l1a_lo-counters-aggregated
64
63
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Aggregated Instrument Counts Data.
65
64
 
66
65
  imap_codice_l1a_lo-counters-singles:
67
66
  <<: *instrument_base
68
- Data_level: 1A
69
67
  Data_type: L1A_lo-counters-singles->Level-1A Lo Single Instrument Counts Data
70
68
  Logical_source: imap_codice_l1a_lo-counters-singles
71
69
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Single Instrument Counts Data.
72
70
 
73
71
  imap_codice_l1a_lo-sw-angular:
74
72
  <<: *instrument_base
75
- Data_level: 1A
76
73
  Data_type: L1A_lo-sw-angular->Level-1A Lo Sunward Angular Counts Data
77
74
  Logical_source: imap_codice_l1a_lo-sw-angular
78
75
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Sunward Angular Counts Data.
79
76
 
80
77
  imap_codice_l1a_lo-nsw-angular:
81
78
  <<: *instrument_base
82
- Data_level: 1A
83
79
  Data_type: L1A_lo-nsw-angular->Level-1A Lo Non-Sunward Angular Counts Data
84
80
  Logical_source: imap_codice_l1a_lo-nsw-angular
85
81
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Angular Counts Data.
86
82
 
87
83
  imap_codice_l1a_lo-sw-priority:
88
84
  <<: *instrument_base
89
- Data_level: 1A
90
85
  Data_type: L1A_lo-sw-priority->Level-1A Lo Sunward Priority Counts Data
91
86
  Logical_source: imap_codice_l1a_lo-sw-priority
92
87
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Sunward Priority Counts Data.
93
88
 
94
89
  imap_codice_l1a_lo-nsw-priority:
95
90
  <<: *instrument_base
96
- Data_level: 1A
97
91
  Data_type: L1A_lo-nsw-priority->Level-1A Lo Non-Sunward Priority Counts Data
98
92
  Logical_source: imap_codice_l1a_lo-nsw-priority
99
93
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Priority Counts Data.
100
94
 
101
95
  imap_codice_l1a_lo-sw-species:
102
96
  <<: *instrument_base
103
- Data_level: 1A
104
97
  Data_type: L1A_lo-sw-species->Level-1A Lo Sunward Species Counts Data
105
98
  Logical_source: imap_codice_l1a_lo-sw-species
106
99
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Sunward Species Counts Data.
107
100
 
108
101
  imap_codice_l1a_lo-nsw-species:
109
102
  <<: *instrument_base
110
- Data_level: 1A
111
103
  Data_type: L1A_lo-nsw-species->Level-1A Lo Non-Sunward Species Counts Data
112
104
  Logical_source: imap_codice_l1a_lo-nsw-species
113
105
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Species Counts Data.
114
106
 
115
107
  imap_codice_l1a_lo-pha:
116
108
  <<: *instrument_base
117
- Data_level: 1A
118
109
  Data_type: L1A_lo-pha->Level-1A Lo Event Data
119
110
  Logical_source: imap_codice_l1a_lo-pha
120
111
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Event Data.
@@ -122,91 +113,84 @@ imap_codice_l1a_lo-pha:
122
113
  # L1b
123
114
  imap_codice_l1b_hskp:
124
115
  <<: *instrument_base
125
- Data_level: 1B
126
116
  Data_type: L1B_hskp->Level-1B Housekeeping Data
127
117
  Logical_source: imap_codice_l1b_hskp
128
118
  Logical_source_description: IMAP Mission CoDICE Instrument Level-1B Housekeeping Data.
129
119
 
130
- imap_codice_l1b_hi_counters_aggregated:
120
+ imap_codice_l1b_hi-counters-aggregated:
131
121
  <<: *instrument_base
132
- Data_level: 1B
133
122
  Data_type: L1B_hi-counters-aggregated->Level-1B Hi Aggregated Instrument Rates Data
134
123
  Logical_source: imap_codice_l1b_hi-counters-aggregated
135
124
  Logical_source_description: IMAP Mission CoDICE Hi Level-1B Aggregated Instrument Rates Data.
136
125
 
137
- imap_codice_l1b_hi_counters_singles:
126
+ imap_codice_l1b_hi-counters-singles:
138
127
  <<: *instrument_base
139
- Data_level: 1B
140
128
  Data_type: L1B_hi-counters-singles->Level-1B Hi Single Instrument Rates Data
141
129
  Logical_source: imap_codice_l1b_hi-counters-singles
142
130
  Logical_source_description: IMAP Mission CoDICE Hi Level-1B Single Instrument Rates Data.
143
131
 
144
- imap_codice_l1b_hi_omni:
132
+ imap_codice_l1b_hi-omni:
145
133
  <<: *instrument_base
146
- Data_level: 1B
147
134
  Data_type: L1B_hi-omni->Level-1B Hi Omnidirectional Data
148
135
  Logical_source: imap_codice_l1b_hi-omni
149
136
  Logical_source_description: IMAP Mission CoDICE Hi Level-1B Omnidirectional Data.
150
137
 
151
- imap_codice_l1b_hi_sectored:
138
+ imap_codice_l1b_hi-priority:
139
+ <<: *instrument_base
140
+ Data_type: L1B_hi-priority->Level-1B Hi Priority Data
141
+ Logical_source: imap_codice_l1b_hi-priority
142
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1B Priority Data.
143
+
144
+ imap_codice_l1b_hi-sectored:
152
145
  <<: *instrument_base
153
- Data_level: 1B
154
146
  Data_type: L1B_hi-sectored->Level-1B Hi Sectored Data
155
147
  Logical_source: imap_codice_l1b_hi-sectored
156
148
  Logical_source_description: IMAP Mission CoDICE Hi Level-1B Sectored Data.
157
149
 
158
- imap_codice_l1b_lo_counters_aggregated:
150
+ imap_codice_l1b_lo-counters-aggregated:
159
151
  <<: *instrument_base
160
- Data_level: 1B
161
152
  Data_type: L1B_lo-counters-aggregated->Level-1B Lo Aggregated Instrument Rates Data
162
153
  Logical_source: imap_codice_l1b_lo-counters-aggregated
163
154
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Aggregated Instrument Rates Data.
164
155
 
165
- imap_codice_l1b_lo_counters_singles:
156
+ imap_codice_l1b_lo-counters-singles:
166
157
  <<: *instrument_base
167
- Data_level: 1B
168
158
  Data_type: L1B_lo-counters-aggregated->Level-1B Lo Single Instrument Rates Data
169
159
  Logical_source: imap_codice_l1b_lo-counters-singles
170
160
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Single Instrument Rates Data.
171
161
 
172
- imap_codice_l1b_lo_sw_angular:
162
+ imap_codice_l1b_lo-sw-angular:
173
163
  <<: *instrument_base
174
- Data_level: 1B
175
164
  Data_type: L1B_lo-sw-angular->Level-1B Lo Sunward Angular Rates Data
176
165
  Logical_source: imap_codice_l1b_lo-sw-angular
177
166
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Sunward Angular Rates Data.
178
167
 
179
- imap_codice_l1b_lo_nsw_angular:
168
+ imap_codice_l1b_lo-nsw-angular:
180
169
  <<: *instrument_base
181
- Data_level: 1B
182
170
  Data_type: L1B_lo-nsw-angular->Level-1B Lo Non-Sunward Angular Rates Data
183
171
  Logical_source: imap_codice_l1b_lo-nsw-angular
184
172
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Non-Sunward Angular Rates Data.
185
173
 
186
- imap_codice_l1b_lo_sw_priority:
174
+ imap_codice_l1b_lo-sw-priority:
187
175
  <<: *instrument_base
188
- Data_level: 1B
189
176
  Data_type: L1B_lo-sw-priority->Level-1B Lo Sunward Priority Rates Data
190
177
  Logical_source: imap_codice_l1b_lo-sw-priority
191
178
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Sunward Priority Rates Data.
192
179
 
193
- imap_codice_l1b_lo_nsw_priority:
180
+ imap_codice_l1b_lo-nsw-priority:
194
181
  <<: *instrument_base
195
- Data_level: 1B
196
182
  Data_type: L1B_lo-nsw-priority->Level-1B Lo Non-Sunward Priority Rates Data
197
183
  Logical_source: imap_codice_l1b_lo-nsw-priority
198
184
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Non-Sunward Priority Rates Data.
199
185
 
200
- imap_codice_l1b_lo_sw_species:
186
+ imap_codice_l1b_lo-sw-species:
201
187
  <<: *instrument_base
202
- Data_level: 1B
203
188
  Data_type: L1B_lo-sw-species->Level-1B Lo Sunward Species Rates Data
204
189
  Logical_source: imap_codice_l1b_lo-sw-species
205
190
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Sunward Species Rates Data.
206
191
 
207
- imap_codice_l1b_lo_nsw_species:
192
+ imap_codice_l1b_lo-nsw-species:
208
193
  <<: *instrument_base
209
- Data_level: 1B
210
194
  Data_type: L1B_lo-nsw-species->Level-1B Lo Non-Sunward Species Rates Data
211
195
  Logical_source: imap_codice_l1b_lo-nsw-species
212
196
  Logical_source_description: IMAP Mission CoDICE Lo Level-1B Non-Sunward Species Rates Data.