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,466 +0,0 @@
|
|
|
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: false # 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: false # 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: false
|
|
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
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
"""L1A HIT Housekeeping data class."""
|
|
2
|
-
|
|
3
|
-
from dataclasses import dataclass
|
|
4
|
-
|
|
5
|
-
import numpy as np
|
|
6
|
-
import space_packet_parser
|
|
7
|
-
|
|
8
|
-
from imap_processing.ccsds.ccsds_data import CcsdsData
|
|
9
|
-
from imap_processing.hit.l0.utils.hit_base import HITBase
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@dataclass
|
|
13
|
-
class Housekeeping(HITBase):
|
|
14
|
-
"""
|
|
15
|
-
L1A HIT Housekeeping data.
|
|
16
|
-
|
|
17
|
-
The HIT Housekeeping data class handles the decommutation
|
|
18
|
-
and parsing of L0 to L1A data.
|
|
19
|
-
|
|
20
|
-
Parameters
|
|
21
|
-
----------
|
|
22
|
-
packet : dict
|
|
23
|
-
Dictionary of packet.
|
|
24
|
-
software_version : str
|
|
25
|
-
Version of software.
|
|
26
|
-
packet_file_name : str
|
|
27
|
-
Name of packet file.
|
|
28
|
-
|
|
29
|
-
Attributes
|
|
30
|
-
----------
|
|
31
|
-
SHCOARSE : int
|
|
32
|
-
Spacecraft time.
|
|
33
|
-
MODE : int
|
|
34
|
-
Mode (0=boot, 1=maint, 2=stdby, 3=science)
|
|
35
|
-
FSW_VERSION_A : int
|
|
36
|
-
FSW version number (A.B.C bits)
|
|
37
|
-
FSW_VERSION_B : int
|
|
38
|
-
FSW version number (A.B.C bits)
|
|
39
|
-
FSW_VERSION_C : int
|
|
40
|
-
FSW version number (A.B.C bits)
|
|
41
|
-
NUM_GOOD_CMDS : int
|
|
42
|
-
Number of good commands
|
|
43
|
-
LAST_GOOD_CMD : int
|
|
44
|
-
Last good command
|
|
45
|
-
LAST_GOOD_SEQ_NUM : int
|
|
46
|
-
Last good sequence number
|
|
47
|
-
NUM_BAD_CMDS : int
|
|
48
|
-
Number of bad commands
|
|
49
|
-
LAST_BAD_CMD : int
|
|
50
|
-
Last bad command
|
|
51
|
-
LAST_BAD_SEQ_NUM : int
|
|
52
|
-
Last bad sequence number
|
|
53
|
-
FEE_RUNNING : int
|
|
54
|
-
FEE running (1) or reset (0)
|
|
55
|
-
MRAM_DISABLED : int
|
|
56
|
-
MRAM disabled (1) or enabled (0)
|
|
57
|
-
ENABLE_50KHZ : int
|
|
58
|
-
50kHz enabled (1) or disabled (0)
|
|
59
|
-
ENABLE_HVPS : int
|
|
60
|
-
HVPS enabled (1) or disabled (0)
|
|
61
|
-
TABLE_STATUS : int
|
|
62
|
-
Table status OK (1) or error (0)
|
|
63
|
-
HEATER_CONTROL : int
|
|
64
|
-
Heater control (0=none, 1=pri, 2=sec)
|
|
65
|
-
ADC_MODE : int
|
|
66
|
-
ADC mode (0=quiet, 1=normal, 2=adcstim, 3=adcThreshold?)
|
|
67
|
-
DYN_THRESH_LVL : int
|
|
68
|
-
Dynamic threshold level (0-3)
|
|
69
|
-
NUM_EVNT_LAST_HK : int
|
|
70
|
-
Number of events since last HK update
|
|
71
|
-
NUM_ERRORS : int
|
|
72
|
-
Number of errors
|
|
73
|
-
LAST_ERROR_NUM : int
|
|
74
|
-
Last error number
|
|
75
|
-
CODE_CHECKSUM : int
|
|
76
|
-
Code checksum
|
|
77
|
-
SPIN_PERIOD_SHORT : int
|
|
78
|
-
Spin period at t=0
|
|
79
|
-
SPIN_PERIOD_LONG : int
|
|
80
|
-
Spin period at t=0
|
|
81
|
-
LEAK_I_RAW : str
|
|
82
|
-
Raw binary for Leakage current [V]
|
|
83
|
-
LEAK_I : np.ndarray
|
|
84
|
-
Leakage currents [V] formatted as (64, 1) array
|
|
85
|
-
PHASIC_STAT : int
|
|
86
|
-
PHASIC status
|
|
87
|
-
ACTIVE_HEATER : int
|
|
88
|
-
Active heater
|
|
89
|
-
HEATER_ON : int
|
|
90
|
-
Heater on/off
|
|
91
|
-
TEST_PULSER_ON : int
|
|
92
|
-
Test pulser on/off
|
|
93
|
-
DAC0_ENABLE : int
|
|
94
|
-
DAC_0 enable
|
|
95
|
-
DAC1_ENABLE : int
|
|
96
|
-
DAC_1 enable
|
|
97
|
-
PREAMP_L234A : int
|
|
98
|
-
Preamp L234A
|
|
99
|
-
PREAMP_L1A : int
|
|
100
|
-
Preamp L1A
|
|
101
|
-
PREAMP_L1B : int
|
|
102
|
-
Preamp L1B
|
|
103
|
-
PREAMP_L234B : int
|
|
104
|
-
Preamp L234B
|
|
105
|
-
TEMP0 : int
|
|
106
|
-
FEE LDO Regulator
|
|
107
|
-
TEMP1 : int
|
|
108
|
-
Primary Heater
|
|
109
|
-
TEMP2 : int
|
|
110
|
-
FEE FPGA
|
|
111
|
-
TEMP3 : int
|
|
112
|
-
Secondary Heater
|
|
113
|
-
ANALOG_TEMP : int
|
|
114
|
-
Chassis temp
|
|
115
|
-
HVPS_TEMP : int
|
|
116
|
-
Board temp
|
|
117
|
-
IDPU_TEMP : int
|
|
118
|
-
LDO Temp
|
|
119
|
-
LVPS_TEMP : int
|
|
120
|
-
Board temp
|
|
121
|
-
EBOX_3D4VD : int
|
|
122
|
-
3.4VD Ebox (digital)
|
|
123
|
-
EBOX_5D1VD : int
|
|
124
|
-
5.1VD Ebox (digital)
|
|
125
|
-
EBOX_P12VA : int
|
|
126
|
-
+12VA Ebox (analog)
|
|
127
|
-
EBOX_M12VA : int
|
|
128
|
-
-12VA Ebox (analog)
|
|
129
|
-
EBOX_P5D7VA : int
|
|
130
|
-
+5.7VA Ebox (analog)
|
|
131
|
-
EBOX_M5D7VA : int
|
|
132
|
-
-5.7VA Ebox (analog)
|
|
133
|
-
REF_P5V : int
|
|
134
|
-
+5Vref
|
|
135
|
-
L1AB_BIAS : int
|
|
136
|
-
L1A/B Bias
|
|
137
|
-
L2AB_BIAS : int
|
|
138
|
-
L2A/B Bias
|
|
139
|
-
L34A_BIAS : int
|
|
140
|
-
L3/4A Bias
|
|
141
|
-
L34B_BIAS : int
|
|
142
|
-
L3/4B Bias
|
|
143
|
-
EBOX_P2D0VD : int
|
|
144
|
-
+2.0VD Ebox (digital)
|
|
145
|
-
|
|
146
|
-
Methods
|
|
147
|
-
-------
|
|
148
|
-
__init__(packet, software_vesion, packet_file_name):
|
|
149
|
-
Uses the CCSDS packet, version of the software, and
|
|
150
|
-
the name of the packet file to parse and store information about
|
|
151
|
-
the Housekeeping packet data.
|
|
152
|
-
_parse_leak():
|
|
153
|
-
Parse each current leakage field and put into an array.
|
|
154
|
-
"""
|
|
155
|
-
|
|
156
|
-
SHCOARSE: int
|
|
157
|
-
MODE: int
|
|
158
|
-
FSW_VERSION_A: int
|
|
159
|
-
FSW_VERSION_B: int
|
|
160
|
-
FSW_VERSION_C: int
|
|
161
|
-
NUM_GOOD_CMDS: int
|
|
162
|
-
LAST_GOOD_CMD: int
|
|
163
|
-
LAST_GOOD_SEQ_NUM: int
|
|
164
|
-
NUM_BAD_CMDS: int
|
|
165
|
-
LAST_BAD_CMD: int
|
|
166
|
-
LAST_BAD_SEQ_NUM: int
|
|
167
|
-
FEE_RUNNING: int
|
|
168
|
-
MRAM_DISABLED: int
|
|
169
|
-
ENABLE_50KHZ: int
|
|
170
|
-
ENABLE_HVPS: int
|
|
171
|
-
TABLE_STATUS: int
|
|
172
|
-
HEATER_CONTROL: int
|
|
173
|
-
ADC_MODE: int
|
|
174
|
-
DYN_THRESH_LVL: int
|
|
175
|
-
NUM_EVNT_LAST_HK: int
|
|
176
|
-
NUM_ERRORS: int
|
|
177
|
-
LAST_ERROR_NUM: int
|
|
178
|
-
CODE_CHECKSUM: int
|
|
179
|
-
SPIN_PERIOD_SHORT: int
|
|
180
|
-
SPIN_PERIOD_LONG: int
|
|
181
|
-
LEAK_I_RAW: str
|
|
182
|
-
LEAK_I: np.ndarray
|
|
183
|
-
PHASIC_STAT: int
|
|
184
|
-
ACTIVE_HEATER: int
|
|
185
|
-
HEATER_ON: int
|
|
186
|
-
TEST_PULSER_ON: int
|
|
187
|
-
DAC0_ENABLE: int
|
|
188
|
-
DAC1_ENABLE: int
|
|
189
|
-
PREAMP_L234A: int
|
|
190
|
-
PREAMP_L1A: int
|
|
191
|
-
PREAMP_L1B: int
|
|
192
|
-
PREAMP_L234B: int
|
|
193
|
-
TEMP0: int
|
|
194
|
-
TEMP1: int
|
|
195
|
-
TEMP2: int
|
|
196
|
-
TEMP3: int
|
|
197
|
-
ANALOG_TEMP: int
|
|
198
|
-
HVPS_TEMP: int
|
|
199
|
-
IDPU_TEMP: int
|
|
200
|
-
LVPS_TEMP: int
|
|
201
|
-
EBOX_3D4VD: int
|
|
202
|
-
EBOX_5D1VD: int
|
|
203
|
-
EBOX_P12VA: int
|
|
204
|
-
EBOX_M12VA: int
|
|
205
|
-
EBOX_P5D7VA: int
|
|
206
|
-
EBOX_M5D7VA: int
|
|
207
|
-
REF_P5V: int
|
|
208
|
-
L1AB_BIAS: int
|
|
209
|
-
L2AB_BIAS: int
|
|
210
|
-
L34A_BIAS: int
|
|
211
|
-
L34B_BIAS: int
|
|
212
|
-
EBOX_P2D0VD: int
|
|
213
|
-
|
|
214
|
-
def __init__(
|
|
215
|
-
self,
|
|
216
|
-
packet: space_packet_parser.packets.CCSDSPacket,
|
|
217
|
-
software_version: str,
|
|
218
|
-
packet_file_name: str,
|
|
219
|
-
):
|
|
220
|
-
"""Housekeeping Data class initialization method."""
|
|
221
|
-
super().__init__(software_version, packet_file_name, CcsdsData(packet.header))
|
|
222
|
-
self.parse_data(packet)
|
|
223
|
-
self._parse_leak()
|
|
224
|
-
|
|
225
|
-
def _parse_leak(self) -> None:
|
|
226
|
-
"""Parse each current leakage field and put into an array."""
|
|
227
|
-
# Each Leak field is 10 bits long
|
|
228
|
-
leak_bit_length = 10
|
|
229
|
-
# There are 64 leak fields
|
|
230
|
-
num_leak_fields = 64
|
|
231
|
-
self.LEAK_I = np.empty(num_leak_fields, dtype=np.uint16)
|
|
232
|
-
# The leak fields appear in the packet in ascending order, so to append
|
|
233
|
-
# the leak fields in the correct order, the binary will be parsed
|
|
234
|
-
# from right to left.
|
|
235
|
-
for i, leak_idx in enumerate(
|
|
236
|
-
range(leak_bit_length * num_leak_fields, 0, -leak_bit_length)
|
|
237
|
-
):
|
|
238
|
-
self.LEAK_I[i] = int(
|
|
239
|
-
self.LEAK_I_RAW[leak_idx - leak_bit_length : leak_idx], 2
|
|
240
|
-
)
|