imap-processing 0.7.0__py3-none-any.whl → 0.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of imap-processing might be problematic. Click here for more details.
- imap_processing/__init__.py +1 -1
- imap_processing/_version.py +2 -2
- imap_processing/ccsds/excel_to_xtce.py +34 -2
- imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +1 -1
- imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +145 -30
- imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +36 -36
- imap_processing/cdf/config/imap_hi_variable_attrs.yaml +36 -8
- imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +9 -0
- imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +7 -7
- imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +32 -33
- imap_processing/cdf/config/imap_mag_l1_variable_attrs.yaml +24 -28
- imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +1 -0
- imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +133 -78
- imap_processing/cdf/config/imap_variable_schema.yaml +13 -0
- imap_processing/cdf/imap_cdf_manager.py +31 -27
- imap_processing/cli.py +12 -10
- imap_processing/codice/codice_l1a.py +151 -61
- imap_processing/codice/constants.py +1 -1
- imap_processing/codice/decompress.py +4 -9
- imap_processing/codice/utils.py +1 -0
- imap_processing/glows/l1b/glows_l1b.py +3 -3
- imap_processing/glows/l1b/glows_l1b_data.py +59 -37
- imap_processing/glows/l2/glows_l2_data.py +123 -0
- imap_processing/hi/l1a/histogram.py +1 -1
- imap_processing/hi/l1a/science_direct_event.py +1 -1
- imap_processing/hi/l1b/hi_l1b.py +85 -11
- imap_processing/hi/l1c/hi_l1c.py +23 -1
- imap_processing/hi/utils.py +1 -1
- imap_processing/hit/hit_utils.py +221 -0
- imap_processing/hit/l0/constants.py +118 -0
- imap_processing/hit/l0/decom_hit.py +186 -153
- imap_processing/hit/l1a/hit_l1a.py +20 -175
- imap_processing/hit/l1b/hit_l1b.py +33 -153
- imap_processing/idex/idex_l1a.py +10 -9
- imap_processing/lo/l0/decompression_tables/decompression_tables.py +1 -1
- imap_processing/lo/l0/lo_science.py +1 -1
- imap_processing/lo/packet_definitions/lo_xtce.xml +1 -3296
- imap_processing/mag/l0/decom_mag.py +4 -3
- imap_processing/mag/l1a/mag_l1a.py +11 -11
- imap_processing/mag/l1b/mag_l1b.py +89 -7
- imap_processing/spice/geometry.py +126 -4
- imap_processing/swapi/l1/swapi_l1.py +1 -1
- imap_processing/swapi/l2/swapi_l2.py +1 -1
- imap_processing/swe/l1b/swe_l1b_science.py +8 -8
- imap_processing/tests/ccsds/test_data/expected_output.xml +1 -0
- imap_processing/tests/ccsds/test_excel_to_xtce.py +4 -4
- imap_processing/tests/cdf/test_imap_cdf_manager.py +0 -10
- imap_processing/tests/codice/conftest.py +1 -17
- imap_processing/tests/codice/data/imap_codice_l0_raw_20241110_v001.pkts +0 -0
- imap_processing/tests/codice/test_codice_l0.py +8 -2
- imap_processing/tests/codice/test_codice_l1a.py +127 -107
- imap_processing/tests/codice/test_codice_l1b.py +1 -0
- imap_processing/tests/codice/test_decompress.py +7 -7
- imap_processing/tests/conftest.py +54 -15
- imap_processing/tests/glows/conftest.py +6 -0
- imap_processing/tests/glows/test_glows_l1b.py +9 -9
- imap_processing/tests/glows/test_glows_l1b_data.py +9 -9
- imap_processing/tests/glows/test_glows_l2_data.py +0 -0
- imap_processing/tests/hi/test_data/l1a/imap_hi_l1a_45sensor-de_20250415_v000.cdf +0 -0
- imap_processing/tests/hi/test_hi_l1b.py +71 -1
- imap_processing/tests/hi/test_hi_l1c.py +10 -2
- imap_processing/tests/hi/test_utils.py +4 -3
- imap_processing/tests/hit/{test_hit_decom.py → test_decom_hit.py} +84 -35
- imap_processing/tests/hit/test_hit_l1a.py +2 -197
- imap_processing/tests/hit/test_hit_l1b.py +156 -25
- imap_processing/tests/hit/test_hit_utils.py +218 -0
- imap_processing/tests/idex/conftest.py +1 -1
- imap_processing/tests/idex/imap_idex_l0_raw_20231214_v001.pkts +0 -0
- imap_processing/tests/idex/impact_14_tof_high_data.txt +4444 -4444
- imap_processing/tests/idex/test_idex_l0.py +3 -3
- imap_processing/tests/idex/test_idex_l1a.py +1 -1
- imap_processing/tests/lo/test_lo_science.py +2 -2
- imap_processing/tests/mag/imap_mag_l1a_norm-magi_20251017_v001.cdf +0 -0
- imap_processing/tests/mag/test_mag_l1b.py +59 -3
- imap_processing/tests/spice/test_data/imap_ena_sim_metakernel.template +3 -1
- imap_processing/tests/spice/test_geometry.py +84 -4
- imap_processing/tests/swe/conftest.py +33 -0
- imap_processing/tests/swe/l1_validation/swe_l0_unpacked-data_20240510_v001_VALIDATION_L1B_v3.dat +4332 -0
- imap_processing/tests/swe/test_swe_l1b.py +29 -8
- imap_processing/tests/test_utils.py +1 -1
- imap_processing/tests/ultra/test_data/l1/dps_exposure_helio_45_E12.cdf +0 -0
- imap_processing/tests/ultra/test_data/l1/dps_exposure_helio_45_E24.cdf +0 -0
- imap_processing/tests/ultra/unit/test_de.py +108 -0
- imap_processing/tests/ultra/unit/test_ultra_l1b.py +27 -3
- imap_processing/tests/ultra/unit/test_ultra_l1b_annotated.py +31 -10
- imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py +21 -11
- imap_processing/tests/ultra/unit/test_ultra_l1c_pset_bins.py +9 -44
- imap_processing/ultra/constants.py +8 -3
- imap_processing/ultra/l1b/de.py +174 -30
- imap_processing/ultra/l1b/ultra_l1b_annotated.py +24 -10
- imap_processing/ultra/l1b/ultra_l1b_extended.py +21 -14
- imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +70 -119
- {imap_processing-0.7.0.dist-info → imap_processing-0.8.0.dist-info}/METADATA +15 -14
- {imap_processing-0.7.0.dist-info → imap_processing-0.8.0.dist-info}/RECORD +98 -113
- imap_processing/cdf/cdf_attribute_manager.py +0 -322
- imap_processing/cdf/config/shared/default_global_cdf_attrs_schema.yaml +0 -246
- imap_processing/cdf/config/shared/default_variable_cdf_attrs_schema.yaml +0 -466
- imap_processing/hit/l0/data_classes/housekeeping.py +0 -240
- imap_processing/hit/l0/data_classes/science_packet.py +0 -259
- imap_processing/hit/l0/utils/hit_base.py +0 -57
- imap_processing/tests/cdf/shared/default_global_cdf_attrs_schema.yaml +0 -246
- imap_processing/tests/cdf/shared/default_variable_cdf_attrs_schema.yaml +0 -466
- imap_processing/tests/cdf/test_cdf_attribute_manager.py +0 -353
- imap_processing/tests/codice/data/imap_codice_l0_hi-counters-aggregated_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_hi-counters-singles_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_hi-omni_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_hi-pha_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_hi-sectored_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_hskp_20100101_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-counters-aggregated_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-counters-singles_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-angular_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-priority_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-nsw-species_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-pha_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-sw-angular_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-sw-priority_20240429_v001.pkts +0 -0
- imap_processing/tests/codice/data/imap_codice_l0_lo-sw-species_20240429_v001.pkts +0 -0
- imap_processing/tests/idex/imap_idex_l0_raw_20230725_v001.pkts +0 -0
- imap_processing/tests/mag/imap_mag_l1a_burst-magi_20231025_v001.cdf +0 -0
- /imap_processing/tests/hit/test_data/{imap_hit_l0_hk_20100105_v001.pkts → imap_hit_l0_raw_20100105_v001.pkts} +0 -0
- {imap_processing-0.7.0.dist-info → imap_processing-0.8.0.dist-info}/LICENSE +0 -0
- {imap_processing-0.7.0.dist-info → imap_processing-0.8.0.dist-info}/WHEEL +0 -0
- {imap_processing-0.7.0.dist-info → imap_processing-0.8.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"""L0 HIT Science Packet data class."""
|
|
2
|
-
|
|
3
|
-
from dataclasses import InitVar, dataclass
|
|
4
|
-
|
|
5
|
-
import numpy as np
|
|
6
|
-
|
|
7
|
-
from imap_processing.hit.l0.utils.hit_base import HITBase
|
|
8
|
-
|
|
9
|
-
# TODO: add methods to the SciencePacket data class to decom attributes with binary data
|
|
10
|
-
# TODO: add __post_init__ method to SciencePacket data class to handle InitVar
|
|
11
|
-
# attributes
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@dataclass
|
|
15
|
-
class SciencePacket(HITBase):
|
|
16
|
-
"""
|
|
17
|
-
L0 HIT Science Package data.
|
|
18
|
-
|
|
19
|
-
This data class handles the decommutation of the HIT Science Packet
|
|
20
|
-
data.
|
|
21
|
-
|
|
22
|
-
Attributes
|
|
23
|
-
----------
|
|
24
|
-
SHCOARSE: int
|
|
25
|
-
Spacecraft time
|
|
26
|
-
HDR_UNIT_NUM: int
|
|
27
|
-
Unit ID (e.g. EM)
|
|
28
|
-
HDR_FRAME_VERSION: int
|
|
29
|
-
Frame version number
|
|
30
|
-
HDR_STATUS_BITS: int
|
|
31
|
-
Status bits
|
|
32
|
-
HDR_MINUTE_CNT: int
|
|
33
|
-
Minute counter (minute mod 10 -> subcom for sectored rates)
|
|
34
|
-
LIVE_TIME: int
|
|
35
|
-
Livetime count (270=100%)
|
|
36
|
-
NUM_TRIG: int
|
|
37
|
-
Number of triggers
|
|
38
|
-
NUM_REJECT: int
|
|
39
|
-
Number of rejected events
|
|
40
|
-
NUM_ACC_W_PHA: int
|
|
41
|
-
Number of accepted events with PHA data
|
|
42
|
-
NUM_ACC_NO_PHA: int
|
|
43
|
-
Number of events without PHA data
|
|
44
|
-
NUM_HAZ_TRIG: int
|
|
45
|
-
Number of triggers with hazard flag
|
|
46
|
-
NUM_HAZ_REJECT: int
|
|
47
|
-
Number of rejected events with hazard flag
|
|
48
|
-
NUM_HAZ_ACC_W_PHA: int
|
|
49
|
-
Number of accepted hazard events with PHA data
|
|
50
|
-
NUM_HAZ_ACC_NO_PHA: int
|
|
51
|
-
Number of hazard events without PHA data
|
|
52
|
-
SNGRATES_HG: np.ndarray (int, (64,1))
|
|
53
|
-
Counts since last science frame for PHA (hi gain) formatted as an array
|
|
54
|
-
SNGRATES_LG: np.ndarray (int, (64,1))
|
|
55
|
-
Counts since last science frame for PHA (low gain) formatted as an array
|
|
56
|
-
NREAD: int
|
|
57
|
-
Events read from event fifo
|
|
58
|
-
NHAZARD: int
|
|
59
|
-
Events tagged with hazard flag
|
|
60
|
-
NADSTIM: int
|
|
61
|
-
adc-stim events
|
|
62
|
-
NODD: int
|
|
63
|
-
Odd events
|
|
64
|
-
NODDFIX: int
|
|
65
|
-
Odd events that were fixed in sw
|
|
66
|
-
NMULTI: int
|
|
67
|
-
Events with multiple hits in a single detector (may be crosstalk)
|
|
68
|
-
NMULTIFIX: int
|
|
69
|
-
Multi events that were fixed in sw
|
|
70
|
-
NBADTRAJ: int
|
|
71
|
-
Bad trajectory
|
|
72
|
-
NL2: int
|
|
73
|
-
Events sorted into L12 event category
|
|
74
|
-
NL3: int
|
|
75
|
-
Events sorted into L123 event category
|
|
76
|
-
NL4: int
|
|
77
|
-
Events sorted into L1423 event category
|
|
78
|
-
NPEN: int
|
|
79
|
-
Events sorted into PEN (penetrating) event category
|
|
80
|
-
NFORMAT: int
|
|
81
|
-
Nothing currently goes in this slot
|
|
82
|
-
NASIDE: int
|
|
83
|
-
A-side events
|
|
84
|
-
NBSIDE: int
|
|
85
|
-
B-side events
|
|
86
|
-
NERROR: int
|
|
87
|
-
Events that caused a processing error - should never happen
|
|
88
|
-
NBADTAGS: int
|
|
89
|
-
Events with inconsistent tags vs pulse heights
|
|
90
|
-
COINRATES: np.ndarray (int, (26,1))
|
|
91
|
-
Coincidence rates for all detectors formatted into an array
|
|
92
|
-
BUFRATES: np.ndarray (int, (31,1))
|
|
93
|
-
Priority Buffer: ADC cal events formatted into an array
|
|
94
|
-
L2FGRATES: np.ndarray (int, (132,1))
|
|
95
|
-
R2 foreground rates formatted into an array
|
|
96
|
-
L2BGRATES: np.ndarray (int, (12,1))
|
|
97
|
-
R2 background rates formatted into an array
|
|
98
|
-
L3FGRATES: np.ndarray (int, (167,1))
|
|
99
|
-
R3 foreground rates formatted into an array
|
|
100
|
-
L3BGRATES: np.ndarray (int, (12,1))
|
|
101
|
-
R3 background rates formatted into an array
|
|
102
|
-
PENFGRATES: np.ndarray (int, (15,1))
|
|
103
|
-
R4 foreground rates formatted into an array
|
|
104
|
-
PENBGRATES: np.ndarray (int, (15,1))
|
|
105
|
-
R4 foreground rates formatted into an array
|
|
106
|
-
IALIRTRATES: np.ndarray (int, (20,1))
|
|
107
|
-
I-ALiRT rates formatted into an array
|
|
108
|
-
SECTORATES: np.ndarray (int, (120,1))
|
|
109
|
-
R4 background rates formatted into an array
|
|
110
|
-
L4FGRATES: np.ndarray (int, (48,1))
|
|
111
|
-
L4 ions foreground rates formatted into an array
|
|
112
|
-
L4BGRATES: np.ndarray (int, (24,1))
|
|
113
|
-
L4 ions background rates formatted into an array
|
|
114
|
-
PHA_RECORDS: np.ndarray (int, (917,1))
|
|
115
|
-
Event PHA records, array of 4-byte fields, formatted into an array
|
|
116
|
-
SNGRATES_RAW: InitVar[str]
|
|
117
|
-
Raw binary for PHA high gain and low gain for all detectors
|
|
118
|
-
COINRATES_RAW: InitVar[str]
|
|
119
|
-
Raw binary for coincidence rates for all detectors
|
|
120
|
-
BUFRATES_RAW: InitVar[str]
|
|
121
|
-
Raw binary for ADC calibration events
|
|
122
|
-
L2FGRATES_RAW: InitVar[str]
|
|
123
|
-
Raw binary for R2 foreground rates
|
|
124
|
-
L2BGRATES_RAW: InitVar[str]
|
|
125
|
-
Raw binary for R2 background rates
|
|
126
|
-
L3FGRATES_RAW: InitVar[str]
|
|
127
|
-
Raw binary for R3 foreground rates
|
|
128
|
-
L3BGRATES_RAW: InitVar[str]
|
|
129
|
-
Raw binary for R3 background rates
|
|
130
|
-
PENFGRATES_RAW: InitVar[str]
|
|
131
|
-
Raw binary for R4 foreground rates
|
|
132
|
-
PENBGRATES_RAW: InitVar[str]
|
|
133
|
-
Raw binary for R4 background rates
|
|
134
|
-
IALIRTRATES_RAW: InitVar[str]
|
|
135
|
-
Raw binary for I-ALiRT rates
|
|
136
|
-
SECTORATES_RAW: InitVar[str]
|
|
137
|
-
Raw binary for sector rates
|
|
138
|
-
L4FGRATES_RAW: InitVar[str]
|
|
139
|
-
Raw binary for L4 Ions foreground rates
|
|
140
|
-
L4BGRATES_RAW: InitVar[str]
|
|
141
|
-
Raw binary for L4 Ions background rates
|
|
142
|
-
PHA_RECORDS_RAW: InitVar[str]
|
|
143
|
-
Raw binary for event PHA records
|
|
144
|
-
"""
|
|
145
|
-
|
|
146
|
-
SHCOARSE: int
|
|
147
|
-
HDR_UNIT_NUM: int
|
|
148
|
-
HDR_FRAME_VERSION: int
|
|
149
|
-
HDR_STATUS_BITS: int
|
|
150
|
-
HDR_MINUTE_CNT: int
|
|
151
|
-
LIVE_TIME: int
|
|
152
|
-
NUM_TRIG: int
|
|
153
|
-
NUM_REJECT: int
|
|
154
|
-
NUM_ACC_W_PHA: int
|
|
155
|
-
NUM_ACC_NO_PHA: int
|
|
156
|
-
NUM_HAZ_TRIG: int
|
|
157
|
-
NUM_HAZ_REJECT: int
|
|
158
|
-
NUM_HAZ_ACC_W_PHA: int
|
|
159
|
-
NUM_HAZ_ACC_NO_PHA: int
|
|
160
|
-
SNGRATES_HG: np.ndarray
|
|
161
|
-
SNGRATES_LG: np.ndarray
|
|
162
|
-
NREAD: int
|
|
163
|
-
NHAZARD: int
|
|
164
|
-
NADSTIM: int
|
|
165
|
-
NODD: int
|
|
166
|
-
NODDFIX: int
|
|
167
|
-
NMULTI: int
|
|
168
|
-
NMULTIFIX: int
|
|
169
|
-
NBADTRAJ: int
|
|
170
|
-
NL2: int
|
|
171
|
-
NL3: int
|
|
172
|
-
NL4: int
|
|
173
|
-
NPEN: int
|
|
174
|
-
NFORMAT: int
|
|
175
|
-
NASIDE: int
|
|
176
|
-
NBSIDE: int
|
|
177
|
-
NERROR: int
|
|
178
|
-
NBADTAGS: int
|
|
179
|
-
COINRATES: np.ndarray
|
|
180
|
-
BUFRATES: np.ndarray
|
|
181
|
-
L2FGRATES: np.ndarray
|
|
182
|
-
L2BGRATES: np.ndarray
|
|
183
|
-
L3FGRATES: np.ndarray
|
|
184
|
-
L3BGRATES: np.ndarray
|
|
185
|
-
PENFGRATES: np.ndarray
|
|
186
|
-
PENBGRATES: np.ndarray
|
|
187
|
-
IALIRTRATES: np.ndarray
|
|
188
|
-
SECTORATES: np.ndarray
|
|
189
|
-
L4FGRATES: np.ndarray
|
|
190
|
-
L4BGRATES: np.ndarray
|
|
191
|
-
PHA_RECORDS: np.ndarray
|
|
192
|
-
SNGRATES_RAW: InitVar[str]
|
|
193
|
-
COINRATES_RAW: InitVar[str]
|
|
194
|
-
BUFRATES_RAW: InitVar[str]
|
|
195
|
-
L2FGRATES_RAW: InitVar[str]
|
|
196
|
-
L2BGRATES_RAW: InitVar[str]
|
|
197
|
-
L3FGRATES_RAW: InitVar[str]
|
|
198
|
-
L3BGRATES_RAW: InitVar[str]
|
|
199
|
-
PENFGRATES_RAW: InitVar[str]
|
|
200
|
-
PENBGRATES_RAW: InitVar[str]
|
|
201
|
-
IALIRTRATES_RAW: InitVar[str]
|
|
202
|
-
SECTORATES_RAW: InitVar[str]
|
|
203
|
-
L4FGRATES_RAW: InitVar[str]
|
|
204
|
-
L4BGRATES_RAW: InitVar[str]
|
|
205
|
-
PHA_RECORDS_RAW: InitVar[str]
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
@dataclass
|
|
209
|
-
class SectorRates:
|
|
210
|
-
"""
|
|
211
|
-
L0 PHA Record data.
|
|
212
|
-
|
|
213
|
-
A data class for PHA Record data which will be stored
|
|
214
|
-
in the SciencePacket PHA_RECORDS attribute.
|
|
215
|
-
|
|
216
|
-
Attributes
|
|
217
|
-
----------
|
|
218
|
-
TBD - talk to Eric for descriptions
|
|
219
|
-
"""
|
|
220
|
-
|
|
221
|
-
RATE_TYPE: int
|
|
222
|
-
DATA: int
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
@dataclass
|
|
226
|
-
class PHARecord:
|
|
227
|
-
"""
|
|
228
|
-
L0 Sector Rates data.
|
|
229
|
-
|
|
230
|
-
A data class for Sector Rate data which will be stored
|
|
231
|
-
in the SciencePacket SECTORATES attribute.
|
|
232
|
-
|
|
233
|
-
Attributes
|
|
234
|
-
----------
|
|
235
|
-
TBD - talk to Eric for descriptions
|
|
236
|
-
"""
|
|
237
|
-
|
|
238
|
-
particle_id: int
|
|
239
|
-
priority_buffer_num: int
|
|
240
|
-
stim_tag: int
|
|
241
|
-
haz_tag: int
|
|
242
|
-
time_tag: int
|
|
243
|
-
a_b_side: int
|
|
244
|
-
has_unread_adc: bool
|
|
245
|
-
extended_header_flag: int
|
|
246
|
-
culling_flag: int
|
|
247
|
-
detector_flags: int
|
|
248
|
-
de_index: int
|
|
249
|
-
ep_index: int
|
|
250
|
-
stim_block: int
|
|
251
|
-
dac_value: int
|
|
252
|
-
pha_number: int
|
|
253
|
-
stim_step: int
|
|
254
|
-
stim_gain: int
|
|
255
|
-
astim: int
|
|
256
|
-
adc_value: int
|
|
257
|
-
detector_address: int
|
|
258
|
-
gain_flag: int
|
|
259
|
-
last_pha_in_event: int
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"""General HIT L0 data class used for parsing data and setting attributes."""
|
|
2
|
-
|
|
3
|
-
from dataclasses import dataclass, fields
|
|
4
|
-
|
|
5
|
-
import space_packet_parser
|
|
6
|
-
|
|
7
|
-
from imap_processing.ccsds.ccsds_data import CcsdsData
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@dataclass
|
|
11
|
-
class HITBase:
|
|
12
|
-
"""
|
|
13
|
-
Data structure for common values across HIT.
|
|
14
|
-
|
|
15
|
-
Attributes
|
|
16
|
-
----------
|
|
17
|
-
ground_sw_version : str
|
|
18
|
-
Ground software version.
|
|
19
|
-
packet_file_name : str
|
|
20
|
-
File name of the source packet.
|
|
21
|
-
ccsds_header : CcsdsData
|
|
22
|
-
CCSDS header data.
|
|
23
|
-
|
|
24
|
-
Methods
|
|
25
|
-
-------
|
|
26
|
-
parse_data(packet):
|
|
27
|
-
Parse the packet and assign to class variable using the xtce defined named.
|
|
28
|
-
"""
|
|
29
|
-
|
|
30
|
-
ground_sw_version: str
|
|
31
|
-
packet_file_name: str
|
|
32
|
-
ccsds_header: CcsdsData
|
|
33
|
-
|
|
34
|
-
def parse_data(self, packet: space_packet_parser.packets.CCSDSPacket) -> None:
|
|
35
|
-
"""
|
|
36
|
-
Parse Lo L0 packet data.
|
|
37
|
-
|
|
38
|
-
Parameters
|
|
39
|
-
----------
|
|
40
|
-
packet : space_packet_parser.packets.CCSDSPacket
|
|
41
|
-
A single Lo L0 packet from space packet parser.
|
|
42
|
-
"""
|
|
43
|
-
attributes = [field.name for field in fields(self)]
|
|
44
|
-
|
|
45
|
-
# For each item in packet, assign it to the matching attribute in the class.
|
|
46
|
-
for key, item in packet.user_data.items():
|
|
47
|
-
value = (
|
|
48
|
-
item.derived_value if item.derived_value is not None else item.raw_value
|
|
49
|
-
)
|
|
50
|
-
if "SPARE" in key:
|
|
51
|
-
continue
|
|
52
|
-
if key not in attributes:
|
|
53
|
-
raise KeyError(
|
|
54
|
-
f"Did not find matching attribute in {self.__class__} data class"
|
|
55
|
-
f"for {key}"
|
|
56
|
-
)
|
|
57
|
-
setattr(self, key, value)
|
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
DOI:
|
|
2
|
-
description: >
|
|
3
|
-
DOI is a persistent Unique Digital Identifier with the form
|
|
4
|
-
https://doi.org/<PREFIX>/<SUFFIX> with the <PREFIX> identifying the DOI
|
|
5
|
-
registration authority and the <SUFFIX> identifying the dataset. The DOI should point to
|
|
6
|
-
a landing page for additional information about the dataset. DOIs are typically created by
|
|
7
|
-
the SPASE naming authority or archive.
|
|
8
|
-
default: null
|
|
9
|
-
required: false # NOT Required in ISTP Guide (Recommended)
|
|
10
|
-
validate: true # include in validation
|
|
11
|
-
overwrite: false
|
|
12
|
-
Data_level:
|
|
13
|
-
description: >
|
|
14
|
-
This attribute is used in file name creation and records the level of processsing done
|
|
15
|
-
on the dataset. For HERMES the following are valid values:
|
|
16
|
-
- l0>Level 0
|
|
17
|
-
- l1>Level 1
|
|
18
|
-
- l2>Level 2
|
|
19
|
-
- l3>Level 3
|
|
20
|
-
- l4>Level 4
|
|
21
|
-
- ql>Quicklook
|
|
22
|
-
default: null
|
|
23
|
-
required: true # NOT Required in ISTP Guide (Derived)
|
|
24
|
-
validate: false
|
|
25
|
-
overwrite: true
|
|
26
|
-
Data_product_descriptor:
|
|
27
|
-
description: >
|
|
28
|
-
This is an optional field that may not be needed for all products. Where it is used, identifier
|
|
29
|
-
should be short (e.q. 3-8 characters) descriptors that are helpful to end- users. If a
|
|
30
|
-
descriptor contains multiple components, underscores are used to separate those components.
|
|
31
|
-
default: null
|
|
32
|
-
required: false # NOT Required in ISTP Guide (Derived)
|
|
33
|
-
validate: false
|
|
34
|
-
overwrite: true
|
|
35
|
-
Data_type:
|
|
36
|
-
description: >
|
|
37
|
-
This attribute is used by CDF file writing software to create a filename. It is a
|
|
38
|
-
combination of the following filename components: mode, data level, and optional data
|
|
39
|
-
product descriptor.
|
|
40
|
-
default: null
|
|
41
|
-
required: false # NOT Required in ISTP Guide (Derived)
|
|
42
|
-
validate: false
|
|
43
|
-
overwrite: true
|
|
44
|
-
Data_version:
|
|
45
|
-
description: >
|
|
46
|
-
This attribute identifies the version of a particular CDF data file.
|
|
47
|
-
default: null
|
|
48
|
-
required: true
|
|
49
|
-
validate: true
|
|
50
|
-
overwrite: false
|
|
51
|
-
Descriptor:
|
|
52
|
-
description: >
|
|
53
|
-
This attribute identifies the name of the instrument or sensor that collected the data. Both
|
|
54
|
-
a long name and a short name are given. For any data file, only a single value is allowed.
|
|
55
|
-
For HERMES, the following are valid values:
|
|
56
|
-
- EEA>Electron Electrostatic Analyzer
|
|
57
|
-
- MERIT>Miniaturized Electron pRoton Telescope
|
|
58
|
-
- NEMISIS> Noise Eliminating Magnetometer In a Small Integrated System
|
|
59
|
-
- SPAN-I>Solar Probe Analyzer for Ions
|
|
60
|
-
default: null
|
|
61
|
-
required: true
|
|
62
|
-
validate: true
|
|
63
|
-
overwrite: false
|
|
64
|
-
Discipline:
|
|
65
|
-
description: >
|
|
66
|
-
This attribute describes both the science discipline and sub discipline. For HERMES,
|
|
67
|
-
this value should always be "Space Physics>Magnetospheric Science."
|
|
68
|
-
default: Space Physics>Magnetospheric Science
|
|
69
|
-
required: true
|
|
70
|
-
validate: true
|
|
71
|
-
overwrite: false
|
|
72
|
-
File_naming_convention:
|
|
73
|
-
description: >
|
|
74
|
-
If File_naming_convention was not set, it uses default setting:
|
|
75
|
-
source_datatype_descriptor_yyyyMMdd
|
|
76
|
-
default: source_datatype_descriptor_yyyyMMdd
|
|
77
|
-
required: false
|
|
78
|
-
validate: false
|
|
79
|
-
overwrite: true
|
|
80
|
-
Generation_date:
|
|
81
|
-
description: >
|
|
82
|
-
Date stamps the creation of the file using the syntax yyyymmdd, e.g., "
|
|
83
|
-
default: null
|
|
84
|
-
required: false # NOT Required in ISTP Guide (Recommended)
|
|
85
|
-
validate: true
|
|
86
|
-
overwrite: true
|
|
87
|
-
HTTP_LINK:
|
|
88
|
-
description: >
|
|
89
|
-
The 'HTTP_LINK', 'LINK_TEXT', and 'LINK_TITLE' attributes store the URL with a
|
|
90
|
-
description of this dataset at the HERMES SDC. The use of HTTP_LINK attribute requires
|
|
91
|
-
the existence and equal number of corresponding LINK_TEXT and LINK_TITLE attributes.
|
|
92
|
-
If text is not needed for these attributes, use an empty string "".
|
|
93
|
-
default: null
|
|
94
|
-
required: false # NOT Required in ISTP Guide (Recommended)
|
|
95
|
-
validate: true
|
|
96
|
-
overwrite: false
|
|
97
|
-
Instrument_mode:
|
|
98
|
-
description: >
|
|
99
|
-
TBS
|
|
100
|
-
default: null
|
|
101
|
-
required: false # NOT Required in ISTP Guide (Derived)
|
|
102
|
-
validate: false
|
|
103
|
-
overwrite: false
|
|
104
|
-
Instrument_type:
|
|
105
|
-
description: >
|
|
106
|
-
This attribute is used to facilitate making choices of instrument type. More than one entry
|
|
107
|
-
is allowed. Acceptable values for HERMES include:
|
|
108
|
-
- Magnetic Fields (space)
|
|
109
|
-
- Particles (space)
|
|
110
|
-
- Plasma and Solar Wind
|
|
111
|
-
- Ephemeris -> Ephemeris/Attitude/Ancillary
|
|
112
|
-
default: null
|
|
113
|
-
required: true
|
|
114
|
-
validate: true
|
|
115
|
-
overwrite: false
|
|
116
|
-
LINK_TEXT:
|
|
117
|
-
description: >
|
|
118
|
-
The 'HTTP_LINK', 'LINK_TEXT', and 'LINK_TITLE' attributes store the URL with a
|
|
119
|
-
description of this dataset at the HERMES SDC. The use of HTTP_LINK attribute requires
|
|
120
|
-
the existence and equal number of corresponding LINK_TEXT and LINK_TITLE attributes.
|
|
121
|
-
If text is not needed for these attributes, use an empty string "".
|
|
122
|
-
default: null
|
|
123
|
-
required: false # NOT Required in ISTP Guide (Recommended)
|
|
124
|
-
validate: true
|
|
125
|
-
overwrite: false
|
|
126
|
-
LINK_TITLE:
|
|
127
|
-
description: >
|
|
128
|
-
The 'HTTP_LINK', 'LINK_TEXT', and 'LINK_TITLE' attributes store the URL with a
|
|
129
|
-
description of this dataset at the HERMES SDC. The use of HTTP_LINK attribute requires
|
|
130
|
-
the existence and equal number of corresponding LINK_TEXT and LINK_TITLE attributes.
|
|
131
|
-
If text is not needed for these attributes, use an empty string "".
|
|
132
|
-
default: null
|
|
133
|
-
required: false # NOT Required in ISTP Guide (Recommended)
|
|
134
|
-
validate: true
|
|
135
|
-
overwrite: false
|
|
136
|
-
Logical_file_id:
|
|
137
|
-
description: >
|
|
138
|
-
This attribute stores the name of the CDF file but without the
|
|
139
|
-
file extension (e.g. ".cdf"). This attribute is required to avoid loss of the original source
|
|
140
|
-
in the case of accidental (or intentional) renaming.
|
|
141
|
-
default: null
|
|
142
|
-
required: true
|
|
143
|
-
validate: true
|
|
144
|
-
overwrite: true
|
|
145
|
-
Logical_source:
|
|
146
|
-
description: >
|
|
147
|
-
This attribute determines the file naming convention in the SKT Editor and is used by
|
|
148
|
-
CDA Web. It is composed of the following values:
|
|
149
|
-
- source_name - (e.g. spacecraft identifier)
|
|
150
|
-
- descriptor - (e.g. instrument identifier - see Section Error! Reference source not
|
|
151
|
-
found.)
|
|
152
|
-
- data_type - (e.g. mode, data level, and optional data product descriptor - value
|
|
153
|
-
come from 'Data_type' attribute)
|
|
154
|
-
default: null
|
|
155
|
-
required: true
|
|
156
|
-
validate: true
|
|
157
|
-
overwrite: true
|
|
158
|
-
Logical_source_description:
|
|
159
|
-
description: >
|
|
160
|
-
This attribute writes out the full words associated with the encrypted Logical_source
|
|
161
|
-
above, e.g., "Level 1 Dual Electron Spectrometer Survey Data". Users on CDAWeb see
|
|
162
|
-
this value on their website.
|
|
163
|
-
default: null
|
|
164
|
-
required: true
|
|
165
|
-
validate: true
|
|
166
|
-
overwrite: true
|
|
167
|
-
MODS:
|
|
168
|
-
description: >
|
|
169
|
-
This attribute is an SPDF standard global attribute, which is used to denote the history of
|
|
170
|
-
modifications made to the CDF data set. The MODS attribute should contain a
|
|
171
|
-
description of all significant changes to the data set, essentially capturing a log of high-
|
|
172
|
-
level release notes. This attribute can have as many entries as necessary and should be
|
|
173
|
-
updated if the Interface Number ("X") of the version number changes.
|
|
174
|
-
default: null
|
|
175
|
-
required: false # NOT Required in ISTP Guide (Recommended)
|
|
176
|
-
validate: true
|
|
177
|
-
overwrite: false
|
|
178
|
-
Mission_group:
|
|
179
|
-
description: >
|
|
180
|
-
This attribute has a single value and is used to facilitate making choices of source through
|
|
181
|
-
CDAWeb. This value should be "HERMES."
|
|
182
|
-
default: HERMES
|
|
183
|
-
required: true
|
|
184
|
-
validate: true
|
|
185
|
-
overwrite: false
|
|
186
|
-
PI_affiliation:
|
|
187
|
-
description: >
|
|
188
|
-
This attribute value should include the HERMES mission PI affiliation followed by a
|
|
189
|
-
comma-separated list of any Co-I affiliations that are responsible for this particular
|
|
190
|
-
dataset. The following are valid HERMES values, of which the abbreviations should be
|
|
191
|
-
used exclusively within this attribute value, and the full text of the affiliation included in
|
|
192
|
-
the general 'text' attribute as it is used solely in plot labels.
|
|
193
|
-
- GSFC - Goddard Space Flight Center
|
|
194
|
-
- UCB - University of California, Berkeley
|
|
195
|
-
- SSL - Space Sciences Laboratory, UCB
|
|
196
|
-
- UM - University of Michigan
|
|
197
|
-
default: null
|
|
198
|
-
required: true
|
|
199
|
-
validate: true
|
|
200
|
-
overwrite: false
|
|
201
|
-
PI_name:
|
|
202
|
-
description: >
|
|
203
|
-
This attribute value should include first initial and last name of the HERMES mission PI
|
|
204
|
-
followed by a comma-separated list of any Co-Is that are responsible for this particular
|
|
205
|
-
dataset.
|
|
206
|
-
default: null
|
|
207
|
-
required: true
|
|
208
|
-
validate: true
|
|
209
|
-
overwrite: false
|
|
210
|
-
Project:
|
|
211
|
-
description: >
|
|
212
|
-
This attribute identifies the name of the project and indicates ownership. For HERMES,
|
|
213
|
-
this value should be "STP>Solar-Terrestrial Physics".
|
|
214
|
-
default: STP>Solar-Terrestrial Physics
|
|
215
|
-
required: true
|
|
216
|
-
validate: true
|
|
217
|
-
overwrite: false
|
|
218
|
-
Source_name:
|
|
219
|
-
description: >
|
|
220
|
-
This attribute identifies the observatory where the data originated. The following are
|
|
221
|
-
valid values for HERMES:
|
|
222
|
-
- HERMES>Heliophysics Environmental and Radiation Measurement Experiment Suite
|
|
223
|
-
default: HERMES>Heliophysics Environmental and Radiation Measurement Experiment Suite
|
|
224
|
-
required: true
|
|
225
|
-
validate: true
|
|
226
|
-
overwrite: false
|
|
227
|
-
Start_time:
|
|
228
|
-
description: >
|
|
229
|
-
The start time of the contained data given in YYYYMMDD_hhmmss
|
|
230
|
-
default: null
|
|
231
|
-
required: false # NOT Required in ISTP Guide (Derived)
|
|
232
|
-
validate: false
|
|
233
|
-
overwrite: true
|
|
234
|
-
TEXT:
|
|
235
|
-
description: >
|
|
236
|
-
This attribute is an SPDF standard global attribute, which is a text description of the
|
|
237
|
-
experiment whose data is included in the CDF. A reference to a journal article(s) or to a
|
|
238
|
-
World Wide Web page describing the experiment is essential and constitutes the
|
|
239
|
-
minimum requirement. A written description of the data set is also desirable. This
|
|
240
|
-
attribute can have as many entries as necessary to contain the desired information.
|
|
241
|
-
Typically, this attribute is about a paragraph in length and is not shown on CDAWeb.
|
|
242
|
-
CDAWeb is the web portal for access to SPDF data, available at https://cdaweb.gsfc.nasa.gov.
|
|
243
|
-
default: null
|
|
244
|
-
required: true
|
|
245
|
-
validate: true
|
|
246
|
-
overwrite: false
|