imap-processing 0.17.0__tar.gz → 0.19.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 (290) hide show
  1. {imap_processing-0.17.0 → imap_processing-0.19.0}/PKG-INFO +3 -3
  2. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/_version.py +2 -2
  3. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ancillary/ancillary_dataset_combiner.py +161 -1
  4. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ccsds/excel_to_xtce.py +12 -0
  5. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +6 -6
  6. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +312 -274
  7. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +39 -28
  8. imap_processing-0.19.0/imap_processing/cdf/config/imap_codice_l2_variable_attrs.yaml +1869 -0
  9. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_constant_attrs.yaml +4 -2
  10. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +12 -0
  11. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +5 -0
  12. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +10 -4
  13. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_hit_l1a_variable_attrs.yaml +163 -100
  14. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_hit_l2_variable_attrs.yaml +4 -4
  15. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_ialirt_l1_variable_attrs.yaml +97 -54
  16. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_idex_l2a_variable_attrs.yaml +33 -4
  17. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_idex_l2b_variable_attrs.yaml +44 -44
  18. imap_processing-0.19.0/imap_processing/cdf/config/imap_idex_l2c_variable_attrs.yaml +120 -0
  19. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +30 -0
  20. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +4 -15
  21. imap_processing-0.19.0/imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +270 -0
  22. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +99 -2
  23. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_mag_l1c_variable_attrs.yaml +24 -1
  24. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +60 -0
  25. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +99 -11
  26. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +50 -7
  27. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cli.py +121 -44
  28. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/codice_l1a.py +165 -77
  29. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/codice_l1b.py +1 -1
  30. imap_processing-0.19.0/imap_processing/codice/codice_l2.py +180 -0
  31. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/constants.py +1217 -1089
  32. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/decom.py +1 -4
  33. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/ena_maps.py +32 -25
  34. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/utils/naming.py +8 -2
  35. imap_processing-0.19.0/imap_processing/glows/ancillary/imap_glows_exclusions-by-instr-team_20250923_v002.dat +10 -0
  36. imap_processing-0.19.0/imap_processing/glows/ancillary/imap_glows_map-of-excluded-regions_20250923_v002.dat +393 -0
  37. imap_processing-0.19.0/imap_processing/glows/ancillary/imap_glows_map-of-uv-sources_20250923_v002.dat +593 -0
  38. imap_processing-0.19.0/imap_processing/glows/ancillary/imap_glows_pipeline_settings_20250923_v002.json +54 -0
  39. imap_processing-0.19.0/imap_processing/glows/ancillary/imap_glows_suspected-transients_20250923_v002.dat +10 -0
  40. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l1b/glows_l1b.py +99 -9
  41. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l1b/glows_l1b_data.py +350 -38
  42. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l2/glows_l2.py +11 -0
  43. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/hi_l1a.py +124 -3
  44. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/hi_l1b.py +154 -71
  45. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/hi_l2.py +84 -51
  46. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/utils.py +153 -8
  47. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l0/constants.py +3 -0
  48. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l0/decom_hit.py +5 -8
  49. imap_processing-0.19.0/imap_processing/hit/l1a/hit_l1a.py +654 -0
  50. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l1b/constants.py +5 -0
  51. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l1b/hit_l1b.py +61 -131
  52. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l2/constants.py +1 -1
  53. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l2/hit_l2.py +10 -11
  54. imap_processing-0.19.0/imap_processing/ialirt/calculate_ingest.py +219 -0
  55. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/constants.py +32 -1
  56. imap_processing-0.19.0/imap_processing/ialirt/generate_coverage.py +201 -0
  57. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/ialirt_spice.py +5 -2
  58. imap_processing-0.19.0/imap_processing/ialirt/l0/parse_mag.py +742 -0
  59. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/process_hit.py +5 -3
  60. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/process_swapi.py +41 -25
  61. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/process_swe.py +23 -7
  62. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/process_ephemeris.py +70 -14
  63. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/utils/constants.py +22 -16
  64. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/utils/create_xarray.py +42 -19
  65. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_constants.py +1 -5
  66. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_l0.py +2 -2
  67. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_l1a.py +2 -3
  68. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_l1b.py +2 -3
  69. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_l2a.py +130 -4
  70. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_l2b.py +313 -119
  71. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_utils.py +1 -3
  72. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/lo_apid.py +1 -0
  73. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/lo_science.py +25 -24
  74. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l1a/lo_l1a.py +44 -0
  75. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l1b/lo_l1b.py +3 -3
  76. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l1c/lo_l1c.py +116 -50
  77. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l2/lo_l2.py +29 -29
  78. imap_processing-0.19.0/imap_processing/lo/lo_ancillary.py +55 -0
  79. imap_processing-0.19.0/imap_processing/lo/packet_definitions/lo_xtce.xml +7193 -0
  80. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/constants.py +1 -0
  81. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l1a/mag_l1a.py +1 -0
  82. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l1a/mag_l1a_data.py +26 -0
  83. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l1b/mag_l1b.py +3 -2
  84. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l1c/interpolation_methods.py +14 -15
  85. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l1c/mag_l1c.py +23 -6
  86. imap_processing-0.19.0/imap_processing/mag/l1d/mag_l1d.py +176 -0
  87. imap_processing-0.19.0/imap_processing/mag/l1d/mag_l1d_data.py +725 -0
  88. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l2/mag_l2.py +25 -20
  89. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l2/mag_l2_data.py +199 -130
  90. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/quality_flags.py +28 -2
  91. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/geometry.py +101 -36
  92. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/pointing_frame.py +1 -7
  93. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/repoint.py +29 -2
  94. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/spin.py +32 -8
  95. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/time.py +60 -19
  96. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swapi/l1/swapi_l1.py +10 -4
  97. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swapi/l2/swapi_l2.py +66 -24
  98. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swapi/swapi_utils.py +1 -1
  99. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/l1b/swe_l1b.py +3 -6
  100. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/constants.py +28 -3
  101. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l0/decom_tools.py +15 -8
  102. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l0/decom_ultra.py +35 -11
  103. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l0/ultra_utils.py +102 -12
  104. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1a/ultra_l1a.py +26 -6
  105. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/cullingmask.py +6 -3
  106. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/de.py +122 -26
  107. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/extendedspin.py +29 -2
  108. imap_processing-0.19.0/imap_processing/ultra/l1b/lookup_utils.py +603 -0
  109. imap_processing-0.19.0/imap_processing/ultra/l1b/quality_flag_filters.py +23 -0
  110. imap_processing-0.19.0/imap_processing/ultra/l1b/ultra_l1b_culling.py +609 -0
  111. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/ultra_l1b_extended.py +534 -90
  112. imap_processing-0.19.0/imap_processing/ultra/l1c/helio_pset.py +173 -0
  113. imap_processing-0.19.0/imap_processing/ultra/l1c/l1c_lookup_utils.py +256 -0
  114. imap_processing-0.19.0/imap_processing/ultra/l1c/spacecraft_pset.py +167 -0
  115. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1c/ultra_l1c.py +6 -0
  116. imap_processing-0.19.0/imap_processing/ultra/l1c/ultra_l1c_culling.py +85 -0
  117. imap_processing-0.19.0/imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +740 -0
  118. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l2/ultra_l2.py +0 -1
  119. imap_processing-0.19.0/imap_processing/ultra/packet_definitions/__init__.py +0 -0
  120. imap_processing-0.19.0/imap_processing/ultra/utils/__init__.py +0 -0
  121. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/utils/ultra_l1_utils.py +40 -3
  122. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/utils.py +3 -4
  123. {imap_processing-0.17.0 → imap_processing-0.19.0}/pyproject.toml +5 -4
  124. imap_processing-0.17.0/imap_processing/cdf/config/imap_codice_l2_variable_attrs.yaml +0 -1004
  125. imap_processing-0.17.0/imap_processing/cdf/config/imap_idex_l2c_variable_attrs.yaml +0 -104
  126. imap_processing-0.17.0/imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +0 -179
  127. imap_processing-0.17.0/imap_processing/codice/codice_l2.py +0 -81
  128. imap_processing-0.17.0/imap_processing/hit/l1a/hit_l1a.py +0 -324
  129. imap_processing-0.17.0/imap_processing/ialirt/l0/parse_mag.py +0 -434
  130. imap_processing-0.17.0/imap_processing/idex/idex_l2c.py +0 -250
  131. imap_processing-0.17.0/imap_processing/lo/packet_definitions/lo_xtce.xml +0 -1940
  132. imap_processing-0.17.0/imap_processing/spice/kernels.py +0 -187
  133. imap_processing-0.17.0/imap_processing/ultra/l1b/lookup_utils.py +0 -229
  134. imap_processing-0.17.0/imap_processing/ultra/l1b/ultra_l1b_culling.py +0 -258
  135. imap_processing-0.17.0/imap_processing/ultra/l1c/helio_pset.py +0 -53
  136. imap_processing-0.17.0/imap_processing/ultra/l1c/spacecraft_pset.py +0 -92
  137. imap_processing-0.17.0/imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +0 -635
  138. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/Angular_Profiles_FM45_LeftSlit.csv +0 -526
  139. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/Angular_Profiles_FM45_RightSlit.csv +0 -526
  140. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/Angular_Profiles_FM90_LeftSlit.csv +0 -526
  141. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/Angular_Profiles_FM90_RightSlit.csv +0 -524
  142. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/EgyNorm.mem.csv +0 -32769
  143. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/FM45_Startup1_ULTRA_IMGPARAMS_20240719.csv +0 -2
  144. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/FM90_Startup1_ULTRA_IMGPARAMS_20240719.csv +0 -2
  145. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/dps_grid45_compressed.cdf +0 -0
  146. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/ultra45_back-pos-luts.csv +0 -4097
  147. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/ultra45_tdc_norm.csv +0 -2050
  148. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/ultra90_back-pos-luts.csv +0 -4097
  149. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/ultra90_tdc_norm.csv +0 -2050
  150. imap_processing-0.17.0/imap_processing/ultra/lookup_tables/yadjust.csv +0 -257
  151. {imap_processing-0.17.0 → imap_processing-0.19.0}/LICENSE +0 -0
  152. {imap_processing-0.17.0 → imap_processing-0.19.0}/README.md +0 -0
  153. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/__init__.py +0 -0
  154. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ancillary/__init__.py +0 -0
  155. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ccsds/__init__.py +0 -0
  156. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ccsds/ccsds_data.py +0 -0
  157. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/__init__.py +0 -0
  158. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_default_global_cdf_attrs.yaml +0 -0
  159. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_enamaps_l2-common_variable_attrs.yaml +0 -0
  160. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_enamaps_l2-healpix_variable_attrs.yaml +0 -0
  161. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_enamaps_l2-rectangular_variable_attrs.yaml +0 -0
  162. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +0 -0
  163. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_glows_l1a_variable_attrs.yaml +0 -0
  164. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_glows_l2_variable_attrs.yaml +0 -0
  165. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_hi_variable_attrs.yaml +0 -0
  166. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +0 -0
  167. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_ialirt_global_cdf_attrs.yaml +0 -0
  168. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +0 -0
  169. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +0 -0
  170. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_idex_l1b_variable_attrs.yaml +0 -0
  171. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_lo_l1b_variable_attrs.yaml +0 -0
  172. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_mag_l1a_variable_attrs.yaml +0 -0
  173. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_mag_l1b_variable_attrs.yaml +0 -0
  174. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_mag_l2_variable_attrs.yaml +0 -0
  175. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_spacecraft_global_cdf_attrs.yaml +0 -0
  176. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_spacecraft_variable_attrs.yaml +0 -0
  177. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_swapi_global_cdf_attrs.yaml +0 -0
  178. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_swapi_variable_attrs.yaml +0 -0
  179. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +0 -0
  180. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +0 -0
  181. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +0 -0
  182. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_swe_l2_variable_attrs.yaml +0 -0
  183. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +0 -0
  184. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/config/imap_variable_schema.yaml +0 -0
  185. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/imap_cdf_manager.py +0 -0
  186. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/cdf/utils.py +0 -0
  187. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/__init__.py +0 -0
  188. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/codice_l0.py +0 -0
  189. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/data/esa_sweep_values.csv +0 -0
  190. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/data/lo_stepping_values.csv +0 -0
  191. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/decompress.py +0 -0
  192. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/packet_definitions/P_COD_NHK.xml +0 -0
  193. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/packet_definitions/codice_packet_definition.xml +0 -0
  194. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/codice/utils.py +0 -0
  195. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/__init__.py +0 -0
  196. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/utils/__init__.py +0 -0
  197. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/utils/coordinates.py +0 -0
  198. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/utils/map_utils.py +0 -0
  199. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ena_maps/utils/spatial_utils.py +0 -0
  200. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/__init__.py +0 -0
  201. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/ancillary/imap_glows_pipeline_settings_v001.json +0 -0
  202. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/ancillary/l1b_conversion_table_v001.json +0 -0
  203. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l0/__init__.py +0 -0
  204. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l0/decom_glows.py +0 -0
  205. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l0/glows_l0_data.py +0 -0
  206. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l1a/glows_l1a.py +0 -0
  207. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l1a/glows_l1a_data.py +0 -0
  208. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/l2/glows_l2_data.py +0 -0
  209. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/packet_definitions/GLX_COMBINED.xml +0 -0
  210. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/packet_definitions/P_GLX_TMSCDE.xml +0 -0
  211. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/packet_definitions/P_GLX_TMSCHIST.xml +0 -0
  212. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/utils/__init__.py +0 -0
  213. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/glows/utils/constants.py +0 -0
  214. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/__init__.py +0 -0
  215. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/hi_l1c.py +0 -0
  216. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/packet_definitions/TLM_HI_COMBINED_SCI.xml +0 -0
  217. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hi/packet_definitions/__init__.py +0 -0
  218. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/__init__.py +0 -0
  219. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/hit_utils.py +0 -0
  220. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l0/__init__.py +0 -0
  221. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/l1a/__init__.py +0 -0
  222. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/hit/packet_definitions/hit_packet_definitions.xml +0 -0
  223. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/__init__.py +0 -0
  224. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/__init__.py +0 -0
  225. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/mag_l0_ialirt_data.py +0 -0
  226. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/l0/process_codice.py +0 -0
  227. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/__init__.py +0 -0
  228. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt.xml +0 -0
  229. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt_codicehi.xml +0 -0
  230. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt_codicelo.xml +0 -0
  231. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt_hit.xml +0 -0
  232. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt_mag.xml +0 -0
  233. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt_swapi.xml +0 -0
  234. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/packet_definitions/ialirt_swe.xml +0 -0
  235. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/utils/grouping.py +0 -0
  236. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ialirt/utils/time.py +0 -0
  237. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/__init__.py +0 -0
  238. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/atomic_masses.csv +0 -0
  239. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/decode.py +0 -0
  240. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/idex_variable_unpacking_and_eu_conversion.csv +0 -0
  241. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/packet_definitions/idex_housekeeping_packet_definition.xml +0 -0
  242. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/idex/packet_definitions/idex_science_packet_definition.xml +0 -0
  243. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/__init__.py +0 -0
  244. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/__init__.py +0 -0
  245. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/decompression_tables/decompression_tables.py +0 -0
  246. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/decompression_tables/log10_12_to_16_bit_uncompress.csv +0 -0
  247. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/decompression_tables/log10_8_to_12_bit_uncompress.csv +0 -0
  248. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/decompression_tables/log10_8_to_16_bit_uncompress.csv +0 -0
  249. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/lo_star_sensor.py +0 -0
  250. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/utils/binary_string.py +0 -0
  251. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l0/utils/bit_decompression.py +0 -0
  252. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l1a/__init__.py +0 -0
  253. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/lo/l1b/tof_conversions.py +0 -0
  254. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/__init__.py +0 -0
  255. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/imap_mag_sdc_configuration_v001.py +0 -0
  256. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l0/decom_mag.py +0 -0
  257. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l0/mag_l0_data.py +0 -0
  258. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/l1b/imap_mag_l1b-calibration_20240229_v002.cdf +0 -0
  259. {imap_processing-0.17.0/imap_processing/swapi/l1 → imap_processing-0.19.0/imap_processing/mag/l1d}/__init__.py +0 -0
  260. {imap_processing-0.17.0/imap_processing/swapi → imap_processing-0.19.0/imap_processing/mag}/l2/__init__.py +0 -0
  261. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/mag/packet_definitions/MAG_SCI_COMBINED.xml +0 -0
  262. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spacecraft/packet_definitions/scid_x252.xml +0 -0
  263. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spacecraft/quaternions.py +0 -0
  264. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/__init__.py +0 -0
  265. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/spice/config.py +0 -0
  266. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swapi/__init__.py +0 -0
  267. {imap_processing-0.17.0/imap_processing/swapi/packet_definitions → imap_processing-0.19.0/imap_processing/swapi/l1}/__init__.py +0 -0
  268. {imap_processing-0.17.0/imap_processing/swe/l1a → imap_processing-0.19.0/imap_processing/swapi/l2}/__init__.py +0 -0
  269. {imap_processing-0.17.0/imap_processing/swe → imap_processing-0.19.0/imap_processing/swapi}/packet_definitions/__init__.py +0 -0
  270. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swapi/packet_definitions/swapi_packet_definition.xml +0 -0
  271. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/__init__.py +0 -0
  272. {imap_processing-0.17.0/imap_processing/swe/utils → imap_processing-0.19.0/imap_processing/swe/l1a}/__init__.py +0 -0
  273. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/l1a/swe_l1a.py +0 -0
  274. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/l1a/swe_science.py +0 -0
  275. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/l2/swe_l2.py +0 -0
  276. {imap_processing-0.17.0/imap_processing/ultra/l0 → imap_processing-0.19.0/imap_processing/swe/packet_definitions}/__init__.py +0 -0
  277. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/packet_definitions/swe_packet_definition.xml +0 -0
  278. {imap_processing-0.17.0/imap_processing/ultra/l1a → imap_processing-0.19.0/imap_processing/swe/utils}/__init__.py +0 -0
  279. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/utils/swe_constants.py +0 -0
  280. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/swe/utils/swe_utils.py +0 -0
  281. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/__init__.py +0 -0
  282. {imap_processing-0.17.0/imap_processing/ultra/l2 → imap_processing-0.19.0/imap_processing/ultra/l0}/__init__.py +0 -0
  283. {imap_processing-0.17.0/imap_processing/ultra/packet_definitions → imap_processing-0.19.0/imap_processing/ultra/l1a}/__init__.py +0 -0
  284. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/badtimes.py +0 -0
  285. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/ultra_l1b.py +0 -0
  286. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1b/ultra_l1b_annotated.py +0 -0
  287. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/l1c/histogram.py +0 -0
  288. {imap_processing-0.17.0/imap_processing/ultra/utils → imap_processing-0.19.0/imap_processing/ultra/l2}/__init__.py +0 -0
  289. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/packet_definitions/README.md +0 -0
  290. {imap_processing-0.17.0 → imap_processing-0.19.0}/imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imap-processing
