imap-processing 0.16.1__tar.gz → 1.0.4__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.
Files changed (326) hide show
  1. imap_processing-1.0.4/PKG-INFO +121 -0
  2. imap_processing-1.0.4/README.md +65 -0
  3. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/_version.py +2 -2
  4. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ancillary/ancillary_dataset_combiner.py +161 -1
  5. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ccsds/excel_to_xtce.py +12 -0
  6. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +42 -6
  7. imap_processing-1.0.4/imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +1134 -0
  8. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +473 -413
  9. imap_processing-1.0.4/imap_processing/cdf/config/imap_codice_l2-hi-omni_variable_attrs.yaml +635 -0
  10. imap_processing-1.0.4/imap_processing/cdf/config/imap_codice_l2-hi-sectored_variable_attrs.yaml +422 -0
  11. imap_processing-1.0.4/imap_processing/cdf/config/imap_codice_l2-lo-angular_variable_attrs.yaml +89 -0
  12. imap_processing-1.0.4/imap_processing/cdf/config/imap_codice_l2-lo-species_variable_attrs.yaml +138 -0
  13. imap_processing-1.0.4/imap_processing/cdf/config/imap_codice_l2_variable_attrs.yaml +1869 -0
  14. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_constant_attrs.yaml +5 -3
  15. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_enamaps_l2-common_variable_attrs.yaml +169 -54
  16. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_enamaps_l2-healpix_variable_attrs.yaml +44 -2
  17. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_enamaps_l2-rectangular_variable_attrs.yaml +104 -6
  18. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +15 -1
  19. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +6 -2
  20. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_hi_variable_attrs.yaml +21 -10
  21. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +11 -5
  22. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_hit_l1a_variable_attrs.yaml +163 -100
  23. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_hit_l2_variable_attrs.yaml +398 -415
  24. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_ialirt_l1_variable_attrs.yaml +97 -54
  25. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +6 -13
  26. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_idex_l1b_variable_attrs.yaml +16 -5
  27. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_idex_l2a_variable_attrs.yaml +57 -26
  28. imap_processing-1.0.4/imap_processing/cdf/config/imap_idex_l2b_variable_attrs.yaml +164 -0
  29. imap_processing-1.0.4/imap_processing/cdf/config/imap_idex_l2c_variable_attrs.yaml +120 -0
  30. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +35 -4
  31. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +4 -15
  32. imap_processing-1.0.4/imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +270 -0
  33. imap_processing-1.0.4/imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +211 -0
  34. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_mag_l1c_variable_attrs.yaml +24 -1
  35. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_swapi_variable_attrs.yaml +8 -0
  36. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +20 -0
  37. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_swe_l2_variable_attrs.yaml +39 -0
  38. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +188 -8
  39. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +103 -2
  40. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +96 -6
  41. imap_processing-1.0.4/imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +257 -0
  42. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/utils.py +14 -3
  43. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cli.py +204 -129
  44. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/codice_l0.py +2 -1
  45. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/codice_l1a.py +341 -137
  46. imap_processing-1.0.4/imap_processing/codice/codice_l1a_hi_omni.py +262 -0
  47. imap_processing-1.0.4/imap_processing/codice/codice_l1a_hi_sectored.py +272 -0
  48. imap_processing-1.0.4/imap_processing/codice/codice_l1a_lo_angular.py +363 -0
  49. imap_processing-1.0.4/imap_processing/codice/codice_l1a_lo_species.py +289 -0
  50. imap_processing-1.0.4/imap_processing/codice/codice_l1b.py +188 -0
  51. imap_processing-1.0.4/imap_processing/codice/codice_l2.py +1013 -0
  52. imap_processing-1.0.4/imap_processing/codice/codice_new_l1a.py +70 -0
  53. imap_processing-1.0.4/imap_processing/codice/constants.py +2357 -0
  54. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/data/lo_stepping_values.csv +1 -1
  55. imap_processing-1.0.4/imap_processing/codice/utils.py +401 -0
  56. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/decom.py +1 -4
  57. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ena_maps/ena_maps.py +235 -139
  58. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ena_maps/utils/coordinates.py +5 -0
  59. imap_processing-1.0.4/imap_processing/ena_maps/utils/corrections.py +827 -0
  60. imap_processing-1.0.4/imap_processing/ena_maps/utils/map_utils.py +259 -0
  61. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ena_maps/utils/naming.py +11 -3
  62. imap_processing-1.0.4/imap_processing/glows/ancillary/imap_glows_exclusions-by-instr-team_20250923_v002.dat +10 -0
  63. imap_processing-1.0.4/imap_processing/glows/ancillary/imap_glows_map-of-excluded-regions_20250923_v002.dat +393 -0
  64. imap_processing-1.0.4/imap_processing/glows/ancillary/imap_glows_map-of-uv-sources_20250923_v002.dat +593 -0
  65. imap_processing-1.0.4/imap_processing/glows/ancillary/imap_glows_pipeline-settings_20250923_v002.json +54 -0
  66. imap_processing-1.0.4/imap_processing/glows/ancillary/imap_glows_suspected-transients_20250923_v002.dat +10 -0
  67. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l1b/glows_l1b.py +146 -33
  68. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l1b/glows_l1b_data.py +358 -47
  69. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l2/glows_l2.py +11 -0
  70. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hi/hi_l1a.py +159 -18
  71. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hi/hi_l1b.py +190 -73
  72. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hi/hi_l1c.py +84 -145
  73. imap_processing-1.0.4/imap_processing/hi/hi_l2.py +500 -0
  74. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hi/packet_definitions/TLM_HI_COMBINED_SCI.xml +218 -38
  75. imap_processing-1.0.4/imap_processing/hi/utils.py +503 -0
  76. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/hit_utils.py +2 -2
  77. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l0/constants.py +3 -0
  78. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l0/decom_hit.py +7 -9
  79. imap_processing-1.0.4/imap_processing/hit/l1a/hit_l1a.py +654 -0
  80. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l1b/constants.py +5 -0
  81. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l1b/hit_l1b.py +61 -131
  82. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l2/constants.py +1 -1
  83. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l2/hit_l2.py +10 -10
  84. imap_processing-1.0.4/imap_processing/ialirt/calculate_ingest.py +237 -0
  85. imap_processing-1.0.4/imap_processing/ialirt/constants.py +81 -0
  86. imap_processing-1.0.4/imap_processing/ialirt/generate_coverage.py +206 -0
  87. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/l0/ialirt_spice.py +7 -4
  88. imap_processing-1.0.4/imap_processing/ialirt/l0/parse_mag.py +789 -0
  89. imap_processing-1.0.4/imap_processing/ialirt/l0/process_codice.py +206 -0
  90. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/l0/process_hit.py +15 -7
  91. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/l0/process_swapi.py +60 -32
  92. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/l0/process_swe.py +34 -11
  93. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/process_ephemeris.py +76 -16
  94. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/utils/constants.py +22 -16
  95. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/utils/create_xarray.py +56 -20
  96. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_constants.py +8 -5
  97. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_l0.py +2 -2
  98. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_l1a.py +2 -3
  99. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_l1b.py +2 -3
  100. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_l2a.py +131 -5
  101. imap_processing-1.0.4/imap_processing/idex/idex_l2b.py +702 -0
  102. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_utils.py +1 -3
  103. imap_processing-1.0.4/imap_processing/lo/ancillary_data/imap_lo_hydrogen-geometric-factor_v001.csv +75 -0
  104. imap_processing-1.0.4/imap_processing/lo/ancillary_data/imap_lo_oxygen-geometric-factor_v001.csv +75 -0
  105. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/lo_apid.py +1 -0
  106. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/lo_science.py +144 -136
  107. imap_processing-1.0.4/imap_processing/lo/l0/lo_star_sensor.py +48 -0
  108. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l1a/lo_l1a.py +76 -33
  109. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l1b/lo_l1b.py +221 -97
  110. imap_processing-1.0.4/imap_processing/lo/l1c/lo_l1c.py +657 -0
  111. imap_processing-1.0.4/imap_processing/lo/l2/lo_l2.py +1232 -0
  112. imap_processing-1.0.4/imap_processing/lo/lo_ancillary.py +55 -0
  113. imap_processing-1.0.4/imap_processing/lo/packet_definitions/lo_xtce.xml +7193 -0
  114. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/constants.py +1 -0
  115. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l0/decom_mag.py +9 -6
  116. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l0/mag_l0_data.py +46 -0
  117. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l1a/mag_l1a.py +3 -2
  118. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l1a/mag_l1a_data.py +97 -13
  119. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l1b/mag_l1b.py +3 -2
  120. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l1c/interpolation_methods.py +57 -29
  121. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l1c/mag_l1c.py +219 -98
  122. imap_processing-1.0.4/imap_processing/mag/l1d/mag_l1d.py +176 -0
  123. imap_processing-1.0.4/imap_processing/mag/l1d/mag_l1d_data.py +762 -0
  124. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l2/mag_l2.py +42 -20
  125. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l2/mag_l2_data.py +205 -130
  126. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/quality_flags.py +44 -2
  127. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/geometry.py +167 -51
  128. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/pointing_frame.py +80 -57
  129. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/repoint.py +122 -2
  130. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/spin.py +32 -8
  131. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/time.py +60 -19
  132. imap_processing-1.0.4/imap_processing/swapi/constants.py +4 -0
  133. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swapi/l1/swapi_l1.py +79 -28
  134. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swapi/l2/swapi_l2.py +94 -31
  135. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swapi/swapi_utils.py +1 -1
  136. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/l1b/swe_l1b.py +12 -6
  137. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/l2/swe_l2.py +111 -17
  138. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/utils/swe_constants.py +7 -7
  139. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/constants.py +57 -3
  140. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l0/decom_tools.py +86 -60
  141. imap_processing-1.0.4/imap_processing/ultra/l0/decom_ultra.py +466 -0
  142. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l0/ultra_utils.py +286 -15
  143. imap_processing-1.0.4/imap_processing/ultra/l1a/ultra_l1a.py +234 -0
  144. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l1b/badtimes.py +35 -11
  145. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l1b/de.py +190 -35
  146. imap_processing-1.0.4/imap_processing/ultra/l1b/extendedspin.py +110 -0
  147. imap_processing-1.0.4/imap_processing/ultra/l1b/goodtimes.py +112 -0
  148. imap_processing-1.0.4/imap_processing/ultra/l1b/lookup_utils.py +603 -0
  149. imap_processing-1.0.4/imap_processing/ultra/l1b/quality_flag_filters.py +26 -0
  150. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l1b/ultra_l1b.py +7 -7
  151. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l1b/ultra_l1b_annotated.py +0 -1
  152. imap_processing-1.0.4/imap_processing/ultra/l1b/ultra_l1b_culling.py +622 -0
  153. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l1b/ultra_l1b_extended.py +619 -114
  154. imap_processing-1.0.4/imap_processing/ultra/l1c/helio_pset.py +235 -0
  155. imap_processing-1.0.4/imap_processing/ultra/l1c/l1c_lookup_utils.py +348 -0
  156. imap_processing-1.0.4/imap_processing/ultra/l1c/spacecraft_pset.py +228 -0
  157. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l1c/ultra_l1c.py +35 -24
  158. imap_processing-1.0.4/imap_processing/ultra/l1c/ultra_l1c_culling.py +92 -0
  159. imap_processing-1.0.4/imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +816 -0
  160. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/l2/ultra_l2.py +124 -33
  161. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +3 -3
  162. imap_processing-1.0.4/imap_processing/ultra/packet_definitions/__init__.py +0 -0
  163. imap_processing-1.0.4/imap_processing/ultra/utils/__init__.py +0 -0
  164. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/utils/ultra_l1_utils.py +61 -8
  165. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/utils.py +23 -46
  166. {imap_processing-0.16.1 → imap_processing-1.0.4}/pyproject.toml +12 -6
  167. imap_processing-0.16.1/PKG-INFO +0 -120
  168. imap_processing-0.16.1/README.md +0 -64
  169. imap_processing-0.16.1/imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +0 -3397
  170. imap_processing-0.16.1/imap_processing/cdf/config/imap_codice_l2_variable_attrs.yaml +0 -1004
  171. imap_processing-0.16.1/imap_processing/cdf/config/imap_idex_l2b_variable_attrs.yaml +0 -71
  172. imap_processing-0.16.1/imap_processing/cdf/config/imap_idex_l2c_variable_attrs.yaml +0 -104
  173. imap_processing-0.16.1/imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +0 -179
  174. imap_processing-0.16.1/imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +0 -100
  175. imap_processing-0.16.1/imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +0 -96
  176. imap_processing-0.16.1/imap_processing/codice/codice_l1b.py +0 -166
  177. imap_processing-0.16.1/imap_processing/codice/codice_l2.py +0 -81
  178. imap_processing-0.16.1/imap_processing/codice/constants.py +0 -2053
  179. imap_processing-0.16.1/imap_processing/codice/utils.py +0 -59
  180. imap_processing-0.16.1/imap_processing/ena_maps/utils/map_utils.py +0 -142
  181. imap_processing-0.16.1/imap_processing/hi/hi_l2.py +0 -261
  182. imap_processing-0.16.1/imap_processing/hi/utils.py +0 -249
  183. imap_processing-0.16.1/imap_processing/hit/l1a/hit_l1a.py +0 -324
  184. imap_processing-0.16.1/imap_processing/ialirt/constants.py +0 -38
  185. imap_processing-0.16.1/imap_processing/ialirt/l0/parse_mag.py +0 -434
  186. imap_processing-0.16.1/imap_processing/ialirt/l0/process_codice.py +0 -91
  187. imap_processing-0.16.1/imap_processing/idex/idex_l2b.py +0 -191
  188. imap_processing-0.16.1/imap_processing/idex/idex_l2c.py +0 -250
  189. imap_processing-0.16.1/imap_processing/lo/l0/data_classes/star_sensor.py +0 -98
  190. imap_processing-0.16.1/imap_processing/lo/l0/utils/lo_base.py +0 -57
  191. imap_processing-0.16.1/imap_processing/lo/l1c/lo_l1c.py +0 -420
  192. imap_processing-0.16.1/imap_processing/lo/l2/lo_l2.py +0 -213
  193. imap_processing-0.16.1/imap_processing/lo/packet_definitions/lo_xtce.xml +0 -1940
  194. imap_processing-0.16.1/imap_processing/spice/kernels.py +0 -187
  195. imap_processing-0.16.1/imap_processing/ultra/l0/decom_ultra.py +0 -244
  196. imap_processing-0.16.1/imap_processing/ultra/l1a/ultra_l1a.py +0 -117
  197. imap_processing-0.16.1/imap_processing/ultra/l1b/cullingmask.py +0 -87
  198. imap_processing-0.16.1/imap_processing/ultra/l1b/extendedspin.py +0 -71
  199. imap_processing-0.16.1/imap_processing/ultra/l1b/lookup_utils.py +0 -229
  200. imap_processing-0.16.1/imap_processing/ultra/l1b/ultra_l1b_culling.py +0 -258
  201. imap_processing-0.16.1/imap_processing/ultra/l1c/helio_pset.py +0 -53
  202. imap_processing-0.16.1/imap_processing/ultra/l1c/histogram.py +0 -36
  203. imap_processing-0.16.1/imap_processing/ultra/l1c/spacecraft_pset.py +0 -92
  204. imap_processing-0.16.1/imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +0 -635
  205. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/Angular_Profiles_FM45_LeftSlit.csv +0 -526
  206. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/Angular_Profiles_FM45_RightSlit.csv +0 -526
  207. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/Angular_Profiles_FM90_LeftSlit.csv +0 -526
  208. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/Angular_Profiles_FM90_RightSlit.csv +0 -524
  209. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/EgyNorm.mem.csv +0 -32769
  210. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/FM45_Startup1_ULTRA_IMGPARAMS_20240719.csv +0 -2
  211. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/FM90_Startup1_ULTRA_IMGPARAMS_20240719.csv +0 -2
  212. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/dps_grid45_compressed.cdf +0 -0
  213. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/ultra45_back-pos-luts.csv +0 -4097
  214. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/ultra45_tdc_norm.csv +0 -2050
  215. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/ultra90_back-pos-luts.csv +0 -4097
  216. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/ultra90_tdc_norm.csv +0 -2050
  217. imap_processing-0.16.1/imap_processing/ultra/lookup_tables/yadjust.csv +0 -257
  218. {imap_processing-0.16.1 → imap_processing-1.0.4}/LICENSE +0 -0
  219. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/__init__.py +0 -0
  220. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ancillary/__init__.py +0 -0
  221. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ccsds/__init__.py +0 -0
  222. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ccsds/ccsds_data.py +0 -0
  223. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/__init__.py +0 -0
  224. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_default_global_cdf_attrs.yaml +0 -0
  225. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +0 -0
  226. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_glows_l1a_variable_attrs.yaml +0 -0
  227. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_glows_l2_variable_attrs.yaml +0 -0
  228. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +0 -0
  229. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_ialirt_global_cdf_attrs.yaml +0 -0
  230. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +0 -0
  231. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_lo_l1b_variable_attrs.yaml +0 -0
  232. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_mag_l1a_variable_attrs.yaml +0 -0
  233. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_mag_l1b_variable_attrs.yaml +0 -0
  234. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_mag_l2_variable_attrs.yaml +0 -0
  235. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_spacecraft_global_cdf_attrs.yaml +0 -0
  236. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_spacecraft_variable_attrs.yaml +0 -0
  237. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_swapi_global_cdf_attrs.yaml +0 -0
  238. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +0 -0
  239. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +0 -0
  240. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/config/imap_variable_schema.yaml +0 -0
  241. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/cdf/imap_cdf_manager.py +0 -0
  242. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/__init__.py +0 -0
  243. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/data/esa_sweep_values.csv +0 -0
  244. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/decompress.py +0 -0
  245. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/packet_definitions/P_COD_NHK.xml +0 -0
  246. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/codice/packet_definitions/codice_packet_definition.xml +0 -0
  247. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ena_maps/__init__.py +0 -0
  248. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ena_maps/utils/__init__.py +0 -0
  249. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ena_maps/utils/spatial_utils.py +0 -0
  250. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/__init__.py +0 -0
  251. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/ancillary/imap_glows_pipeline_settings_v001.json +0 -0
  252. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/ancillary/l1b_conversion_table_v001.json +0 -0
  253. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l0/__init__.py +0 -0
  254. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l0/decom_glows.py +0 -0
  255. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l0/glows_l0_data.py +0 -0
  256. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l1a/glows_l1a.py +0 -0
  257. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l1a/glows_l1a_data.py +0 -0
  258. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/l2/glows_l2_data.py +0 -0
  259. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/packet_definitions/GLX_COMBINED.xml +0 -0
  260. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/packet_definitions/P_GLX_TMSCDE.xml +0 -0
  261. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/packet_definitions/P_GLX_TMSCHIST.xml +0 -0
  262. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/utils/__init__.py +0 -0
  263. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/glows/utils/constants.py +0 -0
  264. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hi/__init__.py +0 -0
  265. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hi/packet_definitions/__init__.py +0 -0
  266. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/__init__.py +0 -0
  267. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l0/__init__.py +0 -0
  268. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/l1a/__init__.py +0 -0
  269. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/hit/packet_definitions/hit_packet_definitions.xml +0 -0
  270. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/__init__.py +0 -0
  271. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/l0/__init__.py +0 -0
  272. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/l0/mag_l0_ialirt_data.py +0 -0
  273. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/__init__.py +0 -0
  274. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt.xml +0 -0
  275. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt_codicehi.xml +0 -0
  276. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt_codicelo.xml +0 -0
  277. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt_hit.xml +0 -0
  278. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt_mag.xml +0 -0
  279. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt_swapi.xml +0 -0
  280. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/packet_definitions/ialirt_swe.xml +0 -0
  281. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/utils/grouping.py +0 -0
  282. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ialirt/utils/time.py +0 -0
  283. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/__init__.py +0 -0
  284. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/atomic_masses.csv +0 -0
  285. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/decode.py +0 -0
  286. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/idex_variable_unpacking_and_eu_conversion.csv +0 -0
  287. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/packet_definitions/idex_housekeeping_packet_definition.xml +0 -0
  288. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/idex/packet_definitions/idex_science_packet_definition.xml +0 -0
  289. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/__init__.py +0 -0
  290. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/__init__.py +0 -0
  291. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/decompression_tables/decompression_tables.py +0 -0
  292. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/decompression_tables/log10_12_to_16_bit_uncompress.csv +0 -0
  293. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/decompression_tables/log10_8_to_12_bit_uncompress.csv +0 -0
  294. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/decompression_tables/log10_8_to_16_bit_uncompress.csv +0 -0
  295. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/utils/binary_string.py +0 -0
  296. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l0/utils/bit_decompression.py +0 -0
  297. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l1a/__init__.py +0 -0
  298. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/lo/l1b/tof_conversions.py +0 -0
  299. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/__init__.py +0 -0
  300. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/imap_mag_sdc_configuration_v001.py +0 -0
  301. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/l1b/imap_mag_l1b-calibration_20240229_v002.cdf +0 -0
  302. {imap_processing-0.16.1/imap_processing/swapi/l1 → imap_processing-1.0.4/imap_processing/mag/l1d}/__init__.py +0 -0
  303. {imap_processing-0.16.1/imap_processing/swapi → imap_processing-1.0.4/imap_processing/mag}/l2/__init__.py +0 -0
  304. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/mag/packet_definitions/MAG_SCI_COMBINED.xml +0 -0
  305. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spacecraft/packet_definitions/scid_x252.xml +0 -0
  306. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spacecraft/quaternions.py +0 -0
  307. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/__init__.py +0 -0
  308. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/spice/config.py +0 -0
  309. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swapi/__init__.py +0 -0
  310. {imap_processing-0.16.1/imap_processing/swapi/packet_definitions → imap_processing-1.0.4/imap_processing/swapi/l1}/__init__.py +0 -0
  311. {imap_processing-0.16.1/imap_processing/swe/l1a → imap_processing-1.0.4/imap_processing/swapi/l2}/__init__.py +0 -0
  312. {imap_processing-0.16.1/imap_processing/swe → imap_processing-1.0.4/imap_processing/swapi}/packet_definitions/__init__.py +0 -0
  313. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swapi/packet_definitions/swapi_packet_definition.xml +0 -0
  314. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/__init__.py +0 -0
  315. {imap_processing-0.16.1/imap_processing/swe/utils → imap_processing-1.0.4/imap_processing/swe/l1a}/__init__.py +0 -0
  316. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/l1a/swe_l1a.py +0 -0
  317. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/l1a/swe_science.py +0 -0
  318. {imap_processing-0.16.1/imap_processing/ultra/l0 → imap_processing-1.0.4/imap_processing/swe/packet_definitions}/__init__.py +0 -0
  319. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/packet_definitions/swe_packet_definition.xml +0 -0
  320. {imap_processing-0.16.1/imap_processing/ultra/l1a → imap_processing-1.0.4/imap_processing/swe/utils}/__init__.py +0 -0
  321. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/swe/utils/swe_utils.py +0 -0
  322. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/__init__.py +0 -0
  323. {imap_processing-0.16.1/imap_processing/ultra/l2 → imap_processing-1.0.4/imap_processing/ultra/l0}/__init__.py +0 -0
  324. {imap_processing-0.16.1/imap_processing/ultra/packet_definitions → imap_processing-1.0.4/imap_processing/ultra/l1a}/__init__.py +0 -0
  325. {imap_processing-0.16.1/imap_processing/ultra/utils → imap_processing-1.0.4/imap_processing/ultra/l2}/__init__.py +0 -0
  326. {imap_processing-0.16.1 → imap_processing-1.0.4}/imap_processing/ultra/packet_definitions/README.md +0 -0
@@ -0,0 +1,121 @@
1
+ Metadata-Version: 2.1
2
+ Name: imap-processing
3
+ Version: 1.0.4
4
+ Summary: IMAP Science Operations Center Processing
5
+ License: MIT
6
+ Keywords: IMAP,SDC,SOC,Science Operations
7
+ Author: IMAP SDC Developers
8
+ Author-email: imap-sdc@lists.lasp.colorado.edu
9
+ Requires-Python: >=3.10,<4
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Natural Language :: English
14
+ Classifier: Operating System :: MacOS
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX
17
+ Classifier: Operating System :: Unix
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Scientific/Engineering
24
+ Classifier: Topic :: Software Development
25
+ Provides-Extra: dev
26
+ Provides-Extra: doc
27
+ Provides-Extra: map-visualization
28
+ Provides-Extra: test
29
+ Provides-Extra: tools
30
+ Requires-Dist: astropy-healpix (>=1.0)
31
+ Requires-Dist: cdflib (>=1.3.6,<2.0.0)
32
+ Requires-Dist: healpy (>=1.18.0,<2.0.0) ; extra == "map-visualization"
33
+ Requires-Dist: imap-data-access (>=0.37.0)
34
+ Requires-Dist: mypy (==1.10.1) ; extra == "dev"
35
+ Requires-Dist: netcdf4 (>=1.7.2,<2.0.0) ; extra == "test"
36
+ Requires-Dist: numpy (<=3)
37
+ Requires-Dist: numpydoc (>=1.5.0,<2.0.0) ; extra == "doc"
38
+ Requires-Dist: openpyxl (>=3.0.7) ; extra == "test" or extra == "tools"
39
+ Requires-Dist: pandas (>=2.0.0) ; extra == "tools"
40
+ Requires-Dist: pre-commit (>=3.3.3,<4.0.0) ; extra == "dev"
41
+ Requires-Dist: pydata-sphinx-theme ; extra == "doc"
42
+ Requires-Dist: pytest (>=6.2.5) ; extra == "test"
43
+ Requires-Dist: pytest-cov (>=4.0.0,<5.0.0) ; extra == "test"
44
+ Requires-Dist: pytest-xdist (>=3.2,<4.0) ; extra == "test"
45
+ Requires-Dist: requests (>=2.32.3,<3.0.0) ; extra == "test"
46
+ Requires-Dist: ruff (==0.2.1) ; extra == "dev"
47
+ Requires-Dist: sammi-cdf (>=1.0,<2.0)
48
+ Requires-Dist: scipy (>=1.13,<2.0)
49
+ Requires-Dist: space_packet_parser (>=5.0.1,<6.0.0)
50
+ Requires-Dist: sphinx ; extra == "doc"
51
+ Requires-Dist: sphinxcontrib-openapi (>=0.8.3,<0.9.0) ; extra == "doc"
52
+ Requires-Dist: spiceypy (>=6.0.0)
53
+ Requires-Dist: xarray (>=2024.10.0)
54
+ Description-Content-Type: text/markdown
55
+
56
+ # IMAP (Interstellar Mapping and Acceleration Probe)
57
+ <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
58
+ [![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-)
59
+ <!-- ALL-CONTRIBUTORS-BADGE:END -->
60
+ [![readthedocs](https://readthedocs.org/projects/imap-processing/badge/?version=latest)](https://imap-processing.readthedocs.io/en/latest/)
61
+ <!-- DOI-BADGE -->
62
+ [![DOI](https://zenodo.org/badge/654679818.svg)](https://zenodo.org/badge/latestdoi/654679818)
63
+
64
+ 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.
65
+
66
+ The IMAP project's Git repository serves as a centralized hub for collaboration among researchers, scientists, and developers involved in the project. It provides a platform for version control, code sharing, issue tracking, and documentation, fostering a collaborative environment for advancing the goals of the IMAP mission.
67
+
68
+ Through the Git repository, contributors can access project resources, explore the codebase, propose enhancements or bug fixes, and participate in discussions with other team members. This collaborative approach promotes efficient development and fosters innovation in the pursuit of interstellar mapping and particle acceleration research.
69
+
70
+ Join the IMAP Git repository to be part of an exciting scientific endeavor, contribute your expertise, and help unlock the mysteries of the interstellar medium and particle acceleration in our galaxy. Together, we can advance our knowledge of the cosmos and pave the way for future discoveries in space exploration.
71
+
72
+ [IMAP Website](https://imap.princeton.edu/)
73
+
74
+ [IMAP Processing Documentation](https://imap-processing.readthedocs.io/en/latest/)
75
+
76
+ [Getting started](https://imap-processing.readthedocs.io/en/latest/development-guide/getting-started.html)
77
+
78
+ # Credits
79
+ [LASP (Laboratory of Atmospheric and Space Physics)](https://lasp.colorado.edu/)
80
+ ## Contributors ✨
81
+
82
+ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
83
+
84
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
85
+ <!-- prettier-ignore-start -->
86
+ <!-- markdownlint-disable -->
87
+ <table>
88
+ <tbody>
89
+ <tr>
90
+ <td align="center" valign="top" width="14.28%"><a href="http://greglucas.github.io"><img src="https://avatars.githubusercontent.com/u/12417828?v=4?s=100" width="100px;" alt="Greg Lucas"/><br /><sub><b>Greg Lucas</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=greglucas" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=greglucas" title="Documentation">📖</a> <a href="#ideas-greglucas" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-greglucas" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-greglucas" title="Maintenance">🚧</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Agreglucas" title="Reviewed Pull Requests">👀</a></td>
91
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tech3371"><img src="https://avatars.githubusercontent.com/u/36522642?v=4?s=100" width="100px;" alt="Tenzin Choedon"/><br /><sub><b>Tenzin Choedon</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=tech3371" title="Code">💻</a> <a href="#ideas-tech3371" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-tech3371" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-tech3371" title="Examples">💡</a> <a href="#maintenance-tech3371" title="Maintenance">🚧</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Atech3371" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=tech3371" title="Documentation">📖</a></td>
92
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/laspsandoval"><img src="https://avatars.githubusercontent.com/u/46567335?v=4?s=100" width="100px;" alt="Laura Sandoval"/><br /><sub><b>Laura Sandoval</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Alaspsandoval" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=laspsandoval" title="Code">💻</a> <a href="#infra-laspsandoval" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#ideas-laspsandoval" title="Ideas, Planning, & Feedback">🤔</a></td>
93
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/sdhoyt"><img src="https://avatars.githubusercontent.com/u/7146374?v=4?s=100" width="100px;" alt="Sean Hoyt"/><br /><sub><b>Sean Hoyt</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=sdhoyt" title="Code">💻</a> <a href="#ideas-sdhoyt" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-sdhoyt" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Asdhoyt" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=sdhoyt" title="Documentation">📖</a> <a href="#maintenance-sdhoyt" title="Maintenance">🚧</a></td>
94
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/GFMoraga"><img src="https://avatars.githubusercontent.com/u/104743000?v=4?s=100" width="100px;" alt="Gabriel M."/><br /><sub><b>Gabriel M.</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=GFMoraga" title="Code">💻</a> <a href="#ideas-GFMoraga" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-GFMoraga" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3AGFMoraga" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-GFMoraga" title="Maintenance">🚧</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=GFMoraga" title="Documentation">📖</a></td>
95
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bourque"><img src="https://avatars.githubusercontent.com/u/2250769?v=4?s=100" width="100px;" alt="Matthew Bourque"/><br /><sub><b>Matthew Bourque</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bourque" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bourque" title="Documentation">📖</a> <a href="#ideas-bourque" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-bourque" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Abourque" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-bourque" title="Maintenance">🚧</a></td>
96
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/maxinelasp"><img src="https://avatars.githubusercontent.com/u/117409426?v=4?s=100" width="100px;" alt="Maxine Hartnett"/><br /><sub><b>Maxine Hartnett</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=maxinelasp" title="Code">💻</a> <a href="#ideas-maxinelasp" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-maxinelasp" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Amaxinelasp" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=maxinelasp" title="Documentation">📖</a> <a href="#maintenance-maxinelasp" title="Maintenance">🚧</a></td>
97
+ </tr>
98
+ <tr>
99
+ <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>
100
+ <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>
101
+ <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="Veronica Martinez"/><br /><sub><b>Veronica Martinez</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>
102
+ <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>
103
+ <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>
104
+ <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>
105
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/lacoak21"><img src="https://avatars.githubusercontent.com/u/48064300?v=4?s=100" width="100px;" alt="Luisa Coakley"/><br /><sub><b>Luisa Coakley</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=lacoak21" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=lacoak21" title="Documentation">📖</a></td>
106
+ </tr>
107
+ <tr>
108
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/nkerman"><img src="https://avatars.githubusercontent.com/u/13221946?v=4?s=100" width="100px;" alt="Nat Kerman"/><br /><sub><b>Nat Kerman</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=nkerman" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=nkerman" title="Documentation">📖</a></td>
109
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/torimarbois"><img src="https://avatars.githubusercontent.com/u/65727848?v=4?s=100" width="100px;" alt="Tori Marbois"/><br /><sub><b>Tori Marbois</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=torimarbois" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=torimarbois" title="Documentation">📖</a></td>
110
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mfacchinelli"><img src="https://avatars.githubusercontent.com/u/19731497?v=4?s=100" width="100px;" alt="Michele Facchinelli"/><br /><sub><b>Michele Facchinelli</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=mfacchinelli" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=mfacchinelli" title="Tests">⚠️</a></td>
111
+ </tr>
112
+ </tbody>
113
+ </table>
114
+
115
+ <!-- markdownlint-restore -->
116
+ <!-- prettier-ignore-end -->
117
+
118
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
119
+
120
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
121
+
@@ -0,0 +1,65 @@
1
+ # IMAP (Interstellar Mapping and Acceleration Probe)
2
+ <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
3
+ [![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-)
4
+ <!-- ALL-CONTRIBUTORS-BADGE:END -->
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)
8
+
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.
10
+
11
+ The IMAP project's Git repository serves as a centralized hub for collaboration among researchers, scientists, and developers involved in the project. It provides a platform for version control, code sharing, issue tracking, and documentation, fostering a collaborative environment for advancing the goals of the IMAP mission.
12
+
13
+ Through the Git repository, contributors can access project resources, explore the codebase, propose enhancements or bug fixes, and participate in discussions with other team members. This collaborative approach promotes efficient development and fosters innovation in the pursuit of interstellar mapping and particle acceleration research.
14
+
15
+ Join the IMAP Git repository to be part of an exciting scientific endeavor, contribute your expertise, and help unlock the mysteries of the interstellar medium and particle acceleration in our galaxy. Together, we can advance our knowledge of the cosmos and pave the way for future discoveries in space exploration.
16
+
17
+ [IMAP Website](https://imap.princeton.edu/)
18
+
19
+ [IMAP Processing Documentation](https://imap-processing.readthedocs.io/en/latest/)
20
+
21
+ [Getting started](https://imap-processing.readthedocs.io/en/latest/development-guide/getting-started.html)
22
+
23
+ # Credits
24
+ [LASP (Laboratory of Atmospheric and Space Physics)](https://lasp.colorado.edu/)
25
+ ## Contributors ✨
26
+
27
+ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
28
+
29
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
30
+ <!-- prettier-ignore-start -->
31
+ <!-- markdownlint-disable -->
32
+ <table>
33
+ <tbody>
34
+ <tr>
35
+ <td align="center" valign="top" width="14.28%"><a href="http://greglucas.github.io"><img src="https://avatars.githubusercontent.com/u/12417828?v=4?s=100" width="100px;" alt="Greg Lucas"/><br /><sub><b>Greg Lucas</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=greglucas" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=greglucas" title="Documentation">📖</a> <a href="#ideas-greglucas" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-greglucas" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-greglucas" title="Maintenance">🚧</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Agreglucas" title="Reviewed Pull Requests">👀</a></td>
36
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tech3371"><img src="https://avatars.githubusercontent.com/u/36522642?v=4?s=100" width="100px;" alt="Tenzin Choedon"/><br /><sub><b>Tenzin Choedon</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=tech3371" title="Code">💻</a> <a href="#ideas-tech3371" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-tech3371" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-tech3371" title="Examples">💡</a> <a href="#maintenance-tech3371" title="Maintenance">🚧</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Atech3371" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=tech3371" title="Documentation">📖</a></td>
37
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/laspsandoval"><img src="https://avatars.githubusercontent.com/u/46567335?v=4?s=100" width="100px;" alt="Laura Sandoval"/><br /><sub><b>Laura Sandoval</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Alaspsandoval" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=laspsandoval" title="Code">💻</a> <a href="#infra-laspsandoval" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#ideas-laspsandoval" title="Ideas, Planning, & Feedback">🤔</a></td>
38
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/sdhoyt"><img src="https://avatars.githubusercontent.com/u/7146374?v=4?s=100" width="100px;" alt="Sean Hoyt"/><br /><sub><b>Sean Hoyt</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=sdhoyt" title="Code">💻</a> <a href="#ideas-sdhoyt" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-sdhoyt" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Asdhoyt" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=sdhoyt" title="Documentation">📖</a> <a href="#maintenance-sdhoyt" title="Maintenance">🚧</a></td>
39
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/GFMoraga"><img src="https://avatars.githubusercontent.com/u/104743000?v=4?s=100" width="100px;" alt="Gabriel M."/><br /><sub><b>Gabriel M.</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=GFMoraga" title="Code">💻</a> <a href="#ideas-GFMoraga" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-GFMoraga" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3AGFMoraga" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-GFMoraga" title="Maintenance">🚧</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=GFMoraga" title="Documentation">📖</a></td>
40
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bourque"><img src="https://avatars.githubusercontent.com/u/2250769?v=4?s=100" width="100px;" alt="Matthew Bourque"/><br /><sub><b>Matthew Bourque</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bourque" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=bourque" title="Documentation">📖</a> <a href="#ideas-bourque" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-bourque" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Abourque" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-bourque" title="Maintenance">🚧</a></td>
41
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/maxinelasp"><img src="https://avatars.githubusercontent.com/u/117409426?v=4?s=100" width="100px;" alt="Maxine Hartnett"/><br /><sub><b>Maxine Hartnett</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=maxinelasp" title="Code">💻</a> <a href="#ideas-maxinelasp" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-maxinelasp" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/pulls?q=is%3Apr+reviewed-by%3Amaxinelasp" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=maxinelasp" title="Documentation">📖</a> <a href="#maintenance-maxinelasp" title="Maintenance">🚧</a></td>
42
+ </tr>
43
+ <tr>
44
+ <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>
45
+ <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>
46
+ <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="Veronica Martinez"/><br /><sub><b>Veronica Martinez</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>
47
+ <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>
48
+ <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>
49
+ <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>
50
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/lacoak21"><img src="https://avatars.githubusercontent.com/u/48064300?v=4?s=100" width="100px;" alt="Luisa Coakley"/><br /><sub><b>Luisa Coakley</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=lacoak21" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=lacoak21" title="Documentation">📖</a></td>
51
+ </tr>
52
+ <tr>
53
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/nkerman"><img src="https://avatars.githubusercontent.com/u/13221946?v=4?s=100" width="100px;" alt="Nat Kerman"/><br /><sub><b>Nat Kerman</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=nkerman" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=nkerman" title="Documentation">📖</a></td>
54
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/torimarbois"><img src="https://avatars.githubusercontent.com/u/65727848?v=4?s=100" width="100px;" alt="Tori Marbois"/><br /><sub><b>Tori Marbois</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=torimarbois" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=torimarbois" title="Documentation">📖</a></td>
55
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mfacchinelli"><img src="https://avatars.githubusercontent.com/u/19731497?v=4?s=100" width="100px;" alt="Michele Facchinelli"/><br /><sub><b>Michele Facchinelli</b></sub></a><br /><a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=mfacchinelli" title="Code">💻</a> <a href="https://github.com/IMAP-Science-Operations-Center/imap_processing/commits?author=mfacchinelli" title="Tests">⚠️</a></td>
56
+ </tr>
57
+ </tbody>
58
+ </table>
59
+
60
+ <!-- markdownlint-restore -->
61
+ <!-- prettier-ignore-end -->
62
+
63
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
64
+
65
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -1,3 +1,3 @@
1
1
  # These version placeholders will be replaced later during substitution.
2
- __version__ = "0.16.1"
3
- __version_tuple__ = (0, 16, 1)
2
+ __version__ = "1.0.4"
3
+ __version_tuple__ = (1, 0, 4)
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import json
5
6
  from collections import namedtuple
6
7
  from pathlib import Path
7
8
 
@@ -144,7 +145,53 @@ class AncillaryCombiner:
144
145
  """
145
146
  return cdf_to_xarray(filepath)
146
147
 
147
- def _combine_input_datasets(self) -> xr.Dataset:
148
+ @staticmethod
149
+ def convert_json_to_dataset(filepath: str | Path) -> xr.Dataset:
150
+ """
151
+ Read a JSON file and convert it to an xarray Dataset.
152
+
153
+ This method handles JSON files by converting them to xarray Datasets
154
+ with appropriate structure. Nested dictionaries are flattened using
155
+ underscore separation, up to 2 levels deep.
156
+
157
+ Parameters
158
+ ----------
159
+ filepath : str | Path
160
+ The path to the JSON file to convert.
161
+
162
+ Returns
163
+ -------
164
+ xr.Dataset
165
+ The converted xarray dataset with JSON data as data variables.
166
+ """
167
+ with open(filepath) as f:
168
+ json_data = json.load(f)
169
+
170
+ # Convert JSON data to xarray Dataset with appropriate structure
171
+ # Each top-level key becomes a data variable
172
+
173
+ # The structure of the dictionary is {<variable_name>: (dims, data)}
174
+ # For the lists, we specify the dimension names. For scalars, pass in [].
175
+ data_vars = {}
176
+ for key, value in json_data.items():
177
+ if isinstance(value, (list, tuple)):
178
+ # Handle arrays/lists
179
+ data_vars[key] = ([f"dim_{key}"], value)
180
+ elif isinstance(value, dict):
181
+ # Handle nested dictionaries by flattening with underscore
182
+ for subkey, subvalue in value.items():
183
+ flat_key = f"{key}_{subkey}"
184
+ if isinstance(subvalue, (list, tuple)):
185
+ data_vars[flat_key] = ([f"dim_{flat_key}"], subvalue)
186
+ else:
187
+ data_vars[flat_key] = ([], subvalue)
188
+ else:
189
+ # Handle scalar values
190
+ data_vars[key] = ([], value)
191
+
192
+ return xr.Dataset(data_vars)
193
+
194
+ def _combine_input_datasets(self) -> xr.Dataset: # noqa: PLR0912
148
195
  """
149
196
  Combine all the input datasets into one output dataset.
150
197
 
@@ -167,6 +214,10 @@ class AncillaryCombiner:
167
214
  """
168
215
  output_dataset = xr.Dataset()
169
216
 
217
+ # Handle empty input gracefully
218
+ if not self.timestamped_data:
219
+ return output_dataset
220
+
170
221
  full_range_start = None
171
222
  full_range_end = None
172
223
  for timestamped_data in self.timestamped_data:
@@ -258,3 +309,112 @@ class MagAncillaryCombiner(AncillaryCombiner):
258
309
  expected_end_date: np.datetime64 | str,
259
310
  ):
260
311
  super().__init__(ancillary_input, expected_end_date)
312
+
313
+
314
+ class GlowsAncillaryCombiner(AncillaryCombiner):
315
+ """
316
+ GLOWS-specific instance of AncillaryConverter for bad-angle flag data.
317
+
318
+ This class handles GLOWS ancillary files for L1B processing, including:
319
+ - Excluded regions map (.dat files with ecliptic coordinates)
320
+ - UV sources map (.dat files with star positions and masking radii)
321
+ - Suspected transients (.dat files with time-based histogram masks)
322
+ - Instrument team exclusions (.dat files with time-based histogram masks)
323
+
324
+ Parameters
325
+ ----------
326
+ ancillary_input : ProcessingInput
327
+ Collection of GLOWS ancillary files.
328
+ expected_end_date : np.datetime64 | str
329
+ The expected end date of the dataset. This is used to fill in the end date
330
+ of the dataset if it is not provided in the input file. This should either
331
+ be a numpy datetime64 object or a string in the format YYYYMMDD.
332
+ """
333
+
334
+ def __init__(
335
+ self,
336
+ ancillary_input: ProcessingInput | list[Path],
337
+ expected_end_date: np.datetime64 | str,
338
+ ):
339
+ super().__init__(ancillary_input, expected_end_date)
340
+
341
+ def convert_file_to_dataset(self, filepath: str | Path) -> xr.Dataset:
342
+ """
343
+ Convert GLOWS ancillary .dat files to xarray datasets.
344
+
345
+ This method handles different types of GLOWS ancillary files:
346
+ - excluded_regions: longitude/latitude coordinate pairs
347
+ - uv_sources: star names with coordinates and masking radii
348
+ - suspected_transients: time-based histogram masks
349
+ - exclusions_by_instr_team: time-based histogram masks
350
+
351
+ Parameters
352
+ ----------
353
+ filepath : str | Path
354
+ The path to the GLOWS ancillary file to convert.
355
+
356
+ Returns
357
+ -------
358
+ xr.Dataset
359
+ The converted xarray dataset with appropriate dimensions and variables.
360
+ """
361
+ filepath = Path(filepath)
362
+ filename = filepath.name
363
+
364
+ if "excluded-regions" in filename:
365
+ # Handle excluded regions (2 columns: longitude, latitude)
366
+ data = np.loadtxt(filepath, comments="#")
367
+ return xr.Dataset(
368
+ {
369
+ "ecliptic_longitude_deg": (["region"], data[:, 0]),
370
+ "ecliptic_latitude_deg": (["region"], data[:, 1]),
371
+ }
372
+ )
373
+
374
+ elif "uv-sources" in filename:
375
+ # Handle UV sources (4 columns: name, longitude, latitude, radius)
376
+ data = np.loadtxt(filepath, comments="#", dtype=str)
377
+ return xr.Dataset(
378
+ {
379
+ "object_name": (["source"], data[:, 0]),
380
+ "ecliptic_longitude_deg": (["source"], data[:, 1].astype(float)),
381
+ "ecliptic_latitude_deg": (["source"], data[:, 2].astype(float)),
382
+ "angular_radius_for_masking": (
383
+ ["source"],
384
+ data[:, 3].astype(float),
385
+ ),
386
+ }
387
+ )
388
+
389
+ elif "suspected-transients" in filename:
390
+ # Handle suspected transients (time identifier + mask string)
391
+ with open(filepath) as f:
392
+ lines = [line.strip() for line in f if not line.startswith("#")]
393
+ identifiers = [line.split(" ", 1)[0] for line in lines]
394
+ masks = [line.split(" ", 1)[1] for line in lines]
395
+ return xr.Dataset(
396
+ {
397
+ "l1b_unique_block_identifier": (["time_block"], identifiers),
398
+ "histogram_mask_array": (["time_block"], masks),
399
+ }
400
+ )
401
+
402
+ elif "exclusions-by-instr-team" in filename:
403
+ # Handle instrument team exclusions (time identifier + mask string)
404
+ with open(filepath) as f:
405
+ lines = [line.strip() for line in f if not line.startswith("#")]
406
+ identifiers = [line.split(" ", 1)[0] for line in lines]
407
+ masks = [line.split(" ", 1)[1] for line in lines]
408
+ return xr.Dataset(
409
+ {
410
+ "l1b_unique_block_identifier": (["time_block"], identifiers),
411
+ "histogram_mask_array": (["time_block"], masks),
412
+ }
413
+ )
414
+
415
+ elif filename.endswith(".json"):
416
+ # Handle pipeline settings JSON file using the generic read_json method
417
+ return self.convert_json_to_dataset(filepath)
418
+
419
+ else:
420
+ raise ValueError(f"Unknown GLOWS ancillary file type: {filename}")
@@ -294,6 +294,18 @@ class XTCEGenerator:
294
294
  encoding.attrib["sizeInBits"] = str(length_in_bits)
295
295
  encoding.attrib["encoding"] = "IEEE-754"
296
296
 
297
+ elif "STRING" in row["dataType"]:
298
+ parameter_type = Et.SubElement(
299
+ self._parameter_type_set, "xtce:StringParameterType"
300
+ )
301
+ parameter_type.attrib["name"] = name
302
+
303
+ encoding = Et.SubElement(parameter_type, "xtce:StringDataEncoding")
304
+ size_in_bits = Et.SubElement(encoding, "xtce:SizeInBits")
305
+ fixed = Et.SubElement(size_in_bits, "xtce:Fixed")
306
+ fixed_value = Et.SubElement(fixed, "xtce:FixedValue")
307
+ fixed_value.text = str(row["lengthInBits"])
308
+
297
309
  elif "BYTE" in row["dataType"]:
298
310
  parameter_type = Et.SubElement(
299
311
  self._parameter_type_set, "xtce:BinaryParameterType"
@@ -51,10 +51,10 @@ imap_codice_l1a_hi-sectored:
51
51
  Logical_source: imap_codice_l1a_hi-sectored
52
52
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Sectored Data.
53
53
 
54
- imap_codice_l1a_hi-pha:
54
+ imap_codice_l1a_hi-direct-events:
55
55
  <<: *instrument_base
56
- Data_type: L1A_hi-pha>Level-1A Hi Event Data
57
- Logical_source: imap_codice_l1a_hi-pha
56
+ Data_type: L1A_hi-direct-events>Level-1A Hi Event Data
57
+ Logical_source: imap_codice_l1a_hi-direct-events
58
58
  Logical_source_description: IMAP Mission CoDICE Hi Level-1A Event Data.
59
59
 
60
60
  imap_codice_l1a_hi-ialirt:
@@ -111,10 +111,10 @@ imap_codice_l1a_lo-nsw-species:
111
111
  Logical_source: imap_codice_l1a_lo-nsw-species
112
112
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Non-Sunward Species Counts Data.
113
113
 
114
- imap_codice_l1a_lo-pha:
114
+ imap_codice_l1a_lo-direct-events:
115
115
  <<: *instrument_base
116
- Data_type: L1A_lo-pha>Level-1A Lo Event Data
117
- Logical_source: imap_codice_l1a_lo-pha
116
+ Data_type: L1A_lo-direct-events>Level-1A Lo Event Data
117
+ Logical_source: imap_codice_l1a_lo-direct-events
118
118
  Logical_source_description: IMAP Mission CoDICE Lo Level-1A Event Data.
119
119
 
120
120
  imap_codice_l1a_lo-ialirt:
@@ -234,3 +234,39 @@ imap_codice_l2_hi-direct-events:
234
234
  Data_type: L2_hi-direct-events>Level-2 Hi Event Data
235
235
  Logical_source: imap_codice_l2_hi-direct-events
236
236
  Logical_source_description: IMAP Mission CoDICE Hi Level-2 Event Data.
237
+
238
+ imap_codice_l2_lo-sw-species:
239
+ <<: *instrument_base
240
+ Data_type: L2_lo-sw-species>Level-2 Lo Sunward Species Intensities Data
241
+ Logical_source: imap_codice_l2_lo-sw-species
242
+ Logical_source_description: IMAP Mission CoDICE Lo Level-2 Sunward Species Intensity Data.
243
+
244
+ imap_codice_l2_lo-nsw-species:
245
+ <<: *instrument_base
246
+ Data_type: L2_lo-nsw-species>Level-2 Lo Non-Sunward Species Intensities Data
247
+ Logical_source: imap_codice_l2_lo-nsw-species
248
+ Logical_source_description: IMAP Mission CoDICE Lo Level-2 Non-Sunward Species Intensity Data.
249
+
250
+ imap_codice_l2_lo-sw-angular:
251
+ <<: *instrument_base
252
+ Data_type: L2_lo-sw-angular>Level-2 Lo Sunward Angular Intensities Data
253
+ Logical_source: imap_codice_l2_lo-sw-angular
254
+ Logical_source_description: IMAP Mission CoDICE Lo Level-2 Sunward Angular Intensity Data.
255
+
256
+ imap_codice_l2_lo-nsw-angular:
257
+ <<: *instrument_base
258
+ Data_type: L2_lo-nsw-angular>Level-2 Lo Non-Sunward Angular Intensities Data
259
+ Logical_source: imap_codice_l2_lo-nsw-angular
260
+ Logical_source_description: IMAP Mission CoDICE Lo Level-2 Non-Sunward Angular Intensity Data.
261
+
262
+ imap_codice_l2_hi-omni:
263
+ <<: *instrument_base
264
+ Data_type: L2_hi-omni>Level-2 Hi Omnidirectional Species Intensities Data
265
+ Logical_source: imap_codice_l2_hi-omni
266
+ Logical_source_description: IMAP Mission CoDICE Hi Level-2 Omnidirectional Species Intensity Data.
267
+
268
+ imap_codice_l2_hi-sectored:
269
+ <<: *instrument_base
270
+ Data_type: L2_hi-sectored>Level-2 Hi Sectored Species Intensities Data
271
+ Logical_source: imap_codice_l2_hi-sectored
272
+ Logical_source_description: IMAP Mission CoDICE Hi Level-2 Sectored Species Intensity Data.