imap-processing 0.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. imap_processing/__init__.py +34 -0
  2. imap_processing/_version.py +3 -0
  3. imap_processing/ccsds/__init__.py +0 -0
  4. imap_processing/ccsds/ccsds_data.py +55 -0
  5. imap_processing/ccsds/excel_to_xtce.py +477 -0
  6. imap_processing/cdf/__init__.py +0 -0
  7. imap_processing/cdf/cdf_attribute_manager.py +322 -0
  8. imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +212 -0
  9. imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +1358 -0
  10. imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +391 -0
  11. imap_processing/cdf/config/imap_constant_attrs.yaml +33 -0
  12. imap_processing/cdf/config/imap_default_global_cdf_attrs.yaml +17 -0
  13. imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +41 -0
  14. imap_processing/cdf/config/imap_glows_l1a_variable_attrs.yaml +499 -0
  15. imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +334 -0
  16. imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +51 -0
  17. imap_processing/cdf/config/imap_hi_variable_attrs.yaml +435 -0
  18. imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +27 -0
  19. imap_processing/cdf/config/imap_hit_l1a_variable_attrs.yaml +493 -0
  20. imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +564 -0
  21. imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +24 -0
  22. imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +426 -0
  23. imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +90 -0
  24. imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +487 -0
  25. imap_processing/cdf/config/imap_lo_l1b_variable_attrs.yaml +121 -0
  26. imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +179 -0
  27. imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +97 -0
  28. imap_processing/cdf/config/imap_mag_l1_variable_attrs.yaml +201 -0
  29. imap_processing/cdf/config/imap_swapi_global_cdf_attrs.yaml +33 -0
  30. imap_processing/cdf/config/imap_swapi_variable_attrs.yaml +137 -0
  31. imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +24 -0
  32. imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +234 -0
  33. imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +273 -0
  34. imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +100 -0
  35. imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +52 -0
  36. imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +297 -0
  37. imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +121 -0
  38. imap_processing/cdf/config/shared/default_global_cdf_attrs_schema.yaml +246 -0
  39. imap_processing/cdf/config/shared/default_variable_cdf_attrs_schema.yaml +466 -0
  40. imap_processing/cdf/imap_cdf_manager.py +64 -0
  41. imap_processing/cdf/utils.py +147 -0
  42. imap_processing/cli.py +863 -0
  43. imap_processing/codice/__init__.py +1 -0
  44. imap_processing/codice/codice_l0.py +54 -0
  45. imap_processing/codice/codice_l1a.py +558 -0
  46. imap_processing/codice/codice_l1b.py +194 -0
  47. imap_processing/codice/constants.py +986 -0
  48. imap_processing/codice/data/esa_sweep_values.csv +257 -0
  49. imap_processing/codice/data/lo_stepping_values.csv +129 -0
  50. imap_processing/codice/decompress.py +142 -0
  51. imap_processing/codice/packet_definitions/P_COD_NHK.xml +618 -0
  52. imap_processing/codice/packet_definitions/codice_packet_definition.xml +5073 -0
  53. imap_processing/codice/utils.py +95 -0
  54. imap_processing/decom.py +40 -0
  55. imap_processing/glows/__init__.py +1 -0
  56. imap_processing/glows/ancillary/l1b_conversion_table_v001.json +42 -0
  57. imap_processing/glows/l0/__init__.py +0 -0
  58. imap_processing/glows/l0/decom_glows.py +91 -0
  59. imap_processing/glows/l0/glows_l0_data.py +194 -0
  60. imap_processing/glows/l1a/glows_l1a.py +424 -0
  61. imap_processing/glows/l1a/glows_l1a_data.py +555 -0
  62. imap_processing/glows/l1b/glows_l1b.py +270 -0
  63. imap_processing/glows/l1b/glows_l1b_data.py +583 -0
  64. imap_processing/glows/packet_definitions/GLX_COMBINED.xml +254 -0
  65. imap_processing/glows/packet_definitions/P_GLX_TMSCDE.xml +97 -0
  66. imap_processing/glows/packet_definitions/P_GLX_TMSCHIST.xml +215 -0
  67. imap_processing/glows/utils/__init__.py +0 -0
  68. imap_processing/glows/utils/constants.py +105 -0
  69. imap_processing/hi/__init__.py +1 -0
  70. imap_processing/hi/l0/__init__.py +0 -0
  71. imap_processing/hi/l0/decom_hi.py +24 -0
  72. imap_processing/hi/l1a/__init__.py +0 -0
  73. imap_processing/hi/l1a/hi_l1a.py +73 -0
  74. imap_processing/hi/l1a/histogram.py +142 -0
  75. imap_processing/hi/l1a/housekeeping.py +27 -0
  76. imap_processing/hi/l1a/science_direct_event.py +341 -0
  77. imap_processing/hi/l1b/__init__.py +0 -0
  78. imap_processing/hi/l1b/hi_eng_unit_convert_table.csv +154 -0
  79. imap_processing/hi/l1b/hi_l1b.py +127 -0
  80. imap_processing/hi/l1c/__init__.py +0 -0
  81. imap_processing/hi/l1c/hi_l1c.py +228 -0
  82. imap_processing/hi/packet_definitions/__init__.py +0 -0
  83. imap_processing/hi/packet_definitions/hi_packet_definition.xml +482 -0
  84. imap_processing/hi/utils.py +27 -0
  85. imap_processing/hit/__init__.py +1 -0
  86. imap_processing/hit/l0/__init__.py +0 -0
  87. imap_processing/hit/l0/data_classes/housekeeping.py +240 -0
  88. imap_processing/hit/l0/data_classes/science_packet.py +259 -0
  89. imap_processing/hit/l0/decom_hit.py +467 -0
  90. imap_processing/hit/l0/utils/hit_base.py +57 -0
  91. imap_processing/hit/l1a/__init__.py +0 -0
  92. imap_processing/hit/l1a/hit_l1a.py +254 -0
  93. imap_processing/hit/l1b/hit_l1b.py +179 -0
  94. imap_processing/hit/packet_definitions/hit_packet_definitions.xml +1276 -0
  95. imap_processing/ialirt/__init__.py +0 -0
  96. imap_processing/ialirt/l0/__init__.py +0 -0
  97. imap_processing/ialirt/l0/process_hit.py +220 -0
  98. imap_processing/ialirt/packet_definitions/__init__.py +0 -0
  99. imap_processing/ialirt/packet_definitions/ialirt.xml +778 -0
  100. imap_processing/ialirt/packet_definitions/ialirt_hit.xml +186 -0
  101. imap_processing/idex/__init__.py +2 -0
  102. imap_processing/idex/idex_constants.py +27 -0
  103. imap_processing/idex/idex_l0.py +31 -0
  104. imap_processing/idex/idex_l1a.py +631 -0
  105. imap_processing/idex/packet_definitions/idex_packet_definition.xml +3162 -0
  106. imap_processing/lo/__init__.py +1 -0
  107. imap_processing/lo/l0/__init__.py +0 -0
  108. imap_processing/lo/l0/data_classes/science_direct_events.py +215 -0
  109. imap_processing/lo/l0/data_classes/star_sensor.py +98 -0
  110. imap_processing/lo/l0/decompression_tables/12_to_16_bit.csv +4097 -0
  111. imap_processing/lo/l0/decompression_tables/8_to_12_bit.csv +257 -0
  112. imap_processing/lo/l0/decompression_tables/8_to_16_bit.csv +257 -0
  113. imap_processing/lo/l0/decompression_tables/decompression_tables.py +75 -0
  114. imap_processing/lo/l0/lo_apid.py +15 -0
  115. imap_processing/lo/l0/lo_science.py +150 -0
  116. imap_processing/lo/l0/utils/binary_string.py +59 -0
  117. imap_processing/lo/l0/utils/bit_decompression.py +62 -0
  118. imap_processing/lo/l0/utils/lo_base.py +57 -0
  119. imap_processing/lo/l1a/__init__.py +0 -0
  120. imap_processing/lo/l1a/lo_l1a.py +157 -0
  121. imap_processing/lo/l1b/lo_l1b.py +160 -0
  122. imap_processing/lo/l1c/lo_l1c.py +180 -0
  123. imap_processing/lo/packet_definitions/lo_xtce.xml +3541 -0
  124. imap_processing/mag/__init__.py +2 -0
  125. imap_processing/mag/constants.py +108 -0
  126. imap_processing/mag/l0/decom_mag.py +170 -0
  127. imap_processing/mag/l0/mag_l0_data.py +118 -0
  128. imap_processing/mag/l1a/mag_l1a.py +317 -0
  129. imap_processing/mag/l1a/mag_l1a_data.py +1007 -0
  130. imap_processing/mag/l1b/__init__.py +0 -0
  131. imap_processing/mag/l1b/imap_calibration_mag_20240229_v01.cdf +0 -0
  132. imap_processing/mag/l1b/mag_l1b.py +125 -0
  133. imap_processing/mag/l1c/mag_l1c.py +57 -0
  134. imap_processing/mag/packet_definitions/MAG_SCI_COMBINED.xml +235 -0
  135. imap_processing/quality_flags.py +91 -0
  136. imap_processing/spice/__init__.py +1 -0
  137. imap_processing/spice/geometry.py +322 -0
  138. imap_processing/spice/kernels.py +459 -0
  139. imap_processing/spice/time.py +72 -0
  140. imap_processing/swapi/__init__.py +1 -0
  141. imap_processing/swapi/l1/__init__.py +0 -0
  142. imap_processing/swapi/l1/swapi_l1.py +685 -0
  143. imap_processing/swapi/l2/__init__.py +0 -0
  144. imap_processing/swapi/l2/swapi_l2.py +107 -0
  145. imap_processing/swapi/packet_definitions/__init__.py +0 -0
  146. imap_processing/swapi/packet_definitions/swapi_packet_definition.xml +708 -0
  147. imap_processing/swapi/swapi_utils.py +25 -0
  148. imap_processing/swe/__init__.py +1 -0
  149. imap_processing/swe/l1a/__init__.py +0 -0
  150. imap_processing/swe/l1a/swe_l1a.py +48 -0
  151. imap_processing/swe/l1a/swe_science.py +223 -0
  152. imap_processing/swe/l1b/engineering_unit_convert_table.csv +65 -0
  153. imap_processing/swe/l1b/swe_esa_lookup_table.csv +1441 -0
  154. imap_processing/swe/l1b/swe_l1b.py +49 -0
  155. imap_processing/swe/l1b/swe_l1b_science.py +557 -0
  156. imap_processing/swe/packet_definitions/__init__.py +0 -0
  157. imap_processing/swe/packet_definitions/swe_packet_definition.xml +303 -0
  158. imap_processing/swe/utils/__init__.py +0 -0
  159. imap_processing/swe/utils/swe_utils.py +9 -0
  160. imap_processing/tests/__init__.py +0 -0
  161. imap_processing/tests/ccsds/test_data/expected_output.xml +171 -0
  162. imap_processing/tests/ccsds/test_excel_to_xtce.py +285 -0
  163. imap_processing/tests/cdf/__init__.py +0 -0
  164. imap_processing/tests/cdf/imap_default_global_cdf_attrs.yaml +8 -0
  165. imap_processing/tests/cdf/shared/default_global_cdf_attrs_schema.yaml +246 -0
  166. imap_processing/tests/cdf/shared/default_variable_cdf_attrs_schema.yaml +466 -0
  167. imap_processing/tests/cdf/test_cdf_attribute_manager.py +353 -0
  168. imap_processing/tests/cdf/test_data/imap_default_global_test_cdf_attrs.yaml +7 -0
  169. imap_processing/tests/cdf/test_data/imap_instrument1_global_cdf_attrs.yaml +14 -0
  170. imap_processing/tests/cdf/test_data/imap_instrument1_level1_variable_attrs.yaml +23 -0
  171. imap_processing/tests/cdf/test_data/imap_instrument2_global_cdf_attrs.yaml +23 -0
  172. imap_processing/tests/cdf/test_data/imap_instrument2_level2_variable_attrs.yaml +30 -0
  173. imap_processing/tests/cdf/test_data/imap_test_global.yaml +26 -0
  174. imap_processing/tests/cdf/test_data/imap_test_variable.yaml +41 -0
  175. imap_processing/tests/cdf/test_imap_cdf_manager.py +62 -0
  176. imap_processing/tests/cdf/test_utils.py +109 -0
  177. imap_processing/tests/codice/__init__.py +0 -0
  178. imap_processing/tests/codice/conftest.py +56 -0
  179. imap_processing/tests/codice/data/eu_unit_lookup_table.csv +101 -0
  180. imap_processing/tests/codice/data/idle_export_eu.COD_NHK_20230822_122700 2.csv +100 -0
  181. imap_processing/tests/codice/data/idle_export_raw.COD_NHK_20230822_122700.csv +100 -0
  182. imap_processing/tests/codice/data/imap_codice_l0_hi-counters-aggregated_20240429_v001.pkts +0 -0
  183. imap_processing/tests/codice/data/imap_codice_l0_hi-counters-singles_20240429_v001.pkts +0 -0
  184. imap_processing/tests/codice/data/imap_codice_l0_hi-omni_20240429_v001.pkts +0 -0
  185. imap_processing/tests/codice/data/imap_codice_l0_hi-pha_20240429_v001.pkts +0 -0
  186. imap_processing/tests/codice/data/imap_codice_l0_hi-sectored_20240429_v001.pkts +0 -0
  187. imap_processing/tests/codice/data/imap_codice_l0_hskp_20100101_v001.pkts +0 -0
  188. imap_processing/tests/codice/data/imap_codice_l0_lo-counters-aggregated_20240429_v001.pkts +0 -0
  189. imap_processing/tests/codice/data/imap_codice_l0_lo-counters-singles_20240429_v001.pkts +0 -0
  190. imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-angular_20240429_v001.pkts +0 -0
  191. imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-priority_20240429_v001.pkts +0 -0
  192. imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-species_20240429_v001.pkts +0 -0
  193. imap_processing/tests/codice/data/imap_codice_l0_lo-pha_20240429_v001.pkts +0 -0
  194. imap_processing/tests/codice/data/imap_codice_l0_lo-sw-angular_20240429_v001.pkts +0 -0
  195. imap_processing/tests/codice/data/imap_codice_l0_lo-sw-priority_20240429_v001.pkts +0 -0
  196. imap_processing/tests/codice/data/imap_codice_l0_lo-sw-species_20240429_v001.pkts +0 -0
  197. imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-aggregated_20240429_v001.cdf +0 -0
  198. imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-singles_20240429_v001.cdf +0 -0
  199. imap_processing/tests/codice/data/imap_codice_l1a_hi-omni_20240429_v001.cdf +0 -0
  200. imap_processing/tests/codice/data/imap_codice_l1a_hi-sectored_20240429_v001.cdf +0 -0
  201. imap_processing/tests/codice/data/imap_codice_l1a_hskp_20100101_v001.cdf +0 -0
  202. imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-aggregated_20240429_v001.cdf +0 -0
  203. imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-singles_20240429_v001.cdf +0 -0
  204. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-angular_20240429_v001.cdf +0 -0
  205. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-priority_20240429_v001.cdf +0 -0
  206. imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-species_20240429_v001.cdf +0 -0
  207. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-angular_20240429_v001.cdf +0 -0
  208. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-priority_20240429_v001.cdf +0 -0
  209. imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-species_20240429_v001.cdf +0 -0
  210. imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-aggregated_20240429_v001.cdf +0 -0
  211. imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-singles_20240429_v001.cdf +0 -0
  212. imap_processing/tests/codice/data/imap_codice_l1b_hi-omni_20240429_v001.cdf +0 -0
  213. imap_processing/tests/codice/data/imap_codice_l1b_hi-sectored_20240429_v001.cdf +0 -0
  214. imap_processing/tests/codice/data/imap_codice_l1b_hskp_20100101_v001.cdf +0 -0
  215. imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-aggregated_20240429_v001.cdf +0 -0
  216. imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-singles_20240429_v001.cdf +0 -0
  217. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-angular_20240429_v001.cdf +0 -0
  218. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-priority_20240429_v001.cdf +0 -0
  219. imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-species_20240429_v001.cdf +0 -0
  220. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-angular_20240429_v001.cdf +0 -0
  221. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-priority_20240429_v001.cdf +0 -0
  222. imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-species_20240429_v001.cdf +0 -0
  223. imap_processing/tests/codice/test_codice_l0.py +144 -0
  224. imap_processing/tests/codice/test_codice_l1a.py +187 -0
  225. imap_processing/tests/codice/test_codice_l1b.py +60 -0
  226. imap_processing/tests/codice/test_decompress.py +50 -0
  227. imap_processing/tests/conftest.py +372 -0
  228. imap_processing/tests/glows/direct_events_validation_data_l1a.csv +5704 -0
  229. imap_processing/tests/glows/glows_test_packet_20110921_v01.pkts +0 -0
  230. imap_processing/tests/glows/test_glows_decom.py +133 -0
  231. imap_processing/tests/glows/test_glows_l1a_cdf.py +85 -0
  232. imap_processing/tests/glows/test_glows_l1a_data.py +510 -0
  233. imap_processing/tests/glows/test_glows_l1b.py +348 -0
  234. imap_processing/tests/glows/test_glows_l1b_data.py +70 -0
  235. imap_processing/tests/hi/__init__.py +0 -0
  236. imap_processing/tests/hi/conftest.py +133 -0
  237. imap_processing/tests/hi/test_data/l0/20231030_H45_APP_NHK.bin +0 -0
  238. imap_processing/tests/hi/test_data/l0/20231030_H45_APP_NHK.csv +201 -0
  239. imap_processing/tests/hi/test_data/l0/20231030_H45_SCI_CNT.bin +0 -0
  240. imap_processing/tests/hi/test_data/l0/20231030_H45_SCI_DE.bin +0 -0
  241. imap_processing/tests/hi/test_data/l0/README.txt +54 -0
  242. imap_processing/tests/hi/test_decom.py +55 -0
  243. imap_processing/tests/hi/test_hi_l1b.py +31 -0
  244. imap_processing/tests/hi/test_hi_l1c.py +69 -0
  245. imap_processing/tests/hi/test_l1a.py +96 -0
  246. imap_processing/tests/hi/test_l1a_sci_de.py +72 -0
  247. imap_processing/tests/hi/test_utils.py +15 -0
  248. imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1251.pkts +0 -0
  249. imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1252.pkts +0 -0
  250. imap_processing/tests/hit/__init__.py +0 -0
  251. imap_processing/tests/hit/test_data/imap_hit_l0_hk_20100105_v001.pkts +0 -0
  252. imap_processing/tests/hit/test_data/sci_sample.ccsds +0 -0
  253. imap_processing/tests/hit/test_hit_decom.py +230 -0
  254. imap_processing/tests/hit/test_hit_l1a.py +224 -0
  255. imap_processing/tests/hit/test_hit_l1b.py +52 -0
  256. imap_processing/tests/hit/validation_data/hskp_sample_raw.csv +88 -0
  257. imap_processing/tests/ialirt/__init__.py +0 -0
  258. imap_processing/tests/ialirt/test_data/l0/IALiRT Raw Packet Telemetry.txt +33 -0
  259. imap_processing/tests/ialirt/test_data/l0/hit_ialirt_sample.ccsds +0 -0
  260. imap_processing/tests/ialirt/test_data/l0/hit_ialirt_sample.csv +1001 -0
  261. imap_processing/tests/ialirt/unit/__init__.py +0 -0
  262. imap_processing/tests/ialirt/unit/test_decom_ialirt.py +94 -0
  263. imap_processing/tests/ialirt/unit/test_process_hit.py +226 -0
  264. imap_processing/tests/idex/__init__.py +0 -0
  265. imap_processing/tests/idex/conftest.py +22 -0
  266. imap_processing/tests/idex/imap_idex_l0_raw_20230725_v001.pkts +0 -0
  267. imap_processing/tests/idex/impact_14_tof_high_data.txt +8189 -0
  268. imap_processing/tests/idex/test_idex_l0.py +45 -0
  269. imap_processing/tests/idex/test_idex_l1a.py +91 -0
  270. imap_processing/tests/lo/__init__.py +0 -0
  271. imap_processing/tests/lo/test_binary_string.py +21 -0
  272. imap_processing/tests/lo/test_bit_decompression.py +39 -0
  273. imap_processing/tests/lo/test_cdfs/imap_lo_l0_raw_20240627_v001.pkts +0 -0
  274. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_de_20100101_v001.cdf +0 -0
  275. imap_processing/tests/lo/test_cdfs/imap_lo_l1a_spin_20100101_v001.cdf +0 -0
  276. imap_processing/tests/lo/test_cdfs/imap_lo_l1b_de_20100101_v001.cdf +0 -0
  277. imap_processing/tests/lo/test_lo_l1a.py +66 -0
  278. imap_processing/tests/lo/test_lo_l1b.py +74 -0
  279. imap_processing/tests/lo/test_lo_l1c.py +66 -0
  280. imap_processing/tests/lo/test_science_counts.py +41 -0
  281. imap_processing/tests/lo/test_science_direct_events.py +209 -0
  282. imap_processing/tests/lo/test_star_sensor.py +35 -0
  283. imap_processing/tests/mag/imap_mag_l1a_burst-magi_20231025_v001.cdf +0 -0
  284. imap_processing/tests/mag/mag_l0_test_data.pkts +0 -0
  285. imap_processing/tests/mag/mag_l0_test_output.csv +37 -0
  286. imap_processing/tests/mag/mag_l1_test_data.pkts +0 -0
  287. imap_processing/tests/mag/mag_l1a_test_output.csv +97 -0
  288. imap_processing/tests/mag/test_mag_decom.py +117 -0
  289. imap_processing/tests/mag/test_mag_l1a.py +856 -0
  290. imap_processing/tests/mag/test_mag_l1b.py +77 -0
  291. imap_processing/tests/mag/test_mag_l1c.py +40 -0
  292. imap_processing/tests/spice/__init__.py +0 -0
  293. imap_processing/tests/spice/test_data/imap_ena_sim_metakernel.template +4 -0
  294. imap_processing/tests/spice/test_data/imap_science_0001.tf +171 -0
  295. imap_processing/tests/spice/test_data/imap_sclk_0000.tsc +156 -0
  296. imap_processing/tests/spice/test_data/imap_sim_ck_2hr_2secsampling_with_nutation.bc +0 -0
  297. imap_processing/tests/spice/test_data/imap_simple_metakernel.template +3 -0
  298. imap_processing/tests/spice/test_data/imap_spk_demo.bsp +0 -0
  299. imap_processing/tests/spice/test_data/imap_wkcp.tf +1806 -0
  300. imap_processing/tests/spice/test_data/naif0012.tls +150 -0
  301. imap_processing/tests/spice/test_data/sim_1yr_imap_attitude.bc +0 -0
  302. imap_processing/tests/spice/test_data/sim_1yr_imap_pointing_frame.bc +0 -0
  303. imap_processing/tests/spice/test_geometry.py +214 -0
  304. imap_processing/tests/spice/test_kernels.py +272 -0
  305. imap_processing/tests/spice/test_time.py +35 -0
  306. imap_processing/tests/swapi/__init__.py +0 -0
  307. imap_processing/tests/swapi/conftest.py +16 -0
  308. imap_processing/tests/swapi/l0_data/__init__.py +0 -0
  309. imap_processing/tests/swapi/l0_data/imap_swapi_l0_raw_20231012_v001.pkts +0 -0
  310. imap_processing/tests/swapi/l0_validation_data/__init__.py +0 -0
  311. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_AUT_20231012_125245.csv +124 -0
  312. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_HK_20231012_125245.csv +98 -0
  313. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_MG_20231012_125245.csv +9 -0
  314. imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_SCI_20231012_125245.csv +72 -0
  315. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_AUT_20231012_125245.csv +124 -0
  316. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_HK_20231012_125245.csv +98 -0
  317. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_MG_20231012_125245.csv +9 -0
  318. imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_SCI_20231012_125245.csv +72 -0
  319. imap_processing/tests/swapi/test_swapi_decom.py +135 -0
  320. imap_processing/tests/swapi/test_swapi_l1.py +354 -0
  321. imap_processing/tests/swapi/test_swapi_l2.py +21 -0
  322. imap_processing/tests/swe/__init__.py +0 -0
  323. imap_processing/tests/swe/conftest.py +35 -0
  324. imap_processing/tests/swe/decompressed/20230927173238_4th_quarter_decompressed.csv +181 -0
  325. imap_processing/tests/swe/decompressed/20230927173253_1st_quarter_decompressed.csv +181 -0
  326. imap_processing/tests/swe/decompressed/20230927173308_2nd_quarter_decompressed.csv +181 -0
  327. imap_processing/tests/swe/decompressed/20230927173323_3rd_quarter_decompressed.csv +181 -0
  328. imap_processing/tests/swe/l0_data/2024051010_SWE_SCIENCE_packet.bin +0 -0
  329. imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_SCIENCE_20240510_092742.csv +544 -0
  330. imap_processing/tests/swe/l0_validation_data/idle_export_raw.SWE_SCIENCE_20240510_092742.csv +363 -0
  331. imap_processing/tests/swe/test_swe_l1a.py +12 -0
  332. imap_processing/tests/swe/test_swe_l1a_science.py +129 -0
  333. imap_processing/tests/swe/test_swe_l1b.py +61 -0
  334. imap_processing/tests/swe/test_swe_l1b_science.py +65 -0
  335. imap_processing/tests/test_cli.py +229 -0
  336. imap_processing/tests/test_decom.py +66 -0
  337. imap_processing/tests/test_quality_flags.py +71 -0
  338. imap_processing/tests/test_utils.py +107 -0
  339. imap_processing/tests/ultra/__init__.py +0 -0
  340. imap_processing/tests/ultra/test_data/l0/FM45_40P_Phi28p5_BeamCal_LinearScan_phi28.50_theta-0.00_20240207T102740.CCSDS +0 -0
  341. imap_processing/tests/ultra/test_data/l0/FM45_7P_Phi0.0_BeamCal_LinearScan_phi0.04_theta-0.01_20230821T121304.CCSDS +0 -0
  342. imap_processing/tests/ultra/test_data/l0/FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.CCSDS +0 -0
  343. imap_processing/tests/ultra/test_data/l0/Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.CCSDS +0 -0
  344. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_auxdata_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +24 -0
  345. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_enaphxtofhangimg_FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.csv +105 -0
  346. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultraimgrates_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +24 -0
  347. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimg_withFSWcalcs_FM45_40P_Phi28p5_BeamCal_LinearScan_phi2850_theta-000_20240207T102740.csv +3314 -0
  348. imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimgevent_FM45_7P_Phi00_BeamCal_LinearScan_phi004_theta-001_20230821T121304.csv +702 -0
  349. imap_processing/tests/ultra/unit/__init__.py +0 -0
  350. imap_processing/tests/ultra/unit/conftest.py +210 -0
  351. imap_processing/tests/ultra/unit/test_decom_apid_880.py +98 -0
  352. imap_processing/tests/ultra/unit/test_decom_apid_881.py +50 -0
  353. imap_processing/tests/ultra/unit/test_decom_apid_883.py +44 -0
  354. imap_processing/tests/ultra/unit/test_decom_apid_896.py +104 -0
  355. imap_processing/tests/ultra/unit/test_lookup_utils.py +68 -0
  356. imap_processing/tests/ultra/unit/test_ultra_l1a.py +338 -0
  357. imap_processing/tests/ultra/unit/test_ultra_l1b.py +122 -0
  358. imap_processing/tests/ultra/unit/test_ultra_l1b_annotated.py +57 -0
  359. imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py +342 -0
  360. imap_processing/tests/ultra/unit/test_ultra_l1c.py +104 -0
  361. imap_processing/tests/ultra/unit/test_ultra_l1c_pset_bins.py +35 -0
  362. imap_processing/ultra/__init__.py +1 -0
  363. imap_processing/ultra/constants.py +60 -0
  364. imap_processing/ultra/l0/__init__.py +0 -0
  365. imap_processing/ultra/l0/decom_tools.py +281 -0
  366. imap_processing/ultra/l0/decom_ultra.py +278 -0
  367. imap_processing/ultra/l0/ultra_utils.py +326 -0
  368. imap_processing/ultra/l1a/__init__.py +0 -0
  369. imap_processing/ultra/l1a/ultra_l1a.py +319 -0
  370. imap_processing/ultra/l1b/badtimes.py +26 -0
  371. imap_processing/ultra/l1b/cullingmask.py +26 -0
  372. imap_processing/ultra/l1b/de.py +59 -0
  373. imap_processing/ultra/l1b/extendedspin.py +45 -0
  374. imap_processing/ultra/l1b/lookup_utils.py +165 -0
  375. imap_processing/ultra/l1b/ultra_l1b.py +65 -0
  376. imap_processing/ultra/l1b/ultra_l1b_annotated.py +54 -0
  377. imap_processing/ultra/l1b/ultra_l1b_extended.py +764 -0
  378. imap_processing/ultra/l1c/histogram.py +36 -0
  379. imap_processing/ultra/l1c/pset.py +36 -0
  380. imap_processing/ultra/l1c/ultra_l1c.py +52 -0
  381. imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +54 -0
  382. imap_processing/ultra/lookup_tables/EgyNorm.mem.csv +32769 -0
  383. imap_processing/ultra/lookup_tables/FM45_Startup1_ULTRA_IMGPARAMS_20240719.csv +2 -0
  384. imap_processing/ultra/lookup_tables/ultra45_back-pos-luts.csv +4097 -0
  385. imap_processing/ultra/lookup_tables/ultra45_tdc_norm.csv +2050 -0
  386. imap_processing/ultra/lookup_tables/ultra90_back-pos-luts.csv +4097 -0
  387. imap_processing/ultra/lookup_tables/ultra90_tdc_norm.csv +2050 -0
  388. imap_processing/ultra/lookup_tables/yadjust.csv +257 -0
  389. imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +547 -0
  390. imap_processing/ultra/packet_definitions/__init__.py +0 -0
  391. imap_processing/ultra/utils/__init__.py +0 -0
  392. imap_processing/ultra/utils/ultra_l1_utils.py +50 -0
  393. imap_processing/utils.py +413 -0
  394. imap_processing-0.6.0.dist-info/LICENSE +21 -0
  395. imap_processing-0.6.0.dist-info/METADATA +107 -0
  396. imap_processing-0.6.0.dist-info/RECORD +398 -0
  397. imap_processing-0.6.0.dist-info/WHEEL +4 -0
  398. imap_processing-0.6.0.dist-info/entry_points.txt +4 -0
@@ -0,0 +1,466 @@
1
+ # Based on : https://spdf.gsfc.nasa.gov/istp_guide/vattributes.html
2
+ # HERMES CDF Format Guide
3
+ attribute_key:
4
+ # ===== EPOCH-ONLY VARIABLE ATTRIBUTES =====
5
+ TIME_BASE:
6
+ description: >
7
+ fixed (0AD, 1900, 1970 (POSIX), J2000 (used by CDF_TIME_TT2000),
8
+ 4714 BC (Julian)) or flexible (provider-defined)
9
+ required: true # NOT Required in ISTP Guide
10
+ overwrite: false
11
+ valid_values: null
12
+ alternate: null
13
+ RESOLUTION:
14
+ description: >
15
+ Using ISO8601 relative time format, for example: "1s" = 1 second.
16
+ Resolution provides the smallest change in time that is measured.
17
+ required: true # NOT Required in ISTP Guide
18
+ overwrite: false
19
+ valid_values: null
20
+ alternate: null
21
+ TIME_SCALE:
22
+ description: >
23
+ TT (same as TDT, used by CDF_TIME_TT2000), TAI (same as IAT, TT-32.184s),
24
+ UTC (includes leap seconds), TDB (same as SPICE ET), EME1950 [default: UTC]
25
+ required: true # NOT Required in ISTP Guide
26
+ overwrite: false
27
+ valid_values: null
28
+ alternate: null
29
+ REFERENCE_POSITION:
30
+ description: >
31
+ Topocenter (local), Geocenter , rotating Earth geoid (used by CDF_TIME_TT2000).
32
+ Reference_Position is optional metadata to account for time variance with position in
33
+ the gravity wells and with relative velocity. While we could use a combined
34
+ TimeSystem attribute that defines mission-specific time scales where needed, such as
35
+ UTC-at-STEREO-B, it's cleaner to keep them separate as Time_Scale=UTC and
36
+ Reference_Position=STEREO-B.
37
+ required: true # NOT Required in ISTP Guide
38
+ overwrite: false
39
+ valid_values: null
40
+ alternate: null
41
+ LEAP_SECONDS_INCLUDED:
42
+ description: >
43
+ comma-delimited list (within brackets) of leap seconds included in the form of a lists
44
+ of ISO8601 times when each leap second was added, appended with the size of the leap
45
+ second in ISO8601 relative time (+/- time, most commonly: "+1s") [default: standard
46
+ list of leap seconds up to time of data]. Leap_Seconds_Included is needed to account
47
+ for time scales that don't have all 34 (in 2009) leap seconds and for the clocks in
48
+ various countries that started using leap seconds at different times. The full list is
49
+ required to handle the equally or more common case where a time scale starts at a
50
+ pecific UTC but continues on without leap seconds in TAI mode; this is basically what
51
+ missions that don't add leap seconds are doing.
52
+ $ cat tai-utc.dat | awk 'ORS="," { val = $7 - prev } {prev = $7} { print $1$2"01+" val "s" }'
53
+ required: false # NOT Required in ISTP Guide
54
+ overwrite: false
55
+ valid_values: null
56
+ alternate: null
57
+ ABSOLUTE_ERROR:
58
+ description: >
59
+ Absolute or systematic error, in same units as Units attribute.
60
+ required: false # NOT Required in ISTP Guide
61
+ overwrite: false
62
+ valid_values: null
63
+ alternate: null
64
+ RELATIVE_ERROR:
65
+ description: >
66
+ Relative or random error, in same units as Units attribute - to specify the accuracy
67
+ of the time stamps relative to each other. This is usually much smaller than Absolute_Error.
68
+ required: false # NOT Required in ISTP Guide
69
+ overwrite: false
70
+ valid_values: null
71
+ alternate: null
72
+ BIN_LOCATION:
73
+ description: >
74
+ relative position of time stamp to the data measurement bin, with 0.0 at the beginning
75
+ of time bin and 1.0 at the end. Default is 0.5 for the time at the center of the data
76
+ measurement. Since clock readings are usually truncated, the real value may be closer to 0.0.
77
+ required: false # NOT Required in ISTP Guide
78
+ overwrite: false
79
+ valid_values: null
80
+ alternate: null
81
+ # ===== DATA VARIABLE ATTRIBUTES =====
82
+ CATDESC:
83
+ description: >
84
+ This is a human readable description of the data variable. Generally, this is an 80-
85
+ character string which describes the variable and what it depends on.
86
+ required: true
87
+ overwrite: false
88
+ valid_values: null
89
+ alternate: null
90
+ DELTA_MINUS_VAR:
91
+ description: >
92
+ DEPEND_i variables are typically physical values along the corresponding i-th
93
+ dimension of the parent data variable, such as energy levels or spectral frequencies. The
94
+ discreet set of values are located with respect to the sampling bin by
95
+ DELTA_PLUS_VAR and DELTA_MINUS_VAR, which hold the variable name
96
+ containing the distance from the value to the bin edge. It is strongly recommended that
97
+ HERMES DEPEND_i variables include DELTA_PLUS_VAR and
98
+ DELTA_MINUS_VAR attributes that point to the appropriate variable(s) located
99
+ elsewhere in the CDF file.
100
+ required: false # NOT Required in ISTP Guide
101
+ overwrite: false
102
+ valid_values: null
103
+ alternate: null
104
+ DELTA_PLUS_VAR:
105
+ description: >
106
+ DEPEND_i variables are typically physical values along the corresponding i-th
107
+ dimension of the parent data variable, such as energy levels or spectral frequencies. The
108
+ discreet set of values are located with respect to the sampling bin by
109
+ DELTA_PLUS_VAR and DELTA_MINUS_VAR, which hold the variable name
110
+ containing the distance from the value to the bin edge. It is strongly recommended that
111
+ HERMES DEPEND_i variables include DELTA_PLUS_VAR and
112
+ DELTA_MINUS_VAR attributes that point to the appropriate variable(s) located
113
+ elsewhere in the CDF file.
114
+ required: false # NOT Required in ISTP Guide
115
+ overwrite: false
116
+ valid_values: null
117
+ alternate: null
118
+ DEPEND_0:
119
+ description: >
120
+ Explicitly ties a data variable to the time variable on which it depends. All variables
121
+ which change with time must have a DEPEND_0 attribute defined. See section 5.2.1
122
+ which specifies the HERMES usage of DEPEND_0.
123
+ required: false
124
+ overwrite: false
125
+ valid_values: null
126
+ alternate: null
127
+ DEPEND_i: # For i'th dimensional data variables
128
+ description: >
129
+ Ties a dimensional data variable to a SUPPORT_DATA variable on which the i-th
130
+ dimension of the data variable depends. The number of DEPEND attributes must match
131
+ the dimensionality of the variable, i.e., a one-dimensional variable must have a
132
+ DEPEND_1, a two-dimensional variable must have a DEPEND_1 and a DEPEND_2
133
+ attribute, etc. The value of the attribute must be a variable in the same CDF data set. It is
134
+ strongly recommended that DEPEND_i variables hold values in physical units.
135
+ DEPEND_i variables also require their own attributes, as described in section 5.1.4.
136
+ required: false
137
+ overwrite: false
138
+ valid_values: null
139
+ alternate: null
140
+ DISPLAY_TYPE:
141
+ description: >
142
+ This tells automated software, such as CDAWeb, how the data should be displayed.
143
+ required: true
144
+ overwrite: false
145
+ valid_values:
146
+ time_series
147
+ time_series>noerrorbars
148
+ spectrogram
149
+ stack_plot
150
+ image
151
+ alternate: null
152
+ FIELDNAM:
153
+ description: >
154
+ A shortened version of CATDESC which can be used to label a plot axis or as a data
155
+ listing heading. This is a string, up to ~30 characters in length.
156
+ required: true
157
+ overwrite: false
158
+ valid_values: null
159
+ alternate: null
160
+ FILLVAL:
161
+ description: >
162
+ Identifies the fill value used where data values are known to be bad or missing.
163
+ FILLVAL is required for time-varying variables. Fill data are always non-valid data. The
164
+ ISTP standard fill values are listed in Table 5-4.
165
+ required: true
166
+ overwrite: false
167
+ valid_values: null
168
+ alternate: null
169
+ FORMAT: # NOTE Only one of FORMAT or FORM_PTR should be present
170
+ description: >
171
+ This field allows software to properly format the associated data when displayed on a
172
+ screen or output to a file. Format can be specified using either Fortran or C format codes.
173
+ For instance, "F10.3" indicates that the data should be displayed across 10 characters
174
+ where 3 of those characters are to the right of the decimal. For a description of FORTRAN
175
+ formatting codes see the docs here:
176
+ https://docs.oracle.com/cd/E19957-01/805-4939/z40007437a2e/index.html
177
+ required: true
178
+ overwrite: false
179
+ valid_values: null
180
+ alternate: FORM_PTR
181
+ FORM_PTR:
182
+ description: >
183
+ The value of this field is a variable which stores the character string that represents the
184
+ desired output format for the associated data.
185
+ required: false
186
+ overwrite: false
187
+ valid_values: null
188
+ alternate: FORMAT
189
+ LABLAXIS: # NOTE Only one of LABLAXIS or LABL_PTR_i should be present
190
+ description: >
191
+ Used to label a plot axis or to provide a heading for a data listing. This field is generally
192
+ 6-10 characters. Only one of LABLAXIS or LABL_PTR_i should be present.
193
+ required: true
194
+ overwrite: false
195
+ valid_values: null
196
+ alternate: LABL_PTR_1
197
+ LABL_PTR_i:
198
+ description: >
199
+ Used to label a dimensional variable when one value of LABLAXIS is not sufficient to
200
+ describe the variable or to label all the axes. LABL_PTR_i is used instead of
201
+ LABLAXIS, where i can take on any value from 1 to n where n is the total number of
202
+ dimensions of the original variable. The value of LABL_PTR_1 is a variable which will
203
+ contain the short character strings which describe the first dimension of the original
204
+ variable. The value of the attribute must be a variable in the same CDF data set and is
205
+ generally 6-10 characters. Only one of LABLAXIS or LABL_PTR_i should be present.
206
+ required: false
207
+ overwrite: false
208
+ valid_values: null
209
+ alternate: LABLAXIS
210
+ SI_CONVERSION:
211
+ description: >
212
+ The conversion factor to SI units. This is the factor that the variable must be multiplied
213
+ by in order to convert it to generic SI units. This parameter contains two text fields
214
+ separated by the ">" delimiter. The first component is the conversion factor and the
215
+ second is the standard SI unit. Units are defined according to their standard SI symbols
216
+ (ie. Tesla = T, Newtons = N, Meters = m, etc.) For data variables that are inherently
217
+ unitless, and thus lack a conversion factor, this data attribute will be " > " where ' ' is
218
+ a blank space and the quotation marks are not included. Units which are not conveniently
219
+ transformed into SI should follow the blank syntax " > " described above.
220
+ required: false # NOT Required in ISTP Guide
221
+ overwrite: false
222
+ valid_values: null
223
+ alternate: null
224
+ UNITS: # NOTE Only one of UNITS or UNIT_PTR should be present
225
+ description: >
226
+ A 6-20 character string that identifies the units of the variable (e.g. nT for magnetic
227
+ field). Use a blank character, rather than "None" or "unitless", for variables that have no
228
+ units (e.g., a ratio or a direction cosine). An active list of HERMES standard UNITS and
229
+ their SI_CONVERSIONs is maintained on the mission web-pages at
230
+ https://lasp.colorado.edu/galaxy/display/HERMES/Units+of+Measure, accessible via the
231
+ HERMES Science Working Team pages. Those pages also lay out the rules for
232
+ formatting the UNITS string.
233
+ required: true
234
+ overwrite: false
235
+ valid_values: null
236
+ alternate: UNIT_PTR
237
+ UNIT_PTR:
238
+ description: >
239
+ The value of this field is a variable which stores short character strings which identify the
240
+ units of the variable. Use a blank character, rather than "None" or "unitless", for
241
+ variables that have no units (e.g., a ratio or a direction cosine). The value of this attribute
242
+ must be a variable in the same CDF data set.
243
+ required: false
244
+ overwrite: false
245
+ valid_values: null
246
+ alternate: UNITS
247
+ VALIDMIN:
248
+ description: >
249
+ The minimum value for a particular variable that is expected over the lifetime of the
250
+ mission. Used by application software to filter out values that are out of range. The
251
+ value must match the data type of the variable.
252
+ required: true
253
+ overwrite: false
254
+ valid_values: null
255
+ alternate: null
256
+ VALIDMAX:
257
+ description: >
258
+ The maximum value for a particular variable that is expected over the lifetime of the
259
+ mission. Used by application software to filter out values that are out of range. The
260
+ value must match the data type of the variable.
261
+ required: true
262
+ overwrite: false
263
+ valid_values: null
264
+ alternate: null
265
+ VAR_TYPE:
266
+ description: >
267
+ Used in CDAWeb to indicate if the data should be used directly by users.
268
+ required: true
269
+ overwrite: false
270
+ valid_values:
271
+ data
272
+ support_data
273
+ metadata
274
+ ignore_data
275
+ alternate: null
276
+ COORDINATE_SYSTEM:
277
+ description: >
278
+ All variables for which the values are dependent on the system of coordinates are
279
+ strongly recommended to have this attribute. This includes both full vectors, tensors, etc.
280
+ or individual values, e.g. of an angle with respect to some axis. The attribute is a text
281
+ string which takes the form: "XXX[>optional long name]"
282
+ required: false # NOT Required in HERMES Format Guide
283
+ overwrite: false
284
+ valid_values: null
285
+ alternate: null
286
+ TENSOR_ORDER:
287
+ description: >
288
+ All variables which hold physical vectors, tensors, etc., or sub-parts thereof, are strongly
289
+ recommended to have their tensorial properties held by this numerical value. Vectors
290
+ have TENSOR_ORDER=1, pressure tensors have TENSOR_ORDER=2, etc. Variables
291
+ which hold single components or sub-parts of a vector or tensor, e.g., the x-component of
292
+ velocity or the three diagonal elements of a tensor, use this attribute to establish the
293
+ underlying object from which they are extracted. TENSOR_ORDER is a number, usually
294
+ held as a CDF_INT4, rather than a character string.
295
+ required: false # NOT Required in HERMES Format Guide
296
+ overwrite: false
297
+ valid_values: null
298
+ alternate: null
299
+ REPRESENTATION_i:
300
+ description: >
301
+ This strongly recommended attribute holds the way vector or tensor variables are held,
302
+ e.g., as Cartesian or polar forms, and their sequence order in the dimension i in which
303
+ they are held. Cartesians are indicated by x,y,z; polar coordinates by r (magnitude), t
304
+ (theta - from z-axis), p (phi - longitude or azimuth around z-axis from x axis), l (lambda
305
+ = latitude). Examples follow.
306
+ required: false # NOT Required in HERMES Format Guide
307
+ overwrite: false
308
+ valid_values: null
309
+ alternate: null
310
+ OPERATOR_TYPE:
311
+ description: >
312
+ This has been introduced to describe HERMES quaternions (see Section 5.2 below). It
313
+ has allowed values "UNIT_QUATERNION" or "ROTATION_MATRIX" although other
314
+ values could be added. Unit quaternions correspond to pure spatial rotations.
315
+ required: false # NOT Required in HERMES Format Guide
316
+ overwrite: false
317
+ valid_values: null
318
+ alternate: null
319
+ WCSAXES:
320
+ description: >
321
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
322
+ high-dimensional or spectral CDF data variables.
323
+ The value field shall contain a non-negative integer no
324
+ greater than 999, representing the number of axes in the associated
325
+ data array.
326
+ required: false # NOT Required in HERMES Format Guide
327
+ overwrite: false
328
+ valid_values: null
329
+ alternate: null
330
+ MJDREF:
331
+ description: >
332
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
333
+ high-dimensional or spectral CDF data variables. The value shall contain a floating
334
+ point number representing the reference time position of the time stamps along the
335
+ 0'th axis of the measurement.
336
+ required: false # NOT Required in HERMES Format Guide
337
+ overwrite: false
338
+ valid_values: null
339
+ alternate: null
340
+ TIMEUNIT:
341
+ description: >
342
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
343
+ high-dimensional or spectral CDF data variables. The value shall contain a character
344
+ string giving the units of the time stamps along the 0'th axis of the measurement.
345
+ The TIMEUNIT should match the CUNITi along the time axis of the measurement
346
+ required: false # NOT Required in HERMES Format Guide
347
+ overwrite: false
348
+ valid_values: null
349
+ alternate: null
350
+ TIMEDEL:
351
+ description: >
352
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
353
+ high-dimensional or spectral CDF data variables. The value shall contain a floating
354
+ point number representing the resolution of the time stamps along the 0'th axis of
355
+ the measurement. The TIMEDEL should match the CRDELi along the time axis of the
356
+ measurement.
357
+ required: false # NOT Required in HERMES Format Guide
358
+ overwrite: false
359
+ valid_values: null
360
+ alternate: null
361
+ CNAMEi:
362
+ description: >
363
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
364
+ high-dimensional or spectral CDF data variables. This metadata attribte should be
365
+ used for the i'th dimension (1-based) and reapeated for all WCSAXES dimensions.
366
+ The value shall contain a charachter string represnting the name of the i'th axis.
367
+ The name is used for comment/documentation purposes only and is not used as a part
368
+ of the i'th axis coordinate transformations.
369
+ required: false # NOT Required in HERMES Format Guide
370
+ overwrite: false
371
+ valid_values: null
372
+ alternate: null
373
+ CTYPEi:
374
+ description: >
375
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
376
+ high-dimensional or spectral CDF data variables. This metadata attribte should be
377
+ used for the i'th dimension (1-based) and reapeated for all WCSAXES dimensions.
378
+ The value field shall contain a character string, giving
379
+ the name of the coordinate represented by axis i.
380
+ required: false # NOT Required in HERMES Format Guide
381
+ overwrite: false
382
+ valid_values: null
383
+ alternate: null
384
+ CUNITi:
385
+ description: >
386
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
387
+ high-dimensional or spectral CDF data variables. This metadata attribte should be
388
+ used for the i'th dimension (1-based) and reapeated for all WCSAXES dimensions.
389
+ The value shall be the units along axis i, compatible with CTYPEi to be used for
390
+ scaling and coordinate transformations along the i'th axis.
391
+ required: false # NOT Required in HERMES Format Guide
392
+ overwrite: false
393
+ valid_values: null
394
+ alternate: null
395
+ CRPIXi:
396
+ description: >
397
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
398
+ high-dimensional or spectral CDF data variables. This metadata attribte should be
399
+ used for the i'th dimension (1-based) and reapeated for all WCSAXES dimensions.
400
+ The value field shall contain a floating point number,
401
+ identifying the location of a reference point along axis i, in units of
402
+ the axis index. This value is based upon a counter that runs from 1 to
403
+ NAXISn with an increment of 1 per pixel. The reference point value
404
+ need not be that for the center of a pixel nor lie within the actual
405
+ data array. Use comments to indicate the location of the index point
406
+ relative to the pixel.
407
+ required: false # NOT Required in HERMES Format Guide
408
+ overwrite: false
409
+ valid_values: null
410
+ alternate: null
411
+ CRVALi:
412
+ description: >
413
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
414
+ high-dimensional or spectral CDF data variables. This metadata attribte should be
415
+ used for the i'th dimension (1-based) and reapeated for all WCSAXES dimensions.
416
+ The value field shall contain a floating point number,
417
+ giving the value of the coordinate specified by the CTYPEn keyword at
418
+ the reference point CRPIXi.
419
+ required: false # NOT Required in HERMES Format Guide
420
+ overwrite: false
421
+ valid_values: null
422
+ alternate: null
423
+ CDELTi:
424
+ description: >
425
+ This is a FITS WCS Keyword being repurposed for handling WCS transformations with
426
+ high-dimensional or spectral CDF data variables. This metadata attribte should be
427
+ used for the i'th dimension (1-based) and reapeated for all WCSAXES dimensions.
428
+ The value field shall contain a floating point number
429
+ giving the partial derivative of the coordinate specified by the CTYPEi
430
+ keywords with respect to the pixel index, evaluated at the reference
431
+ point CRPIXi, in units of the coordinate specified by the CTYPEi
432
+ keyword.
433
+ required: false # NOT Required in HERMES Format Guide
434
+ overwrite: false
435
+ valid_values: null
436
+ alternate: null
437
+ data:
438
+ - CATDESC
439
+ - DEPEND_0
440
+ - DISPLAY_TYPE
441
+ - FIELDNAM
442
+ - FILLVAL
443
+ - FORMAT
444
+ - LABLAXIS
445
+ - SI_CONVERSION
446
+ - UNITS
447
+ - VALIDMIN
448
+ - VALIDMAX
449
+ - VAR_TYPE
450
+ support_data:
451
+ - CATDESC
452
+ - FIELDNAM
453
+ - FILLVAL
454
+ - FORMAT
455
+ - LABLAXIS
456
+ - SI_CONVERSION
457
+ - UNITS
458
+ - VALIDMIN
459
+ - VALIDMAX
460
+ - VAR_TYPE
461
+ metadata:
462
+ - CATDESC
463
+ - FIELDNAM
464
+ - FILLVAL
465
+ - FORMAT
466
+ - VAR_TYPE