3
- Version: 0.17.0
3
+ Version: 0.19.0
4
4
  Summary: IMAP Science Operations Center Processing
5
5
  License: MIT
6
6
  Keywords: IMAP,SDC,SOC,Science Operations
@@ -28,9 +28,9 @@ Provides-Extra: map-visualization
28
28
  Provides-Extra: test
29
29
  Provides-Extra: tools
30
30
  Requires-Dist: astropy-healpix (>=1.0)
31
- Requires-Dist: cdflib (>=1.3.1,<2.0.0)
31
+ Requires-Dist: cdflib (>=1.3.6,<2.0.0)
32
32
  Requires-Dist: healpy (>=1.18.0,<2.0.0) ; extra == "map-visualization"
33
- Requires-Dist: imap-data-access (>=0.31.0)
33
+ Requires-Dist: imap-data-access (>=0.32.0)
34
34
  Requires-Dist: mypy (==1.10.1) ; extra == "dev"
35
35
  Requires-Dist: netcdf4 (>=1.7.2,<2.0.0) ; extra == "test"
36
36
  Requires-Dist: numpy (<=3)
@@ -1,3 +1,3 @@
1
1
  # These version placeholders will be replaced later during substitution.
2
- __version__ = "0.17.0"
3
- __version_tuple__ = (0, 17, 0)
2
+ __version__ = "0.19.0"
3
+ __version_tuple__ = (0, 19, 0)
@@ -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: