imap-processing 0.2.0__tar.gz → 0.3.0__tar.gz

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 (456) hide show
  1. {imap_processing-0.2.0 → imap_processing-0.3.0}/PKG-INFO +16 -8
  2. {imap_processing-0.2.0 → imap_processing-0.3.0}/README.md +8 -2
  3. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/__init__.py +8 -27
  4. imap_processing-0.3.0/imap_processing/_version.py +3 -0
  5. imap_processing-0.3.0/imap_processing/cdf/cdf_attribute_manager.py +239 -0
  6. imap_processing-0.3.0/imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +198 -0
  7. imap_processing-0.3.0/imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +369 -0
  8. imap_processing-0.3.0/imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +371 -0
  9. imap_processing-0.3.0/imap_processing/cdf/config/imap_default_global_cdf_attrs.yaml +8 -0
  10. imap_processing-0.3.0/imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +26 -0
  11. imap_processing-0.3.0/imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +350 -0
  12. imap_processing-0.3.0/imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +39 -0
  13. imap_processing-0.3.0/imap_processing/cdf/config/imap_hi_variable_attrs.yaml +423 -0
  14. imap_processing-0.3.0/imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +90 -0
  15. imap_processing-0.3.0/imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +529 -0
  16. imap_processing-0.3.0/imap_processing/cdf/config/imap_lo_l1b_variable_attrs.yaml +137 -0
  17. imap_processing-0.3.0/imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +195 -0
  18. imap_processing-0.3.0/imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +97 -0
  19. imap_processing-0.3.0/imap_processing/cdf/config/imap_mag_l1_variable_attrs.yaml +157 -0
  20. imap_processing-0.3.0/imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +24 -0
  21. imap_processing-0.3.0/imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +251 -0
  22. imap_processing-0.3.0/imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +290 -0
  23. imap_processing-0.3.0/imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +92 -0
  24. imap_processing-0.3.0/imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +310 -0
  25. imap_processing-0.3.0/imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +134 -0
  26. imap_processing-0.3.0/imap_processing/cdf/config/shared/default_global_cdf_attrs_schema.yaml +246 -0
  27. imap_processing-0.3.0/imap_processing/cdf/config/shared/default_variable_cdf_attrs_schema.yaml +466 -0
  28. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/cdf/defaults.py +7 -1
  29. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/cdf/global_attrs.py +110 -52
  30. imap_processing-0.3.0/imap_processing/cdf/imap_cdf_manager.py +26 -0
  31. imap_processing-0.3.0/imap_processing/cdf/tests/test_cdf_attribute_manager.py +58 -0
  32. imap_processing-0.3.0/imap_processing/cdf/utils.py +162 -0
  33. imap_processing-0.3.0/imap_processing/cli.py +731 -0
  34. imap_processing-0.3.0/imap_processing/codice/__init__.py +1 -0
  35. imap_processing-0.3.0/imap_processing/codice/codice_l0.py +54 -0
  36. imap_processing-0.3.0/imap_processing/codice/codice_l1a.py +428 -0
  37. imap_processing-0.3.0/imap_processing/codice/codice_l1b.py +196 -0
  38. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/codice/constants.py +262 -1
  39. imap_processing-0.3.0/imap_processing/codice/data/esa_sweep_values.csv +257 -0
  40. imap_processing-0.3.0/imap_processing/codice/data/lo_stepping_values.csv +129 -0
  41. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/codice/decompress.py +3 -0
  42. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_HI_INST_COUNTS_AGGREGATED.xml +193 -0
  43. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_HI_INST_COUNTS_SINGLES.xml +193 -0
  44. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_HI_OMNI_SPECIES_COUNTS.xml +191 -0
  45. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_HI_SECT_SPECIES_COUNTS.xml +191 -0
  46. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_INST_COUNTS_AGGREGATED.xml +191 -0
  47. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_INST_COUNTS_SINGLES.xml +191 -0
  48. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_NSW_ANGULAR_COUNTS.xml +191 -0
  49. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_NSW_PRIORITY_COUNTS.xml +191 -0
  50. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_NSW_SPECIES_COUNTS.xml +191 -0
  51. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_SW_ANGULAR_COUNTS.xml +191 -0
  52. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_SW_PRIORITY_COUNTS.xml +191 -0
  53. imap_processing-0.3.0/imap_processing/codice/packet_definitions/P_COD_LO_SW_SPECIES_COUNTS.xml +191 -0
  54. imap_processing-0.3.0/imap_processing/codice/utils.py +173 -0
  55. imap_processing-0.3.0/imap_processing/common_cdf_attrs.py +16 -0
  56. imap_processing-0.3.0/imap_processing/glows/__init__.py +1 -0
  57. imap_processing-0.3.0/imap_processing/glows/ancillary/l1b_conversion_table_v001.json +42 -0
  58. imap_processing-0.3.0/imap_processing/glows/glows_cdf_attrs.py +248 -0
  59. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/l0/decom_glows.py +32 -38
  60. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/l0/glows_l0_data.py +7 -12
  61. imap_processing-0.3.0/imap_processing/glows/l1a/glows_l1a.py +412 -0
  62. {imap_processing-0.2.0/imap_processing/glows/l1 → imap_processing-0.3.0/imap_processing/glows/l1a}/glows_l1a_data.py +100 -46
  63. imap_processing-0.3.0/imap_processing/glows/l1b/glows_l1b.py +256 -0
  64. imap_processing-0.3.0/imap_processing/glows/l1b/glows_l1b_data.py +550 -0
  65. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/utils/constants.py +17 -0
  66. imap_processing-0.3.0/imap_processing/hi/__init__.py +1 -0
  67. imap_processing-0.3.0/imap_processing/hi/hi_cdf_attrs.py +186 -0
  68. imap_processing-0.3.0/imap_processing/hi/l0/decom_hi.py +11 -0
  69. imap_processing-0.3.0/imap_processing/hi/l1a/hi_l1a.py +68 -0
  70. imap_processing-0.3.0/imap_processing/hi/l1a/histogram.py +141 -0
  71. imap_processing-0.3.0/imap_processing/hi/l1a/housekeeping.py +33 -0
  72. imap_processing-0.3.0/imap_processing/hi/l1a/science_direct_event.py +351 -0
  73. imap_processing-0.3.0/imap_processing/hi/l1b/hi_eng_unit_convert_table.csv +154 -0
  74. imap_processing-0.3.0/imap_processing/hi/l1b/hi_l1b.py +126 -0
  75. imap_processing-0.3.0/imap_processing/hi/l1c/hi_l1c.py +221 -0
  76. imap_processing-0.2.0/imap_processing/hi/packet_definitions/H45_APP_NHK.xml → imap_processing-0.3.0/imap_processing/hi/packet_definitions/hi_packet_definition.xml +178 -152
  77. imap_processing-0.3.0/imap_processing/hi/utils.py +32 -0
  78. imap_processing-0.3.0/imap_processing/hit/__init__.py +1 -0
  79. imap_processing-0.3.0/imap_processing/hit/hit_cdf_attrs.py +867 -0
  80. imap_processing-0.3.0/imap_processing/hit/l0/data_classes/housekeeping.py +225 -0
  81. imap_processing-0.3.0/imap_processing/hit/l0/data_classes/science_packet.py +256 -0
  82. imap_processing-0.3.0/imap_processing/hit/l0/utils/hit_base.py +54 -0
  83. imap_processing-0.3.0/imap_processing/hit/l1a/hit_l1a.py +218 -0
  84. imap_processing-0.3.0/imap_processing/hit/l1b/hit_l1b.py +174 -0
  85. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/hit/packet_definitions/P_HIT_HSKP.xml +77 -111
  86. imap_processing-0.3.0/imap_processing/hit/packet_definitions/P_HIT_SCIENCE.xml +371 -0
  87. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/ialirt/l0/decom_ialirt.py +1 -2
  88. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/idex/idex_cdf_attrs.py +10 -7
  89. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/idex/idex_packet_parser.py +117 -66
  90. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/idex/packet_definitions/idex_packet_definition.xml +32 -25
  91. imap_processing-0.3.0/imap_processing/lo/__init__.py +1 -0
  92. imap_processing-0.3.0/imap_processing/lo/l0/data_classes/science_counts.py +295 -0
  93. imap_processing-0.3.0/imap_processing/lo/l0/data_classes/science_direct_events.py +197 -0
  94. imap_processing-0.3.0/imap_processing/lo/l0/data_classes/star_sensor.py +80 -0
  95. imap_processing-0.3.0/imap_processing/lo/l0/decompression_tables/12_to_16_bit.csv +4097 -0
  96. imap_processing-0.3.0/imap_processing/lo/l0/decompression_tables/8_to_12_bit.csv +257 -0
  97. imap_processing-0.3.0/imap_processing/lo/l0/decompression_tables/8_to_16_bit.csv +257 -0
  98. imap_processing-0.3.0/imap_processing/lo/l0/decompression_tables/decompression_tables.py +75 -0
  99. imap_processing-0.3.0/imap_processing/lo/l0/lo_apid.py +27 -0
  100. imap_processing-0.3.0/imap_processing/lo/l0/utils/binary_string.py +54 -0
  101. imap_processing-0.3.0/imap_processing/lo/l0/utils/bit_decompression.py +58 -0
  102. {imap_processing-0.2.0/imap_processing/lo/l0 → imap_processing-0.3.0/imap_processing/lo/l0/utils}/lo_base.py +5 -3
  103. imap_processing-0.3.0/imap_processing/lo/l1a/lo_cdf_attrs.py +60 -0
  104. imap_processing-0.3.0/imap_processing/lo/l1a/lo_data_container.py +66 -0
  105. imap_processing-0.3.0/imap_processing/lo/l1a/lo_l1a.py +176 -0
  106. imap_processing-0.3.0/imap_processing/lo/l1a/lo_l1a_write_cdfs.py +123 -0
  107. imap_processing-0.3.0/imap_processing/lo/l1b/lo_l1b.py +152 -0
  108. imap_processing-0.3.0/imap_processing/lo/l1c/lo_l1c.py +174 -0
  109. imap_processing-0.3.0/imap_processing/lo/packet_definitions/P_ILO_STAR.xml +102 -0
  110. imap_processing-0.3.0/imap_processing/mag/l0/decom_mag.py +165 -0
  111. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/mag/l0/mag_l0_data.py +21 -9
  112. imap_processing-0.3.0/imap_processing/mag/l1a/mag_l1a.py +293 -0
  113. imap_processing-0.3.0/imap_processing/mag/l1a/mag_l1a_data.py +285 -0
  114. imap_processing-0.3.0/imap_processing/mag/l1b/imap_calibration_mag_20240229_v01.cdf +0 -0
  115. imap_processing-0.3.0/imap_processing/mag/l1b/mag_l1b.py +112 -0
  116. imap_processing-0.3.0/imap_processing/mag/l1c/mag_l1c.py +52 -0
  117. imap_processing-0.3.0/imap_processing/mag/mag_cdf_attrs.py +249 -0
  118. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/mag/packet_definitions/MAG_SCI_COMBINED.xml +1 -1
  119. imap_processing-0.3.0/imap_processing/swapi/__init__.py +1 -0
  120. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swapi/l1/swapi_l1.py +176 -51
  121. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swapi/packet_definitions/swapi_packet_definition.xml +25 -18
  122. imap_processing-0.3.0/imap_processing/swapi/swapi_cdf_attrs.py +102 -0
  123. imap_processing-0.3.0/imap_processing/swapi/swapi_utils.py +34 -0
  124. imap_processing-0.3.0/imap_processing/swe/__init__.py +1 -0
  125. imap_processing-0.3.0/imap_processing/swe/l1a/swe_l1a.py +46 -0
  126. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swe/l1a/swe_science.py +69 -57
  127. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swe/l1b/swe_l1b.py +13 -18
  128. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swe/l1b/swe_l1b_science.py +100 -88
  129. imap_processing-0.3.0/imap_processing/swe/packet_definitions/swe_packet_definition.xml +260 -0
  130. imap_processing-0.3.0/imap_processing/swe/utils/swe_utils.py +32 -0
  131. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/cdf/test_attr_classes.py +15 -3
  132. imap_processing-0.3.0/imap_processing/tests/cdf/test_utils.py +107 -0
  133. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-counters-aggregated_20240429_v001.pkts +0 -0
  134. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-counters-singles_20240429_v001.pkts +0 -0
  135. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-angular_20240429_v001.pkts +0 -0
  136. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-priority_20240429_v001.pkts +0 -0
  137. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-species_20240429_v001.pkts +0 -0
  138. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-sw-angular_20240429_v001.pkts +0 -0
  139. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-sw-priority_20240429_v001.pkts +0 -0
  140. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_lo-sw-species_20240429_v001.pkts +0 -0
  141. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-aggregated_20240429_v001.cdf +0 -0
  142. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-singles_20240429_v001.cdf +0 -0
  143. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_hi-omni_20240429_v001.cdf +0 -0
  144. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_hi-sectored_20240429_v001.cdf +0 -0
  145. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_hskp_20100101_v001.cdf +0 -0
  146. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-aggregated_20240429_v001.cdf +0 -0
  147. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-singles_20240429_v001.cdf +0 -0
  148. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-angular_20240429_v001.cdf +0 -0
  149. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-priority_20240429_v001.cdf +0 -0
  150. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-species_20240429_v001.cdf +0 -0
  151. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-angular_20240429_v001.cdf +0 -0
  152. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-priority_20240429_v001.cdf +0 -0
  153. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-species_20240429_v001.cdf +0 -0
  154. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-aggregated_20240429_v001.cdf +0 -0
  155. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-singles_20240429_v001.cdf +0 -0
  156. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_hi-omni_20240429_v001.cdf +0 -0
  157. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_hi-sectored_20240429_v001.cdf +0 -0
  158. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_hskp_20100101_v001.cdf +0 -0
  159. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-aggregated_20240429_v001.cdf +0 -0
  160. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-singles_20240429_v001.cdf +0 -0
  161. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-angular_20240429_v001.cdf +0 -0
  162. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-priority_20240429_v001.cdf +0 -0
  163. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-species_20240429_v001.cdf +0 -0
  164. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-angular_20240429_v001.cdf +0 -0
  165. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-priority_20240429_v001.cdf +0 -0
  166. imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-species_20240429_v001.cdf +0 -0
  167. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/codice/test_codice_l0.py +7 -4
  168. imap_processing-0.3.0/imap_processing/tests/codice/test_codice_l1a.py +232 -0
  169. imap_processing-0.3.0/imap_processing/tests/codice/test_codice_l1b.py +101 -0
  170. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/codice/test_decompress.py +7 -1
  171. imap_processing-0.3.0/imap_processing/tests/conftest.py +31 -0
  172. imap_processing-0.3.0/imap_processing/tests/glows/direct_events_validation_data_l1a.csv +5704 -0
  173. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/glows/test_glows_decom.py +1 -1
  174. imap_processing-0.3.0/imap_processing/tests/glows/test_glows_l1a_cdf.py +82 -0
  175. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/glows/test_glows_l1a_data.py +152 -5
  176. imap_processing-0.3.0/imap_processing/tests/glows/test_glows_l1b.py +348 -0
  177. imap_processing-0.3.0/imap_processing/tests/glows/test_glows_l1b_data.py +70 -0
  178. imap_processing-0.3.0/imap_processing/tests/hi/conftest.py +107 -0
  179. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hi/test_decom.py +4 -7
  180. imap_processing-0.3.0/imap_processing/tests/hi/test_hi_l1b.py +36 -0
  181. imap_processing-0.3.0/imap_processing/tests/hi/test_hi_l1c.py +73 -0
  182. imap_processing-0.3.0/imap_processing/tests/hi/test_l1a.py +99 -0
  183. imap_processing-0.3.0/imap_processing/tests/hi/test_l1a_sci_de.py +72 -0
  184. imap_processing-0.3.0/imap_processing/tests/hi/test_utils.py +15 -0
  185. imap_processing-0.3.0/imap_processing/tests/hit/test_data/hskp_sample.ccsds +0 -0
  186. imap_processing-0.3.0/imap_processing/tests/hit/test_hit_l1a.py +102 -0
  187. imap_processing-0.3.0/imap_processing/tests/hit/test_hit_l1b.py +46 -0
  188. imap_processing-0.3.0/imap_processing/tests/hit/test_housekeeping.py +91 -0
  189. imap_processing-0.3.0/imap_processing/tests/hit/validation_data/hskp_sample_raw.csv +88 -0
  190. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/ialirt/unit/test_decom_ialirt.py +0 -14
  191. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/idex/test_decom.py +11 -2
  192. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/idex/test_l1_cdfs.py +23 -31
  193. imap_processing-0.3.0/imap_processing/tests/lo/test_binary_string.py +21 -0
  194. imap_processing-0.3.0/imap_processing/tests/lo/test_bit_decompression.py +38 -0
  195. imap_processing-0.3.0/imap_processing/tests/lo/test_cdfs/imap_lo_l1a_de_20100101_v001.cdf +0 -0
  196. imap_processing-0.3.0/imap_processing/tests/lo/test_cdfs/imap_lo_l1a_spin_20100101_v001.cdf +0 -0
  197. imap_processing-0.3.0/imap_processing/tests/lo/test_cdfs/imap_lo_l1b_de_20100101_v001.cdf +0 -0
  198. imap_processing-0.3.0/imap_processing/tests/lo/test_lo_l1a.py +23 -0
  199. imap_processing-0.3.0/imap_processing/tests/lo/test_lo_l1a_write_cdfs.py +90 -0
  200. imap_processing-0.3.0/imap_processing/tests/lo/test_lo_l1b.py +74 -0
  201. imap_processing-0.3.0/imap_processing/tests/lo/test_lo_l1c.py +66 -0
  202. imap_processing-0.3.0/imap_processing/tests/lo/test_science_counts.py +58 -0
  203. imap_processing-0.3.0/imap_processing/tests/lo/test_science_direct_events.py +210 -0
  204. imap_processing-0.3.0/imap_processing/tests/lo/test_star_sensor.py +35 -0
  205. imap_processing-0.3.0/imap_processing/tests/mag/imap_mag_l1a_burst-magi_20231025_v001.cdf +0 -0
  206. imap_processing-0.3.0/imap_processing/tests/mag/mag_l0_test_data.pkts +0 -0
  207. imap_processing-0.3.0/imap_processing/tests/mag/mag_l0_test_output.csv +37 -0
  208. imap_processing-0.3.0/imap_processing/tests/mag/mag_l1_test_data.pkts +0 -0
  209. imap_processing-0.3.0/imap_processing/tests/mag/mag_l1a_test_output.csv +97 -0
  210. imap_processing-0.3.0/imap_processing/tests/mag/test_mag_decom.py +101 -0
  211. imap_processing-0.3.0/imap_processing/tests/mag/test_mag_l1a.py +115 -0
  212. imap_processing-0.3.0/imap_processing/tests/mag/test_mag_l1b.py +77 -0
  213. imap_processing-0.3.0/imap_processing/tests/mag/test_mag_l1c.py +40 -0
  214. imap_processing-0.3.0/imap_processing/tests/swapi/l0_validation_data/__init__.py +0 -0
  215. imap_processing-0.3.0/imap_processing/tests/swapi/test_swapi_decom.py +139 -0
  216. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/test_swapi_l1.py +68 -35
  217. imap_processing-0.3.0/imap_processing/tests/swe/__init__.py +0 -0
  218. imap_processing-0.3.0/imap_processing/tests/swe/conftest.py +13 -0
  219. imap_processing-0.3.0/imap_processing/tests/swe/l0_data/2024051010_SWE_SCIENCE_packet.bin +0 -0
  220. imap_processing-0.3.0/imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_SCIENCE_20240510_092742.csv +544 -0
  221. imap_processing-0.3.0/imap_processing/tests/swe/l0_validation_data/idle_export_raw.SWE_SCIENCE_20240510_092742.csv +363 -0
  222. imap_processing-0.3.0/imap_processing/tests/swe/test_swe_l1a.py +24 -0
  223. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swe/test_swe_l1a_science.py +13 -39
  224. imap_processing-0.3.0/imap_processing/tests/swe/test_swe_l1b.py +86 -0
  225. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swe/test_swe_l1b_science.py +4 -1
  226. imap_processing-0.3.0/imap_processing/tests/test_cli.py +226 -0
  227. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/test_decom.py +1 -10
  228. imap_processing-0.3.0/imap_processing/tests/test_utils.py +71 -0
  229. imap_processing-0.3.0/imap_processing/tests/ultra/__init__.py +0 -0
  230. imap_processing-0.3.0/imap_processing/tests/ultra/test_data/l0/FM45_40P_Phi28p5_BeamCal_LinearScan_phi28.50_theta-0.00_20240207T102740.CCSDS +0 -0
  231. imap_processing-0.3.0/imap_processing/tests/ultra/test_data/l0/FM45_7P_Phi0.0_BeamCal_LinearScan_phi0.04_theta-0.01_20230821T121304.CCSDS +0 -0
  232. imap_processing-0.3.0/imap_processing/tests/ultra/test_data/l0/FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.CCSDS +0 -0
  233. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_auxdata_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +1 -1
  234. imap_processing-0.3.0/imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_enaphxtofhangimg_FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.csv +105 -0
  235. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultraimgrates_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +1 -1
  236. imap_processing-0.3.0/imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimgevent_FM45_7P_Phi00_BeamCal_LinearScan_phi004_theta-001_20230821T121304.csv +702 -0
  237. imap_processing-0.3.0/imap_processing/tests/ultra/unit/__init__.py +0 -0
  238. imap_processing-0.3.0/imap_processing/tests/ultra/unit/conftest.py +163 -0
  239. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_decom_apid_880.py +98 -0
  240. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_decom_apid_881.py +50 -0
  241. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_decom_apid_883.py +44 -0
  242. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_decom_apid_896.py +105 -0
  243. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_ultra_l1a.py +329 -0
  244. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_ultra_l1b.py +122 -0
  245. imap_processing-0.3.0/imap_processing/tests/ultra/unit/test_ultra_l1c.py +104 -0
  246. imap_processing-0.3.0/imap_processing/ultra/__init__.py +1 -0
  247. imap_processing-0.3.0/imap_processing/ultra/l0/__init__.py +0 -0
  248. imap_processing-0.3.0/imap_processing/ultra/l0/decom_tools.py +267 -0
  249. imap_processing-0.3.0/imap_processing/ultra/l0/decom_ultra.py +265 -0
  250. imap_processing-0.3.0/imap_processing/ultra/l0/ultra_utils.py +315 -0
  251. imap_processing-0.3.0/imap_processing/ultra/l1a/__init__.py +0 -0
  252. imap_processing-0.3.0/imap_processing/ultra/l1a/ultra_l1a.py +348 -0
  253. imap_processing-0.3.0/imap_processing/ultra/l1b/badtimes.py +24 -0
  254. imap_processing-0.3.0/imap_processing/ultra/l1b/cullingmask.py +24 -0
  255. imap_processing-0.3.0/imap_processing/ultra/l1b/de.py +58 -0
  256. imap_processing-0.3.0/imap_processing/ultra/l1b/extendedspin.py +44 -0
  257. imap_processing-0.3.0/imap_processing/ultra/l1b/ultra_l1b.py +63 -0
  258. imap_processing-0.3.0/imap_processing/ultra/l1c/histogram.py +33 -0
  259. imap_processing-0.3.0/imap_processing/ultra/l1c/pset.py +35 -0
  260. imap_processing-0.3.0/imap_processing/ultra/l1c/ultra_l1c.py +50 -0
  261. imap_processing-0.2.0/imap_processing/ultra/packet_definitions/P_U45_AUXILIARY.xml → imap_processing-0.3.0/imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +173 -32
  262. imap_processing-0.3.0/imap_processing/ultra/packet_definitions/__init__.py +0 -0
  263. imap_processing-0.3.0/imap_processing/ultra/ultra_cdf_attrs.py +62 -0
  264. imap_processing-0.3.0/imap_processing/ultra/utils/__init__.py +0 -0
  265. imap_processing-0.3.0/imap_processing/ultra/utils/ultra_l1_utils.py +54 -0
  266. imap_processing-0.3.0/imap_processing/utils.py +246 -0
  267. {imap_processing-0.2.0 → imap_processing-0.3.0}/pyproject.toml +39 -16
  268. imap_processing-0.2.0/imap_processing/cdf/utils.py +0 -130
  269. imap_processing-0.2.0/imap_processing/cli.py +0 -292
  270. imap_processing-0.2.0/imap_processing/codice/cdf_attrs.py +0 -116
  271. imap_processing-0.2.0/imap_processing/codice/codice_l0.py +0 -35
  272. imap_processing-0.2.0/imap_processing/codice/codice_l1a.py +0 -53
  273. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_HI_INSTRUMENT_COUNTERS.xml +0 -198
  274. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_HI_OMNI_SPECIES_COUNTS.xml +0 -196
  275. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_HI_SECT_SPECIES_COUNTS.xml +0 -196
  276. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_LO_INSTRUMENT_COUNTERS.xml +0 -196
  277. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_LO_NSW_ANGULAR_COUNTS.xml +0 -196
  278. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_LO_NSW_SPECIES_COUNTS.xml +0 -196
  279. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_LO_PRIORITY_COUNTS.xml +0 -196
  280. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_LO_SW_ANGULAR_COUNTS.xml +0 -196
  281. imap_processing-0.2.0/imap_processing/codice/packet_definitions/P_COD_LO_SW_SPECIES_COUNTS.xml +0 -196
  282. imap_processing-0.2.0/imap_processing/codice/utils.py +0 -142
  283. imap_processing-0.2.0/imap_processing/glows/__init__.py +0 -1
  284. imap_processing-0.2.0/imap_processing/hi/packet_definitions/H45_SCI_CNT.xml +0 -112
  285. imap_processing-0.2.0/imap_processing/hi/packet_definitions/H45_SCI_DE.xml +0 -108
  286. imap_processing-0.2.0/imap_processing/hit/l0/hit_l1a_decom.py +0 -140
  287. imap_processing-0.2.0/imap_processing/hit/packet_definitions/P_HIT_AUT.xml +0 -102
  288. imap_processing-0.2.0/imap_processing/hit/packet_definitions/P_HIT_IALRT.xml +0 -167
  289. imap_processing-0.2.0/imap_processing/hit/packet_definitions/P_HIT_MEMDUMP.xml +0 -540
  290. imap_processing-0.2.0/imap_processing/hit/packet_definitions/P_HIT_MSGLOG.xml +0 -84
  291. imap_processing-0.2.0/imap_processing/hit/packet_definitions/P_HIT_SCIENCE.xml +0 -7837
  292. imap_processing-0.2.0/imap_processing/lo/l0/decompression_tables.py +0 -209
  293. imap_processing-0.2.0/imap_processing/lo/l0/science_direct_events.py +0 -233
  294. imap_processing-0.2.0/imap_processing/lo/packet_definitions/P_ILO_STAR.xml +0 -3692
  295. imap_processing-0.2.0/imap_processing/mag/l0/decom_mag.py +0 -61
  296. imap_processing-0.2.0/imap_processing/swapi/swapi_utils.py +0 -91
  297. imap_processing-0.2.0/imap_processing/swe/__init__.py +0 -1
  298. imap_processing-0.2.0/imap_processing/swe/l1a/swe_l1a.py +0 -70
  299. imap_processing-0.2.0/imap_processing/swe/packet_definitions/swe_packet_definition.xml +0 -881
  300. imap_processing-0.2.0/imap_processing/swe/swe_cdf_attrs.py +0 -198
  301. imap_processing-0.2.0/imap_processing/swe/utils/swe_utils.py +0 -121
  302. imap_processing-0.2.0/imap_processing/tests/cdf/test_utils.py +0 -41
  303. imap_processing-0.2.0/imap_processing/tests/codice/test_codice_l1a.py +0 -46
  304. imap_processing-0.2.0/imap_processing/tests/conftest.py +0 -13
  305. imap_processing-0.2.0/imap_processing/tests/hit/test_hit_decom.py +0 -24
  306. imap_processing-0.2.0/imap_processing/tests/lo/test_science_direct_events.py +0 -278
  307. imap_processing-0.2.0/imap_processing/tests/mag/mag_multiple_packets.pkts +0 -0
  308. imap_processing-0.2.0/imap_processing/tests/mag/mag_single_burst.pkts +0 -0
  309. imap_processing-0.2.0/imap_processing/tests/mag/mag_single_norm.pkts +0 -0
  310. imap_processing-0.2.0/imap_processing/tests/mag/mag_vector_packets.pkts +0 -0
  311. imap_processing-0.2.0/imap_processing/tests/mag/test_mag_decom.py +0 -72
  312. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927100248_SWE_HK_packet.bin +0 -0
  313. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927100412_SWE_HK_packet.bin +0 -0
  314. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927100425_SWE_CEM_RAW_packet.bin +0 -0
  315. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927100426_SWE_CEM_RAW_packet.bin +0 -0
  316. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927173238_SWE_SCIENCE_packet.bin +0 -0
  317. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927173253_SWE_SCIENCE_packet.bin +0 -0
  318. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927173308_SWE_SCIENCE_packet.bin +0 -0
  319. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20230927173323_SWE_SCIENCE_packet.bin +0 -0
  320. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004155854_SWE_EVTMSG_packet.bin +0 -0
  321. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004155904_SWE_EVTMSG_packet.bin +0 -0
  322. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004155905_SWE_EVTMSG_packet.bin +0 -0
  323. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004155919_SWE_EVTMSG_packet.bin +0 -0
  324. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004155956_SWE_EVTMSG_packet.bin +0 -0
  325. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160009_SWE_EVTMSG_packet.bin +0 -0
  326. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160010_SWE_EVTMSG_packet.bin +0 -0
  327. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160020_SWE_EVTMSG_packet.bin +0 -0
  328. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160021_SWE_EVTMSG_packet.bin +0 -0
  329. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160022_SWE_EVTMSG_packet.bin +0 -0
  330. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160024_SWE_EVTMSG_packet.bin +0 -0
  331. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160027_SWE_EVTMSG_packet.bin +0 -0
  332. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160030_SWE_EVTMSG_packet.bin +0 -0
  333. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160033_SWE_EVTMSG_packet.bin +0 -0
  334. imap_processing-0.2.0/imap_processing/tests/swe/l0_data/20231004160034_SWE_EVTMSG_packet.bin +0 -0
  335. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/data_derived.SWE_APP_HK_20230927_094839.csv +0 -3
  336. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/data_raw.SWE_APP_HK_20230927_094839.csv +0 -3
  337. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/data_raw.SWE_CEM_RAW_20230927_094839.csv +0 -3
  338. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_EVTMSG_20231004_140149.xlsx +0 -0
  339. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_SCIENCE_20230927_172708.csv +0 -5
  340. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/idle_export_raw.SWE_EVTMSG_20231004_140149.csv +0 -16
  341. imap_processing-0.2.0/imap_processing/tests/swe/l0_validation_data/idle_export_raw.SWE_SCIENCE_20230927_172708.csv +0 -5
  342. imap_processing-0.2.0/imap_processing/tests/swe/test_swe_l1a.py +0 -54
  343. imap_processing-0.2.0/imap_processing/tests/swe/test_swe_l1a_cem_raw.py +0 -44
  344. imap_processing-0.2.0/imap_processing/tests/swe/test_swe_l1a_event_msg.py +0 -49
  345. imap_processing-0.2.0/imap_processing/tests/swe/test_swe_l1a_housekeeping.py +0 -84
  346. imap_processing-0.2.0/imap_processing/tests/swe/test_swe_l1b.py +0 -155
  347. imap_processing-0.2.0/imap_processing/tests/test_data_access.py +0 -32
  348. imap_processing-0.2.0/imap_processing/tests/ultra/unit/conftest.py +0 -85
  349. imap_processing-0.2.0/imap_processing/tests/ultra/unit/test_decom_apid_880.py +0 -58
  350. imap_processing-0.2.0/imap_processing/tests/ultra/unit/test_decom_apid_881.py +0 -45
  351. imap_processing-0.2.0/imap_processing/ultra/l0/decom_ultra.py +0 -211
  352. imap_processing-0.2.0/imap_processing/ultra/packet_definitions/P_U45_IMAGE_RATES.xml +0 -224
  353. imap_processing-0.2.0/imap_processing/ultra/packet_definitions/P_U45_IMG_ENA_PHXTOF_HI_ANG.xml +0 -204
  354. imap_processing-0.2.0/imap_processing/ultra/packet_definitions/P_U45_IMG_RAW_EVENTS.xml +0 -224
  355. imap_processing-0.2.0/imap_processing/utils.py +0 -95
  356. {imap_processing-0.2.0 → imap_processing-0.3.0}/LICENSE +0 -0
  357. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/ccsds/__init__.py +0 -0
  358. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/ccsds/ccsds_data.py +0 -0
  359. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/cdf/__init__.py +0 -0
  360. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/codice/packet_definitions/P_COD_HI_PHA.xml +0 -0
  361. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/codice/packet_definitions/P_COD_LO_PHA.xml +0 -0
  362. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/codice/packet_definitions/P_COD_NHK.xml +0 -0
  363. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/decom.py +0 -0
  364. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/l0/__init__.py +0 -0
  365. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/packet_definitions/GLX_COMBINED.xml +0 -0
  366. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/packet_definitions/P_GLX_TMSCDE.xml +0 -0
  367. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/packet_definitions/P_GLX_TMSCHIST.xml +0 -0
  368. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/glows/utils/__init__.py +0 -0
  369. {imap_processing-0.2.0/imap_processing/hi → imap_processing-0.3.0/imap_processing/hi/l0}/__init__.py +0 -0
  370. {imap_processing-0.2.0/imap_processing/hi/packet_definitions → imap_processing-0.3.0/imap_processing/hi/l1a}/__init__.py +0 -0
  371. {imap_processing-0.2.0/imap_processing/hit → imap_processing-0.3.0/imap_processing/hi/l1b}/__init__.py +0 -0
  372. {imap_processing-0.2.0/imap_processing/hit/l0 → imap_processing-0.3.0/imap_processing/hi/l1c}/__init__.py +0 -0
  373. {imap_processing-0.2.0/imap_processing/ialirt → imap_processing-0.3.0/imap_processing/hi/packet_definitions}/__init__.py +0 -0
  374. {imap_processing-0.2.0/imap_processing/ialirt → imap_processing-0.3.0/imap_processing/hit}/l0/__init__.py +0 -0
  375. {imap_processing-0.2.0/imap_processing/ialirt/packet_definitions → imap_processing-0.3.0/imap_processing/hit/l1a}/__init__.py +0 -0
  376. {imap_processing-0.2.0/imap_processing/lo → imap_processing-0.3.0/imap_processing/ialirt}/__init__.py +0 -0
  377. {imap_processing-0.2.0/imap_processing/lo → imap_processing-0.3.0/imap_processing/ialirt}/l0/__init__.py +0 -0
  378. {imap_processing-0.2.0/imap_processing/swapi/l1 → imap_processing-0.3.0/imap_processing/ialirt/packet_definitions}/__init__.py +0 -0
  379. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/ialirt/packet_definitions/ialirt.xml +0 -0
  380. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/idex/__init__.py +0 -0
  381. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/idex/idex_constants.py +0 -0
  382. {imap_processing-0.2.0/imap_processing/swapi/packet_definitions → imap_processing-0.3.0/imap_processing/lo/l0}/__init__.py +0 -0
  383. {imap_processing-0.2.0/imap_processing/swe/l0 → imap_processing-0.3.0/imap_processing/lo/l1a}/__init__.py +0 -0
  384. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_APP_NHK.xml +0 -0
  385. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_APP_SHK.xml +0 -0
  386. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_AUTO.xml +0 -0
  387. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_BOOT_HK.xml +0 -0
  388. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_BOOT_MEMDMP.xml +0 -0
  389. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_DIAG_BULK_HVPS.xml +0 -0
  390. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_DIAG_CDH.xml +0 -0
  391. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_DIAG_IFB.xml +0 -0
  392. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_DIAG_PCC.xml +0 -0
  393. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_DIAG_TOF_BD.xml +0 -0
  394. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_EVTMSG.xml +0 -0
  395. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_MEMDMP.xml +0 -0
  396. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_RAW_CNT.xml +0 -0
  397. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_RAW_DE.xml +0 -0
  398. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_RAW_STAR.xml +0 -0
  399. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_SCI_CNT.xml +0 -0
  400. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_SCI_DE.xml +0 -0
  401. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/lo/packet_definitions/P_ILO_SPIN.xml +0 -0
  402. {imap_processing-0.2.0/imap_processing/codice → imap_processing-0.3.0/imap_processing/mag}/__init__.py +0 -0
  403. {imap_processing-0.2.0/imap_processing/swe/l1a → imap_processing-0.3.0/imap_processing/mag/l1b}/__init__.py +0 -0
  404. {imap_processing-0.2.0/imap_processing/swe/packet_definitions → imap_processing-0.3.0/imap_processing/swapi/l1}/__init__.py +0 -0
  405. {imap_processing-0.2.0/imap_processing/swe/utils → imap_processing-0.3.0/imap_processing/swapi/packet_definitions}/__init__.py +0 -0
  406. {imap_processing-0.2.0/imap_processing/tests → imap_processing-0.3.0/imap_processing/swe/l0}/__init__.py +0 -0
  407. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swe/l0/decom_swe.py +0 -0
  408. {imap_processing-0.2.0/imap_processing/tests/cdf → imap_processing-0.3.0/imap_processing/swe/l1a}/__init__.py +0 -0
  409. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swe/l1b/engineering_unit_convert_table.csv +0 -0
  410. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/swe/l1b/swe_esa_lookup_table.csv +0 -0
  411. {imap_processing-0.2.0/imap_processing/tests/codice → imap_processing-0.3.0/imap_processing/swe/packet_definitions}/__init__.py +0 -0
  412. {imap_processing-0.2.0/imap_processing/tests/hi → imap_processing-0.3.0/imap_processing/swe/utils}/__init__.py +0 -0
  413. {imap_processing-0.2.0/imap_processing/tests/hit → imap_processing-0.3.0/imap_processing/tests}/__init__.py +0 -0
  414. {imap_processing-0.2.0/imap_processing/tests/ialirt → imap_processing-0.3.0/imap_processing/tests/cdf}/__init__.py +0 -0
  415. {imap_processing-0.2.0/imap_processing/tests/ialirt/unit → imap_processing-0.3.0/imap_processing/tests/codice}/__init__.py +0 -0
  416. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/codice/data/eu_unit_lookup_table.csv +0 -0
  417. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/codice/data/idle_export_eu.COD_NHK_20230822_122700 2.csv +0 -0
  418. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/codice/data/idle_export_raw.COD_NHK_20230822_122700.csv +0 -0
  419. /imap_processing-0.2.0/imap_processing/tests/idex/__init__.py → /imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_hi-counters-aggregated_20240429_v001.pkts +0 -0
  420. /imap_processing-0.2.0/imap_processing/tests/lo/__init__.py → /imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_hi-counters-singles_20240429_v001.pkts +0 -0
  421. /imap_processing-0.2.0/imap_processing/tests/swapi/__init__.py → /imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_hi-omni_20240429_v001.pkts +0 -0
  422. /imap_processing-0.2.0/imap_processing/tests/swapi/l0_data/__init__.py → /imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_hi-sectored_20240429_v001.pkts +0 -0
  423. /imap_processing-0.2.0/imap_processing/tests/codice/data/raw_ccsds_20230822_122700Z_idle.bin → /imap_processing-0.3.0/imap_processing/tests/codice/data/imap_codice_l0_hskp_20100101_v001.pkts +0 -0
  424. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/glows/glows_test_packet_20110921_v01.pkts +0 -0
  425. {imap_processing-0.2.0/imap_processing/tests/swapi/l0_validation_data → imap_processing-0.3.0/imap_processing/tests/hi}/__init__.py +0 -0
  426. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hi/l0_test_data/20231030_H45_APP_NHK.bin +0 -0
  427. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hi/l0_test_data/20231030_H45_SCI_CNT.bin +0 -0
  428. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hi/l0_test_data/20231030_H45_SCI_DE.bin +0 -0
  429. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hi/l0_test_data/README.txt +0 -0
  430. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hi/l0_validation_data/20231030_H45_APP_NHK.csv +0 -0
  431. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1251.pkts +0 -0
  432. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1252.pkts +0 -0
  433. {imap_processing-0.2.0/imap_processing/tests/swe → imap_processing-0.3.0/imap_processing/tests/hit}/__init__.py +0 -0
  434. {imap_processing-0.2.0/imap_processing/tests/ultra → imap_processing-0.3.0/imap_processing/tests/ialirt}/__init__.py +0 -0
  435. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/ialirt/test_data/l0/IALiRT Raw Packet Telemetry.txt +0 -0
  436. {imap_processing-0.2.0/imap_processing/tests/ultra → imap_processing-0.3.0/imap_processing/tests/ialirt}/unit/__init__.py +0 -0
  437. {imap_processing-0.2.0/imap_processing/ultra → imap_processing-0.3.0/imap_processing/tests/idex}/__init__.py +0 -0
  438. /imap_processing-0.2.0/imap_processing/tests/idex/imap_idex_l0_20230725_v01-00.pkts → /imap_processing-0.3.0/imap_processing/tests/idex/imap_idex_l0_raw_20230725_v001.pkts +0 -0
  439. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/idex/impact_14_tof_high_data.txt +0 -0
  440. {imap_processing-0.2.0/imap_processing/ultra/l0 → imap_processing-0.3.0/imap_processing/tests/lo}/__init__.py +0 -0
  441. {imap_processing-0.2.0/imap_processing/ultra/l1a → imap_processing-0.3.0/imap_processing/tests/swapi}/__init__.py +0 -0
  442. {imap_processing-0.2.0/imap_processing/ultra/packet_definitions → imap_processing-0.3.0/imap_processing/tests/swapi/l0_data}/__init__.py +0 -0
  443. /imap_processing-0.2.0/imap_processing/tests/swapi/l0_data/BinLog CCSDS_FRAG_TLM_20231012_125856Z_test.bin → /imap_processing-0.3.0/imap_processing/tests/swapi/l0_data/imap_swapi_l0_raw_20231012_v001.pkts +0 -0
  444. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_AUT_20231012_125245.csv +0 -0
  445. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_HK_20231012_125245.csv +0 -0
  446. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_MG_20231012_125245.csv +0 -0
  447. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_SCI_20231012_125245.csv +0 -0
  448. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_AUT_20231012_125245.csv +0 -0
  449. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_HK_20231012_125245.csv +0 -0
  450. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_MG_20231012_125245.csv +0 -0
  451. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_SCI_20231012_125245.csv +0 -0
  452. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swe/decompressed/20230927173238_4th_quarter_decompressed.csv +0 -0
  453. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swe/decompressed/20230927173253_1st_quarter_decompressed.csv +0 -0
  454. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swe/decompressed/20230927173308_2nd_quarter_decompressed.csv +0 -0
  455. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/swe/decompressed/20230927173323_3rd_quarter_decompressed.csv +0 -0
  456. {imap_processing-0.2.0 → imap_processing-0.3.0}/imap_processing/tests/ultra/test_data/l0/Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.CCSDS +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imap-processing
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: IMAP Science Operations Center Processing
5
5
  License: MIT
6
6
  Keywords: IMAP,SDC,SOC,Science Operations
@@ -26,9 +26,9 @@ Provides-Extra: dev
26
26
  Provides-Extra: doc
27
27
  Provides-Extra: test
28
28
  Provides-Extra: tools
29
- Requires-Dist: bitstring (>=4.0.1)
30
- Requires-Dist: cdflib (>=1.2.3)
31
- Requires-Dist: imap-data-access (>=0.2.0)
29
+ Requires-Dist: cdflib (==1.2.6)
30
+ Requires-Dist: imap-data-access (>=0.5.0)
31
+ Requires-Dist: numpy (>=1.26.4,<2.0.0)
32
32
  Requires-Dist: numpydoc (>=1.5.0,<2.0.0) ; extra == "doc"
33
33
  Requires-Dist: openpyxl (>=3.0.7) ; extra == "tools"
34
34
  Requires-Dist: pandas (>=2.0.0) ; extra == "tools"
@@ -36,19 +36,22 @@ Requires-Dist: pre-commit (>=3.3.3,<4.0.0) ; extra == "dev"
36
36
  Requires-Dist: pydata-sphinx-theme ; extra == "doc"
37
37
  Requires-Dist: pytest (>=6.2.5) ; extra == "test"
38
38
  Requires-Dist: pytest-cov (>=4.0.0,<5.0.0) ; extra == "test"
39
- Requires-Dist: ruff (>=0.1.7) ; extra == "dev"
40
- Requires-Dist: space_packet_parser (>=4.1.0)
39
+ Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
40
+ Requires-Dist: ruff (==0.2.1) ; extra == "dev"
41
+ Requires-Dist: space_packet_parser (>=4.2.0)
41
42
  Requires-Dist: sphinx ; extra == "doc"
42
- Requires-Dist: sphinxcontrib-openapi (>=0.8.3,<0.9.0)
43
+ Requires-Dist: sphinxcontrib-openapi (>=0.8.3,<0.9.0) ; extra == "doc"
43
44
  Requires-Dist: spiceypy (>=6.0.0)
44
45
  Requires-Dist: xarray (>=2023.0.0)
45
46
  Description-Content-Type: text/markdown
46
47
 
47
48
  # IMAP (Interstellar Mapping and Acceleration Probe)
48
49
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
49
- [![All Contributors](https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square)](#contributors-)
50
+ [![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors-)
50
51
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
51
52
  [![readthedocs](https://readthedocs.org/projects/imap-processing/badge/?version=latest)](https://imap-processing.readthedocs.io/en/latest/)
53
+ <!-- DOI-BADGE -->
54
+ [![DOI](https://zenodo.org/badge/654679818.svg)](https://zenodo.org/badge/latestdoi/654679818)
52
55
 
53
56
  The Interstellar Mapping and Acceleration Probe (IMAP) is an exciting project aimed at studying the interstellar medium and investigating the acceleration mechanisms of particles within our galaxy. IMAP utilizes cutting-edge technology and advanced instrumentation to gather valuable data and expand our understanding of space.
54
57
 
@@ -85,6 +88,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
85
88
  <tr>
86
89
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/bryan-harter"><img src="https://avatars.githubusercontent.com/u/41062454?v=4?s=100" width="100px;" alt="Bryan Harter"/><br /><sub><b>Bryan Harter</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bryan-harter" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bryan-harter" title="Documentation">📖</a></td>
87
90
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/mstrumik"><img src="https://avatars.githubusercontent.com/u/142874888?v=4?s=100" width="100px;" alt="mstrumik"/><br /><sub><b>mstrumik</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Amstrumik" title="Reviewed Pull Requests">👀</a></td>
91
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vmartinez-cu"><img src="https://avatars.githubusercontent.com/u/39746325?v=4?s=100" width="100px;" alt="vmartinez-cu"/><br /><sub><b>vmartinez-cu</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Avmartinez-cu" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=vmartinez-cu" title="Code">💻</a></td>
92
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/subagonsouth"><img src="https://avatars.githubusercontent.com/u/16110870?v=4?s=100" width="100px;" alt="Tim Plummer"/><br /><sub><b>Tim Plummer</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Asubagonsouth" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=subagonsouth" title="Code">💻</a></td>
93
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/daralynnrhode"><img src="https://avatars.githubusercontent.com/u/143308810?v=4?s=100" width="100px;" alt="Daralynn Rhode"/><br /><sub><b>Daralynn Rhode</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=daralynnrhode" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=daralynnrhode" title="Documentation">📖</a></td>
94
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/anamanica"><img src="https://avatars.githubusercontent.com/u/171708990?v=4?s=100" width="100px;" alt="anamanica"/><br /><sub><b>anamanica</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=anamanica" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=anamanica" title="Documentation">📖</a></td>
88
95
  </tr>
89
96
  </tbody>
90
97
  </table>
@@ -95,3 +102,4 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
95
102
  <!-- ALL-CONTRIBUTORS-LIST:END -->
96
103
 
97
104
  This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
105
+
@@ -1,8 +1,10 @@
1
1
  # IMAP (Interstellar Mapping and Acceleration Probe)
2
2
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
3
- [![All Contributors](https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square)](#contributors-)
3
+ [![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors-)
4
4
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
5
5
  [![readthedocs](https://readthedocs.org/projects/imap-processing/badge/?version=latest)](https://imap-processing.readthedocs.io/en/latest/)
6
+ <!-- DOI-BADGE -->
7
+ [![DOI](https://zenodo.org/badge/654679818.svg)](https://zenodo.org/badge/latestdoi/654679818)
6
8
 
7
9
  The Interstellar Mapping and Acceleration Probe (IMAP) is an exciting project aimed at studying the interstellar medium and investigating the acceleration mechanisms of particles within our galaxy. IMAP utilizes cutting-edge technology and advanced instrumentation to gather valuable data and expand our understanding of space.
8
10
 
@@ -39,6 +41,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
39
41
  <tr>
40
42
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/bryan-harter"><img src="https://avatars.githubusercontent.com/u/41062454?v=4?s=100" width="100px;" alt="Bryan Harter"/><br /><sub><b>Bryan Harter</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bryan-harter" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bryan-harter" title="Documentation">📖</a></td>
41
43
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/mstrumik"><img src="https://avatars.githubusercontent.com/u/142874888?v=4?s=100" width="100px;" alt="mstrumik"/><br /><sub><b>mstrumik</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Amstrumik" title="Reviewed Pull Requests">👀</a></td>
44
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vmartinez-cu"><img src="https://avatars.githubusercontent.com/u/39746325?v=4?s=100" width="100px;" alt="vmartinez-cu"/><br /><sub><b>vmartinez-cu</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Avmartinez-cu" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=vmartinez-cu" title="Code">💻</a></td>
45
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/subagonsouth"><img src="https://avatars.githubusercontent.com/u/16110870?v=4?s=100" width="100px;" alt="Tim Plummer"/><br /><sub><b>Tim Plummer</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Asubagonsouth" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=subagonsouth" title="Code">💻</a></td>
46
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/daralynnrhode"><img src="https://avatars.githubusercontent.com/u/143308810?v=4?s=100" width="100px;" alt="Daralynn Rhode"/><br /><sub><b>Daralynn Rhode</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=daralynnrhode" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=daralynnrhode" title="Documentation">📖</a></td>
47
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/anamanica"><img src="https://avatars.githubusercontent.com/u/171708990?v=4?s=100" width="100px;" alt="anamanica"/><br /><sub><b>anamanica</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=anamanica" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=anamanica" title="Documentation">📖</a></td>
42
48
  </tr>
43
49
  </tbody>
44
50
  </table>
@@ -48,4 +54,4 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
48
54
 
49
55
  <!-- ALL-CONTRIBUTORS-LIST:END -->
50
56
 
51
- This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
57
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -7,52 +7,33 @@ contains code for each processing level.
7
7
  There are utilities to read and write IMAP data files in
8
8
  the CDF file format, and to interact with the SPICE toolkit.
9
9
  """
10
- __version__ = "0.2.0"
11
10
 
12
11
  # When imap_processing is installed using pip, we need to be able to find the
13
12
  # packet definitions directory path.
14
13
  #
15
14
  # This directory is used by the imap_processing package to find the packet definitions.
16
- import os
17
15
  from pathlib import Path
18
16
 
19
- # NOTE: Use a config dictionary, so it is a mutable global object,
20
- # otherwise updating previous imports from other modules
21
- # wouldn't have been updated globally (for example if referencing a string).
22
- config = {"DATA_DIR": Path(os.getenv("IMAP_DATA_DIR") or Path.cwd() / "imap-data")}
23
- """imap_processing configuration dictionary.
17
+ import numpy as np
24
18
 
25
- DATA_DIR : This is where the file data is stored and organized by instrument and level.
26
- The default location is in the current working directory, but can be
27
- set on the command line using the --data-dir option, or through
28
- the environment variable IMAP_DATA_DIR.
29
- """
19
+ from imap_processing._version import __version__, __version_tuple__ # noqa: F401
30
20
 
31
21
  # Eg. imap_module_directory = /usr/local/lib/python3.11/site-packages/imap_processing
32
22
  imap_module_directory = Path(__file__).parent
33
23
 
34
- INSTRUMENTS = [
35
- "codice",
36
- "glows",
37
- "hi",
38
- "hit",
39
- "idex",
40
- "lo",
41
- "mag",
42
- "swapi",
43
- "swe",
44
- "ultra",
45
- ]
46
-
24
+ # TODO: should we move this to imap-data-access?
47
25
  PROCESSING_LEVELS = {
48
26
  "codice": ["l0", "l1a", "l1b", "l2"],
49
27
  "glows": ["l0", "l1a", "l1b", "l2"],
50
28
  "hi": ["l0", "l1a", "l1b", "l1c", "l2"],
51
29
  "hit": ["l0", "l1a", "l1b", "l2"],
52
- "idex": ["l0", "l1a", "l1b", "l1c", "l2"],
30
+ "idex": ["l0", "l1", "l2"],
53
31
  "lo": ["l0", "l1a", "l1b", "l1c", "l2"],
54
32
  "mag": ["l0", "l1a", "l1b", "l1c", "l2pre", "l2"],
55
33
  "swapi": ["l0", "l1", "l2"],
56
34
  "swe": ["l0", "l1a", "l1b", "l2"],
57
- "ultra": ["l0", "l1a", "l1b", "l1c", "l1d", "l2"],
35
+ "ultra": ["l0", "l1a", "l1b", "l1c", "l2"],
58
36
  }
37
+
38
+ # Reference start time (launch time or epoch)
39
+ launch_time = np.datetime64("2010-01-01T00:01:06.184", "ns")
@@ -0,0 +1,3 @@
1
+ # These version placeholders will be replaced later during substitution.
2
+ __version__ = "0.3.0"
3
+ __version_tuple__ = (0, 3, 0)
@@ -0,0 +1,239 @@
1
+ """Class for creating and managing CDF attrs.
2
+
3
+ Developed based of HermesDataSchema from HERMES-SOC/hermes_core.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from pathlib import Path
9
+
10
+ import yaml
11
+
12
+ DEFAULT_GLOBAL_CDF_ATTRS_FILE = "imap_default_global_cdf_attrs.yaml"
13
+ DEFAULT_GLOBAL_CDF_ATTRS_SCHEMA_FILE = "default_global_cdf_attrs_schema.yaml"
14
+ DEFAULT_VARIABLE_CDF_ATTRS_SCHEMA_FILE = "default_variable_cdf_attrs_schema.yaml"
15
+
16
+
17
+ class CdfAttributeManager:
18
+ """
19
+ Class for creating and managing CDF attributes based out of yaml files.
20
+
21
+ This class is based on the HERMES SWxSOC project for managing CDF attributes, but
22
+ is intended to be a flexible and very lightweight way of managing CDF attribute
23
+ creation and validation.
24
+
25
+ To use, you can load one or many global and variable attribute files:
26
+
27
+ ```
28
+ cdf_attr_manager = CdfAttributeManager(data_dir)
29
+ cdf_attr_manager.load_global_attributes("global_attrs.yaml")
30
+ cdf_attr_manager.load_global_attributes("instrument_global_attrs.yaml")
31
+ cdf_attr_manager.load_variable_attributes("variable_attrs.yaml")
32
+ ```
33
+
34
+ Later files will overwrite earlier files if the same attribute is defined.
35
+
36
+ You can then get the global and variable attributes:
37
+
38
+ If you provide an instrument_id, it will also add the attributes defined under
39
+ instrument_id. If this is not included, then only the attributes defined in the top
40
+ level of the file are used.
41
+
42
+ ```
43
+ # Instrument ID is optional for refining the attributes used from the file
44
+ global_attrs = cdf_attr_manager.get_global_attributes(instrument_id)
45
+ variable_attrs = cdf_attr_manager.get_variable_attributes(variable_name)
46
+ ```
47
+
48
+ The variable and global attributes are validated against the schemas upon calling
49
+ `get_global_attributes` and `get_variable_attributes`.
50
+
51
+ Attributes
52
+ ----------
53
+ source_dir : Path
54
+ The directory containing the schema and variable files - nominally config/
55
+ """
56
+
57
+ def __init__(self, data_dir: Path):
58
+ """
59
+ Initialize the CdfAttributeManager and read schemas from data_dir.
60
+
61
+ Parameters
62
+ ----------
63
+ data_dir : Path
64
+ The directory containing the schema and variable files - nominally config/
65
+ """
66
+ # TODO: Split up schema source and data source?
67
+ self.source_dir = data_dir
68
+
69
+ # TODO: copied from hermes_core. Currently we can use default schema, but
70
+ # We should add some way of extending the schema and remove all the HERMES
71
+ # specific stuff
72
+ # Data Validation, Complaiance,
73
+ self.global_attribute_schema = self._load_default_global_attr_schema()
74
+
75
+ # Data Validation and Compliance for Variable Data
76
+ self.variable_attribute_schema = self._load_default_variable_attr_schema()
77
+
78
+ # Load Default IMAP Global Attributes
79
+ self.global_attributes = CdfAttributeManager._load_yaml_data(
80
+ self.source_dir / DEFAULT_GLOBAL_CDF_ATTRS_FILE
81
+ )
82
+ self.variable_attributes = dict()
83
+
84
+ def _load_default_global_attr_schema(self) -> dict:
85
+ """
86
+ Load the default global schema from the source directory.
87
+
88
+ Returns
89
+ -------
90
+ the dict representing the global schema
91
+ """
92
+ default_schema_path = (
93
+ self.source_dir / "shared" / DEFAULT_GLOBAL_CDF_ATTRS_SCHEMA_FILE
94
+ )
95
+ # Load the Schema
96
+ return CdfAttributeManager._load_yaml_data(default_schema_path)
97
+
98
+ def _load_default_variable_attr_schema(self) -> dict:
99
+ """
100
+ Load the default variable schema from the source directory.
101
+
102
+ Returns
103
+ -------
104
+ the dict representing the variable schema
105
+ """
106
+ default_schema_path = (
107
+ self.source_dir / "shared" / DEFAULT_VARIABLE_CDF_ATTRS_SCHEMA_FILE
108
+ )
109
+ # Load the Schema
110
+ return CdfAttributeManager._load_yaml_data(default_schema_path)
111
+
112
+ def load_global_attributes(self, file_path: str):
113
+ """
114
+ Update the global attributes property with the attributes from the file.
115
+
116
+ Calling this method multiple times on different files will add all the
117
+ attributes from the files, overwriting existing attributes if they are
118
+ duplicated.
119
+
120
+ Parameters
121
+ ----------
122
+ file_path: str
123
+ file path to load, under self.source_dir.
124
+
125
+ """
126
+ self.global_attributes.update(
127
+ CdfAttributeManager._load_yaml_data(self.source_dir / file_path)
128
+ )
129
+
130
+ def add_global_attribute(self, attribute_name: str, attribute_value: str) -> None:
131
+ """
132
+ Add a single global attribute to the global attributes.
133
+
134
+ This is intended only for dynamic global attributes which change per-file, such
135
+ as Data_version. It is not intended to be used for static attributes, which
136
+ should all be included in the YAML files.
137
+
138
+ This will overwrite any existing value in attribute_name if it exists. The
139
+ attribute must be in the global schema, or it will not be included as output.
140
+
141
+ Parameters
142
+ ----------
143
+ attribute_name: str
144
+ The name of the attribute to add.
145
+ attribute_value: str
146
+ The value of the attribute to add.
147
+ """
148
+ self.global_attributes[attribute_name] = attribute_value
149
+
150
+ @staticmethod
151
+ def _load_yaml_data(file_path: str | Path) -> dict:
152
+ """
153
+ Load a yaml file from the provided path.
154
+
155
+ Parameters
156
+ ----------
157
+ file_path: str | Path
158
+ path to the yaml file to load.
159
+
160
+ Returns
161
+ -------
162
+ Loaded yaml.
163
+ """
164
+ with open(file_path) as file:
165
+ return yaml.safe_load(file)
166
+
167
+ def get_global_attributes(self, instrument_id: str | None = None) -> dict:
168
+ """
169
+ Generate a dictionary global attributes based off the loaded schema and attrs.
170
+
171
+ Validates against the global schema to ensure all required variables are
172
+ present. It can also include instrument specific global attributes if
173
+ instrumet_id is set.
174
+
175
+ If an instrument_id is provided, the level and instrument specific
176
+ attributes that were previously loaded using add_instrument_global_attrs will
177
+ be included.
178
+
179
+ Parameters
180
+ ----------
181
+ instrument_id : str
182
+ The id of the CDF file, used to retrieve instrument and level
183
+ specific global attributes. Suggested value is the logical_source_id.
184
+
185
+ Returns
186
+ -------
187
+ output : dict
188
+ The global attribute values created from the input global attribute files
189
+ and schemas.
190
+ """
191
+ output = dict()
192
+ for attr_name, attr_schema in self.global_attribute_schema.items():
193
+ if attr_name in self.global_attributes:
194
+ output[attr_name] = self.global_attributes[attr_name]
195
+ # Retrieve instrument specific global attributes from the variable file
196
+ elif (
197
+ instrument_id is not None
198
+ and attr_name in self.global_attributes[instrument_id]
199
+ ):
200
+ output[attr_name] = self.global_attributes[instrument_id][attr_name]
201
+ elif attr_schema["required"] and attr_name not in self.global_attributes:
202
+ # TODO throw an error
203
+ output[attr_name] = None
204
+
205
+ return output
206
+
207
+ def load_variable_attributes(self, file_name: str) -> None:
208
+ """
209
+ Add variable attributes for a given filename.
210
+
211
+ Parameters
212
+ ----------
213
+ file_name : str
214
+ The name of the file to load from self.source_dir
215
+ """
216
+ # Add variable attributes from file_name. Each variable name should have the
217
+ # required sub fields as defined in the variable schema.
218
+ raw_var_attrs = CdfAttributeManager._load_yaml_data(self.source_dir / file_name)
219
+ var_attrs = raw_var_attrs.copy()
220
+
221
+ self.variable_attributes.update(var_attrs)
222
+
223
+ def get_variable_attributes(self, variable_name: str) -> dict:
224
+ """
225
+ Get the attributes for a given variable name.
226
+
227
+ It retrieves the variable from previously loaded variable definition files and
228
+ validates against the defined variable schemas.
229
+
230
+ Parameters
231
+ ----------
232
+ variable_name : str
233
+ The name of the variable to retrieve attributes for.
234
+ """
235
+ # TODO: Create a variable attribute schema file, validate here
236
+ if variable_name in self.variable_attributes:
237
+ return self.variable_attributes[variable_name]
238
+ # TODO: throw an error?
239
+ return {}
@@ -0,0 +1,198 @@
1
+ instrument_base: &instrument_base
2
+ Descriptor: &desc
3
+ CoDICE>Compact Dual Ion Composition Experiment
4
+ TEXT: &txt >
5
+ The Compact Dual Ion Composition Experiment (CoDICE) will measure the distributions and composition of interstellar
6
+ pickup ions (PUIs), particles that make it through the heliosheath into the heliosphere. CoDICE also collects and
7
+ characterizes solar wind ions including the mass and composition of highly energized particles (called suprathermal)
8
+ from the Sun. CoDICE combines an electrostatic analyzer (ESA) with a Time-Of-Flight versus Energy (TOF / E)
9
+ subsystem to simultaneously measure the velocity, arrival direction, ionic charge state, and mass of specific
10
+ species of ions in the LISM. CoDICE also has a path for higher energy particles to skip the ESA but still get
11
+ measured by the common TOF / E system. These measurements are critical in determining the Local Interstellar Medium
12
+ (LISM) composition and flow properties, the origin of the enigmatic suprathermal tails on the solar wind
13
+ distributions and advance understanding of the acceleration of particles in the heliosphere.
14
+ Instrument_type: Particles (space)
15
+
16
+ # L1a
17
+ imap_codice_l1a_hskp:
18
+ <<: *instrument_base
19
+ Data_level: 1A
20
+ Data_type: L1A_hskp->Level-1A Housekeeping Data
21
+ Logical_source: imap_codice_l1a_hskp
22
+ Logical_source_description: IMAP Mission CoDICE Instrument Level-1A Housekeeping Data.
23
+
24
+ imap_codice_l1a_hi_counters_aggregated:
25
+ <<: *instrument_base
26
+ Data_level: 1A
27
+ Data_type: L1A_hi-counters-aggregated->Level-1A Hi Aggregated Instrument Counts Data
28
+ Logical_source: imap_codice_l1a_hi-counters-aggregated
29
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1A Aggregated Instrument Counts Data.
30
+
31
+ imap_codice_l1a_hi_counters_singles:
32
+ <<: *instrument_base
33
+ Data_level: 1A
34
+ Data_type: L1A_hi-counters-singles->Level-1A Hi Single Instrument Counts Data
35
+ Logical_source: imap_codice_l1a_hi-counters-singles
36
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1A Single Instrument Counts Data.
37
+
38
+ imap_codice_l1a_hi_omni:
39
+ <<: *instrument_base
40
+ Data_level: 1A
41
+ Data_type: L1A_hi-omni->Level-1A Hi Omnidirectional Data
42
+ Logical_source: imap_codice_l1a_hi-omni
43
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1A Omnidirectional Data.
44
+
45
+ imap_codice_l1a_hi_sectored:
46
+ <<: *instrument_base
47
+ Data_level: 1A
48
+ Data_type: L1A_hi-sectored->Level-1A Hi Sectored Data
49
+ Logical_source: imap_codice_l1a_hi-sectored
50
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1A Sectored Data.
51
+
52
+ imap_codice_l1a_lo_counters_aggregated:
53
+ <<: *instrument_base
54
+ Data_level: 1A
55
+ Data_type: L1A_lo-counters-aggregated->Level-1A Lo Aggregated Instrument Counts Data
56
+ Logical_source: imap_codice_l1a_lo-counters-aggregated
57
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Aggregated Instrument Counts Data.
58
+
59
+ imap_codice_l1a_lo_counters_singles:
60
+ <<: *instrument_base
61
+ Data_level: 1A
62
+ Data_type: L1A_lo-counters-aggregated->Level-1A Lo Single Instrument Counts Data
63
+ Logical_source: imap_codice_l1a_lo-counters-singles
64
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Single Instrument Counts Data.
65
+
66
+ imap_codice_l1a_lo_sw_angular:
67
+ <<: *instrument_base
68
+ Data_level: 1A
69
+ Data_type: L1A_lo-sw-angular->Level-1A Lo Sunward Angular Counts Data
70
+ Logical_source: imap_codice_l1a_lo-sw-angular
71
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Sunward Angular Counts Data.
72
+
73
+ imap_codice_l1a_lo_nsw_angular:
74
+ <<: *instrument_base
75
+ Data_level: 1A
76
+ Data_type: L1A_lo-nsw-angular->Level-1A Lo Non-Sunward Angular Counts Data
77
+ Logical_source: imap_codice_l1a_lo-nsw-angular
78
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Angular Counts Data.
79
+
80
+ imap_codice_l1a_lo_sw_priority:
81
+ <<: *instrument_base
82
+ Data_level: 1A
83
+ Data_type: L1A_lo-sw-priority->Level-1A Lo Sunward Priority Counts Data
84
+ Logical_source: imap_codice_l1a_lo-sw-priority
85
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Sunward Priority Counts Data.
86
+
87
+ imap_codice_l1a_lo_nsw_priority:
88
+ <<: *instrument_base
89
+ Data_level: 1A
90
+ Data_type: L1A_lo-nsw-priority->Level-1A Lo Non-Sunward Priority Counts Data
91
+ Logical_source: imap_codice_l1a_lo-nsw-priority
92
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Priority Counts Data.
93
+
94
+ imap_codice_l1a_lo_sw_species:
95
+ <<: *instrument_base
96
+ Data_level: 1A
97
+ Data_type: L1A_lo-sw-species->Level-1A Lo Sunward Species Counts Data
98
+ Logical_source: imap_codice_l1a_lo-sw-species
99
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Sunward Species Counts Data.
100
+
101
+ imap_codice_l1a_lo_nsw_species:
102
+ <<: *instrument_base
103
+ Data_level: 1A
104
+ Data_type: L1A_lo-nsw-species->Level-1A Lo Non-Sunward Species Counts Data
105
+ Logical_source: imap_codice_l1a_lo-nsw-species
106
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Species Counts Data.
107
+
108
+ # L1b
109
+ imap_codice_l1b_hskp:
110
+ <<: *instrument_base
111
+ Data_level: 1B
112
+ Data_type: L1B_hskp->Level-1B Housekeeping Data
113
+ Logical_source: imap_codice_l1b_hskp
114
+ Logical_source_description: IMAP Mission CoDICE Instrument Level-1B Housekeeping Data.
115
+
116
+ imap_codice_l1b_hi_counters_aggregated:
117
+ <<: *instrument_base
118
+ Data_level: 1B
119
+ Data_type: L1B_hi-counters-aggregated->Level-1B Hi Aggregated Instrument Rates Data
120
+ Logical_source: imap_codice_l1b_hi-counters-aggregated
121
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1B Aggregated Instrument Rates Data.
122
+
123
+ imap_codice_l1b_hi_counters_singles:
124
+ <<: *instrument_base
125
+ Data_level: 1B
126
+ Data_type: L1B_hi-counters-singles->Level-1B Hi Single Instrument Rates Data
127
+ Logical_source: imap_codice_l1b_hi-counters-singles
128
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1B Single Instrument Rates Data.
129
+
130
+ imap_codice_l1b_hi_omni:
131
+ <<: *instrument_base
132
+ Data_level: 1B
133
+ Data_type: L1B_hi-omni->Level-1B Hi Omnidirectional Data
134
+ Logical_source: imap_codice_l1b_hi-omni
135
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1B Omnidirectional Data.
136
+
137
+ imap_codice_l1b_hi_sectored:
138
+ <<: *instrument_base
139
+ Data_level: 1B
140
+ Data_type: L1B_hi-sectored->Level-1B Hi Sectored Data
141
+ Logical_source: imap_codice_l1b_hi-sectored
142
+ Logical_source_description: IMAP Mission CoDICE Hi Level-1B Sectored Data.
143
+
144
+ imap_codice_l1b_lo_counters_aggregated:
145
+ <<: *instrument_base
146
+ Data_level: 1B
147
+ Data_type: L1B_lo-counters-aggregated->Level-1B Lo Aggregated Instrument Rates Data
148
+ Logical_source: imap_codice_l1b_lo-counters-aggregated
149
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Aggregated Instrument Rates Data.
150
+
151
+ imap_codice_l1b_lo_counters_singles:
152
+ <<: *instrument_base
153
+ Data_level: 1B
154
+ Data_type: L1B_lo-counters-aggregated->Level-1B Lo Single Instrument Rates Data
155
+ Logical_source: imap_codice_l1b_lo-counters-singles
156
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Single Instrument Rates Data.
157
+
158
+ imap_codice_l1b_lo_sw_angular:
159
+ <<: *instrument_base
160
+ Data_level: 1B
161
+ Data_type: L1B_lo-sw-angular->Level-1B Lo Sunward Angular Rates Data
162
+ Logical_source: imap_codice_l1b_lo-sw-angular
163
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Sunward Angular Rates Data.
164
+
165
+ imap_codice_l1b_lo_nsw_angular:
166
+ <<: *instrument_base
167
+ Data_level: 1B
168
+ Data_type: L1B_lo-nsw-angular->Level-1B Lo Non-Sunward Angular Rates Data
169
+ Logical_source: imap_codice_l1b_lo-nsw-angular
170
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Non-Sunward Angular Rates Data.
171
+
172
+ imap_codice_l1b_lo_sw_priority:
173
+ <<: *instrument_base
174
+ Data_level: 1B
175
+ Data_type: L1B_lo-sw-priority->Level-1B Lo Sunward Priority Rates Data
176
+ Logical_source: imap_codice_l1b_lo-sw-priority
177
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Sunward Priority Rates Data.
178
+
179
+ imap_codice_l1b_lo_nsw_priority:
180
+ <<: *instrument_base
181
+ Data_level: 1B
182
+ Data_type: L1B_lo-nsw-priority->Level-1B Lo Non-Sunward Priority Rates Data
183
+ Logical_source: imap_codice_l1b_lo-nsw-priority
184
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Non-Sunward Priority Rates Data.
185
+
186
+ imap_codice_l1b_lo_sw_species:
187
+ <<: *instrument_base
188
+ Data_level: 1B
189
+ Data_type: L1B_lo-sw-species->Level-1B Lo Sunward Species Rates Data
190
+ Logical_source: imap_codice_l1b_lo-sw-species
191
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Sunward Species Rates Data.
192
+
193
+ imap_codice_l1b_lo_nsw_species:
194
+ <<: *instrument_base
195
+ Data_level: 1B
196
+ Data_type: L1B_lo-nsw-species->Level-1B Lo Non-Sunward Species Rates Data
197
+ Logical_source: imap_codice_l1b_lo-nsw-species
198
+ Logical_source_description: IMAP Mission CoDICE Lo Level-1B Non-Sunward Species Rates Data.