imap-processing 0.18.0__py3-none-any.whl → 0.19.2__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/_version.py +2 -2
- imap_processing/ancillary/ancillary_dataset_combiner.py +161 -1
- imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +6 -0
- imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +221 -1057
- imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +307 -283
- imap_processing/cdf/config/imap_codice_l2_variable_attrs.yaml +1044 -203
- imap_processing/cdf/config/imap_constant_attrs.yaml +4 -2
- imap_processing/cdf/config/imap_enamaps_l2-common_variable_attrs.yaml +11 -0
- imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +15 -1
- imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +5 -0
- imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +10 -4
- imap_processing/cdf/config/imap_idex_l2a_variable_attrs.yaml +33 -4
- imap_processing/cdf/config/imap_idex_l2b_variable_attrs.yaml +8 -91
- imap_processing/cdf/config/imap_idex_l2c_variable_attrs.yaml +106 -16
- imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +5 -4
- imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +4 -15
- imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +189 -98
- imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +85 -2
- imap_processing/cdf/config/imap_mag_l1c_variable_attrs.yaml +24 -1
- imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +20 -8
- imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +45 -35
- imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +110 -7
- imap_processing/cli.py +138 -93
- imap_processing/codice/codice_l0.py +2 -1
- imap_processing/codice/codice_l1a.py +167 -69
- imap_processing/codice/codice_l1b.py +42 -32
- imap_processing/codice/codice_l2.py +215 -9
- imap_processing/codice/constants.py +790 -603
- imap_processing/codice/data/lo_stepping_values.csv +1 -1
- imap_processing/decom.py +1 -4
- imap_processing/ena_maps/ena_maps.py +71 -43
- imap_processing/ena_maps/utils/corrections.py +291 -0
- imap_processing/ena_maps/utils/map_utils.py +20 -4
- imap_processing/ena_maps/utils/naming.py +8 -2
- imap_processing/glows/ancillary/imap_glows_exclusions-by-instr-team_20250923_v002.dat +10 -0
- imap_processing/glows/ancillary/imap_glows_map-of-excluded-regions_20250923_v002.dat +393 -0
- imap_processing/glows/ancillary/imap_glows_map-of-uv-sources_20250923_v002.dat +593 -0
- imap_processing/glows/ancillary/imap_glows_pipeline-settings_20250923_v002.json +54 -0
- imap_processing/glows/ancillary/imap_glows_suspected-transients_20250923_v002.dat +10 -0
- imap_processing/glows/l1b/glows_l1b.py +123 -18
- imap_processing/glows/l1b/glows_l1b_data.py +358 -47
- imap_processing/glows/l2/glows_l2.py +11 -0
- imap_processing/hi/hi_l1a.py +124 -3
- imap_processing/hi/hi_l1b.py +154 -71
- imap_processing/hi/hi_l1c.py +4 -109
- imap_processing/hi/hi_l2.py +104 -60
- imap_processing/hi/utils.py +262 -8
- imap_processing/hit/l0/constants.py +3 -0
- imap_processing/hit/l0/decom_hit.py +3 -6
- imap_processing/hit/l1a/hit_l1a.py +311 -21
- imap_processing/hit/l1b/hit_l1b.py +54 -126
- imap_processing/hit/l2/hit_l2.py +6 -6
- imap_processing/ialirt/calculate_ingest.py +219 -0
- imap_processing/ialirt/constants.py +12 -2
- imap_processing/ialirt/generate_coverage.py +15 -2
- imap_processing/ialirt/l0/ialirt_spice.py +6 -2
- imap_processing/ialirt/l0/parse_mag.py +293 -42
- imap_processing/ialirt/l0/process_hit.py +5 -3
- imap_processing/ialirt/l0/process_swapi.py +41 -25
- imap_processing/ialirt/process_ephemeris.py +70 -14
- imap_processing/ialirt/utils/create_xarray.py +1 -1
- imap_processing/idex/idex_l0.py +2 -2
- imap_processing/idex/idex_l1a.py +2 -3
- imap_processing/idex/idex_l1b.py +2 -3
- imap_processing/idex/idex_l2a.py +130 -4
- imap_processing/idex/idex_l2b.py +158 -143
- imap_processing/idex/idex_utils.py +1 -3
- imap_processing/lo/ancillary_data/imap_lo_hydrogen-geometric-factor_v001.csv +75 -0
- imap_processing/lo/ancillary_data/imap_lo_oxygen-geometric-factor_v001.csv +75 -0
- imap_processing/lo/l0/lo_science.py +25 -24
- imap_processing/lo/l1b/lo_l1b.py +93 -19
- imap_processing/lo/l1c/lo_l1c.py +273 -93
- imap_processing/lo/l2/lo_l2.py +949 -135
- imap_processing/lo/lo_ancillary.py +55 -0
- imap_processing/mag/l1a/mag_l1a.py +1 -0
- imap_processing/mag/l1a/mag_l1a_data.py +26 -0
- imap_processing/mag/l1b/mag_l1b.py +3 -2
- imap_processing/mag/l1c/interpolation_methods.py +14 -15
- imap_processing/mag/l1c/mag_l1c.py +23 -6
- imap_processing/mag/l1d/mag_l1d.py +57 -14
- imap_processing/mag/l1d/mag_l1d_data.py +202 -32
- imap_processing/mag/l2/mag_l2.py +2 -0
- imap_processing/mag/l2/mag_l2_data.py +14 -5
- imap_processing/quality_flags.py +23 -1
- imap_processing/spice/geometry.py +89 -39
- imap_processing/spice/pointing_frame.py +4 -8
- imap_processing/spice/repoint.py +78 -2
- imap_processing/spice/spin.py +28 -8
- imap_processing/spice/time.py +12 -22
- imap_processing/swapi/l1/swapi_l1.py +10 -4
- imap_processing/swapi/l2/swapi_l2.py +15 -17
- imap_processing/swe/l1b/swe_l1b.py +1 -2
- imap_processing/ultra/constants.py +30 -24
- imap_processing/ultra/l0/ultra_utils.py +9 -11
- imap_processing/ultra/l1a/ultra_l1a.py +1 -2
- imap_processing/ultra/l1b/badtimes.py +35 -11
- imap_processing/ultra/l1b/de.py +95 -31
- imap_processing/ultra/l1b/extendedspin.py +31 -16
- imap_processing/ultra/l1b/goodtimes.py +112 -0
- imap_processing/ultra/l1b/lookup_utils.py +281 -28
- imap_processing/ultra/l1b/quality_flag_filters.py +10 -1
- imap_processing/ultra/l1b/ultra_l1b.py +7 -7
- imap_processing/ultra/l1b/ultra_l1b_culling.py +169 -7
- imap_processing/ultra/l1b/ultra_l1b_extended.py +311 -69
- imap_processing/ultra/l1c/helio_pset.py +139 -37
- imap_processing/ultra/l1c/l1c_lookup_utils.py +289 -0
- imap_processing/ultra/l1c/spacecraft_pset.py +140 -29
- imap_processing/ultra/l1c/ultra_l1c.py +33 -24
- imap_processing/ultra/l1c/ultra_l1c_culling.py +92 -0
- imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +400 -292
- imap_processing/ultra/l2/ultra_l2.py +54 -11
- imap_processing/ultra/utils/ultra_l1_utils.py +37 -7
- imap_processing/utils.py +3 -4
- {imap_processing-0.18.0.dist-info → imap_processing-0.19.2.dist-info}/METADATA +2 -2
- {imap_processing-0.18.0.dist-info → imap_processing-0.19.2.dist-info}/RECORD +118 -109
- imap_processing/idex/idex_l2c.py +0 -84
- imap_processing/spice/kernels.py +0 -187
- imap_processing/ultra/l1b/cullingmask.py +0 -87
- imap_processing/ultra/l1c/histogram.py +0 -36
- {imap_processing-0.18.0.dist-info → imap_processing-0.19.2.dist-info}/LICENSE +0 -0
- {imap_processing-0.18.0.dist-info → imap_processing-0.19.2.dist-info}/WHEEL +0 -0
- {imap_processing-0.18.0.dist-info → imap_processing-0.19.2.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Description: list of transients for L1b defined by IMAP/GLOWS Instrument Team for ground-processing pipeline in the IMAP SDC
|
|
2
|
+
# Value 1 in mask_array means that a given bin is suspected transient
|
|
3
|
+
# version: 0.2
|
|
4
|
+
# columns: l1b_unique_block_identifier, histogram_mask_array
|
|
5
|
+
2013-09-08T09:46:14 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
6
|
+
2013-09-08T09:48:14 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
7
|
+
2014-09-08T19:15:01 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
8
|
+
2014-09-08T19:17:01 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
9
|
+
2015-06-06T17:58:00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
10
|
+
2015-06-06T18:00:00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
"""Methods for processing GLOWS L1B data."""
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
|
+
import json
|
|
5
|
+
from pathlib import Path
|
|
4
6
|
|
|
5
7
|
import numpy as np
|
|
6
8
|
import xarray as xr
|
|
7
9
|
|
|
8
10
|
from imap_processing.cdf.imap_cdf_manager import ImapCdfAttributes
|
|
9
11
|
from imap_processing.glows import FLAG_LENGTH
|
|
10
|
-
from imap_processing.glows.l1b.glows_l1b_data import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
from imap_processing.glows.l1b.glows_l1b_data import (
|
|
13
|
+
AncillaryExclusions,
|
|
14
|
+
AncillaryParameters,
|
|
15
|
+
DirectEventL1B,
|
|
16
|
+
HistogramL1B,
|
|
17
|
+
PipelineSettings,
|
|
18
|
+
)
|
|
19
|
+
from imap_processing.spice.time import et_to_datetime64, ttj2000ns_to_et
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def glows_l1b(
|
|
23
|
+
input_dataset: xr.Dataset,
|
|
24
|
+
excluded_regions: xr.Dataset,
|
|
25
|
+
uv_sources: xr.Dataset,
|
|
26
|
+
suspected_transients: xr.Dataset,
|
|
27
|
+
exclusions_by_instr_team: xr.Dataset,
|
|
28
|
+
pipeline_settings_dataset: xr.Dataset,
|
|
29
|
+
) -> xr.Dataset:
|
|
14
30
|
"""
|
|
15
31
|
Will process the GLOWS L1B data and format the output datasets.
|
|
16
32
|
|
|
@@ -18,6 +34,21 @@ def glows_l1b(input_dataset: xr.Dataset) -> xr.Dataset:
|
|
|
18
34
|
----------
|
|
19
35
|
input_dataset : xr.Dataset
|
|
20
36
|
Dataset of input values.
|
|
37
|
+
excluded_regions : xr.Dataset
|
|
38
|
+
Dataset containing excluded sky regions with ecliptic coordinates. This
|
|
39
|
+
is the output from GlowsAncillaryCombiner.
|
|
40
|
+
uv_sources : xr.Dataset
|
|
41
|
+
Dataset containing UV sources (stars) with coordinates and masking radii. It is
|
|
42
|
+
the output from GlowsAncillaryCombiner.
|
|
43
|
+
suspected_transients : xr.Dataset
|
|
44
|
+
Dataset containing suspected transient signals with time-based masks. This is
|
|
45
|
+
the output from GlowsAncillaryCombiner.
|
|
46
|
+
exclusions_by_instr_team : xr.Dataset
|
|
47
|
+
Dataset containing manual exclusions by instrument team with time-based masks.
|
|
48
|
+
This is the output from GlowsAncillaryCombiner.
|
|
49
|
+
pipeline_settings_dataset : xr.Dataset
|
|
50
|
+
Dataset containing pipeline settings, including the L1B conversion table and
|
|
51
|
+
other ancillary parameters.
|
|
21
52
|
|
|
22
53
|
Returns
|
|
23
54
|
-------
|
|
@@ -28,6 +59,24 @@ def glows_l1b(input_dataset: xr.Dataset) -> xr.Dataset:
|
|
|
28
59
|
cdf_attrs.add_instrument_global_attrs("glows")
|
|
29
60
|
cdf_attrs.add_instrument_variable_attrs("glows", "l1b")
|
|
30
61
|
|
|
62
|
+
day = et_to_datetime64(ttj2000ns_to_et(input_dataset["epoch"].data[0]))
|
|
63
|
+
|
|
64
|
+
# Create ancillary exclusions object from passed-in datasets
|
|
65
|
+
ancillary_exclusions = AncillaryExclusions(
|
|
66
|
+
excluded_regions=excluded_regions,
|
|
67
|
+
uv_sources=uv_sources,
|
|
68
|
+
suspected_transients=suspected_transients,
|
|
69
|
+
exclusions_by_instr_team=exclusions_by_instr_team,
|
|
70
|
+
)
|
|
71
|
+
pipeline_settings = PipelineSettings(
|
|
72
|
+
pipeline_settings_dataset.sel(epoch=day, method="nearest"),
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
with open(
|
|
76
|
+
Path(__file__).parents[1] / "ancillary" / "l1b_conversion_table_v001.json"
|
|
77
|
+
) as f:
|
|
78
|
+
ancillary_parameters = AncillaryParameters(json.loads(f.read()))
|
|
79
|
+
|
|
31
80
|
logical_source = (
|
|
32
81
|
input_dataset.attrs["Logical_source"][0]
|
|
33
82
|
if isinstance(input_dataset.attrs["Logical_source"], list)
|
|
@@ -35,7 +84,12 @@ def glows_l1b(input_dataset: xr.Dataset) -> xr.Dataset:
|
|
|
35
84
|
)
|
|
36
85
|
|
|
37
86
|
if "hist" in logical_source:
|
|
38
|
-
|
|
87
|
+
output_dataarrays = process_histogram(
|
|
88
|
+
input_dataset, ancillary_exclusions, ancillary_parameters, pipeline_settings
|
|
89
|
+
)
|
|
90
|
+
output_dataset = create_l1b_hist_output(
|
|
91
|
+
output_dataarrays, input_dataset["epoch"], input_dataset["bins"], cdf_attrs
|
|
92
|
+
)
|
|
39
93
|
|
|
40
94
|
elif "de" in logical_source:
|
|
41
95
|
output_dataset = create_l1b_de_output(input_dataset, cdf_attrs)
|
|
@@ -114,7 +168,12 @@ def process_de(l1a: xr.Dataset) -> tuple[xr.DataArray]:
|
|
|
114
168
|
return l1b_fields
|
|
115
169
|
|
|
116
170
|
|
|
117
|
-
def process_histogram(
|
|
171
|
+
def process_histogram(
|
|
172
|
+
l1a: xr.Dataset,
|
|
173
|
+
ancillary_exclusions: AncillaryExclusions,
|
|
174
|
+
ancillary_parameters: AncillaryParameters,
|
|
175
|
+
pipeline_settings: PipelineSettings,
|
|
176
|
+
) -> xr.Dataset:
|
|
118
177
|
"""
|
|
119
178
|
Will process the histogram data from the L1A dataset and return the L1B dataset.
|
|
120
179
|
|
|
@@ -128,6 +187,12 @@ def process_histogram(l1a: xr.Dataset) -> xr.Dataset:
|
|
|
128
187
|
----------
|
|
129
188
|
l1a : xr.Dataset
|
|
130
189
|
The L1A dataset to process.
|
|
190
|
+
ancillary_exclusions : AncillaryExclusions
|
|
191
|
+
The ancillary exclusions data for bad-angle flag processing.
|
|
192
|
+
ancillary_parameters : AncillaryParameters
|
|
193
|
+
The ancillary parameters for decoding histogram data.
|
|
194
|
+
pipeline_settings : PipelineSettings
|
|
195
|
+
The pipeline settings including flag activation.
|
|
131
196
|
|
|
132
197
|
Returns
|
|
133
198
|
-------
|
|
@@ -149,6 +214,8 @@ def process_histogram(l1a: xr.Dataset) -> xr.Dataset:
|
|
|
149
214
|
"spacecraft_location_std_dev": ["ecliptic"],
|
|
150
215
|
"spacecraft_velocity_average": ["ecliptic"],
|
|
151
216
|
"spacecraft_velocity_std_dev": ["ecliptic"],
|
|
217
|
+
"spin_axis_orientation_average": ["latitudinal"],
|
|
218
|
+
"spin_axis_orientation_std_dev": ["latitudinal"],
|
|
152
219
|
"flags": ["flag_dim"],
|
|
153
220
|
}
|
|
154
221
|
|
|
@@ -165,8 +232,27 @@ def process_histogram(l1a: xr.Dataset) -> xr.Dataset:
|
|
|
165
232
|
# The rest of the input vars are epoch only, so they have an empty list.
|
|
166
233
|
input_dims[0] = ["bins"]
|
|
167
234
|
|
|
235
|
+
# Create a closure that captures the ancillary objects
|
|
236
|
+
def create_histogram_l1b(*args) -> tuple: # type: ignore[no-untyped-def]
|
|
237
|
+
"""
|
|
238
|
+
Create HistogramL1B object with captured ancillary data.
|
|
239
|
+
|
|
240
|
+
Parameters
|
|
241
|
+
----------
|
|
242
|
+
*args
|
|
243
|
+
Variable arguments passed from xr.apply_ufunc containing L1A data.
|
|
244
|
+
|
|
245
|
+
Returns
|
|
246
|
+
-------
|
|
247
|
+
tuple
|
|
248
|
+
Tuple of processed L1B data arrays from HistogramL1B.output_data().
|
|
249
|
+
"""
|
|
250
|
+
return HistogramL1B( # type: ignore[call-arg]
|
|
251
|
+
*args, ancillary_exclusions, ancillary_parameters, pipeline_settings
|
|
252
|
+
).output_data()
|
|
253
|
+
|
|
168
254
|
l1b_fields = xr.apply_ufunc(
|
|
169
|
-
|
|
255
|
+
create_histogram_l1b,
|
|
170
256
|
*dataarrays,
|
|
171
257
|
input_core_dims=input_dims,
|
|
172
258
|
output_core_dims=output_dims,
|
|
@@ -179,19 +265,30 @@ def process_histogram(l1a: xr.Dataset) -> xr.Dataset:
|
|
|
179
265
|
|
|
180
266
|
|
|
181
267
|
def create_l1b_hist_output(
|
|
182
|
-
|
|
268
|
+
l1b_dataarrays: tuple[xr.DataArray],
|
|
269
|
+
epoch: xr.DataArray,
|
|
270
|
+
bin_coord: xr.DataArray,
|
|
271
|
+
cdf_attrs: ImapCdfAttributes,
|
|
183
272
|
) -> xr.Dataset:
|
|
184
273
|
"""
|
|
185
274
|
Create the output dataset for the L1B histogram data.
|
|
186
275
|
|
|
187
|
-
This function
|
|
188
|
-
|
|
189
|
-
|
|
276
|
+
This function takes in the output from `process_histogram`, which is a tuple of
|
|
277
|
+
DataArrays matching the output L1B data variables, and assembles them into a
|
|
278
|
+
Dataset with the appropriate coordinates.
|
|
190
279
|
|
|
191
280
|
Parameters
|
|
192
281
|
----------
|
|
193
|
-
|
|
194
|
-
The
|
|
282
|
+
l1b_dataarrays : tuple[xr.DataArray]
|
|
283
|
+
The DataArrays for each variable in the L1B dataset. These align with the
|
|
284
|
+
fields in the HistogramL1B dataclass, which also describes each variable.
|
|
285
|
+
epoch : xr.DataArray
|
|
286
|
+
The epoch DataArray to use as a coordinate in the output dataset. Generally
|
|
287
|
+
equal to the L1A epoch.
|
|
288
|
+
bin_coord : xr.DataArray
|
|
289
|
+
An arange DataArray for the bins coordinate. Nominally expected to be equal to
|
|
290
|
+
`xr.DataArray(np.arange(number_of_bins_per_histogram), name="bins",
|
|
291
|
+
dims=["bins"])`. Pulled up from L1A.
|
|
195
292
|
cdf_attrs : ImapCdfAttributes
|
|
196
293
|
The CDF attributes to use for the output dataset.
|
|
197
294
|
|
|
@@ -200,7 +297,7 @@ def create_l1b_hist_output(
|
|
|
200
297
|
output_dataset : xr.Dataset
|
|
201
298
|
The output dataset with the processed histogram data and all attributes.
|
|
202
299
|
"""
|
|
203
|
-
data_epoch =
|
|
300
|
+
data_epoch = epoch
|
|
204
301
|
data_epoch.attrs = cdf_attrs.get_variable_attributes("epoch", check_schema=False)
|
|
205
302
|
|
|
206
303
|
flag_data = xr.DataArray(
|
|
@@ -230,8 +327,17 @@ def create_l1b_hist_output(
|
|
|
230
327
|
attrs=cdf_attrs.get_variable_attributes("ecliptic_attrs", check_schema=False),
|
|
231
328
|
)
|
|
232
329
|
|
|
330
|
+
latitudinal_data = xr.DataArray(
|
|
331
|
+
np.arange(2),
|
|
332
|
+
name="latitudinal",
|
|
333
|
+
dims=["latitudinal"],
|
|
334
|
+
attrs=cdf_attrs.get_variable_attributes(
|
|
335
|
+
"latitudinal_attrs", check_schema=False
|
|
336
|
+
),
|
|
337
|
+
)
|
|
338
|
+
|
|
233
339
|
bin_data = xr.DataArray(
|
|
234
|
-
|
|
340
|
+
bin_coord.data,
|
|
235
341
|
name="bins",
|
|
236
342
|
dims=["bins"],
|
|
237
343
|
attrs=cdf_attrs.get_variable_attributes("bins_attrs", check_schema=False),
|
|
@@ -244,8 +350,6 @@ def create_l1b_hist_output(
|
|
|
244
350
|
attrs=cdf_attrs.get_variable_attributes("bins_label", check_schema=False),
|
|
245
351
|
)
|
|
246
352
|
|
|
247
|
-
output_dataarrays = process_histogram(input_dataset)
|
|
248
|
-
|
|
249
353
|
output_dataset = xr.Dataset(
|
|
250
354
|
coords={
|
|
251
355
|
"epoch": data_epoch,
|
|
@@ -254,6 +358,7 @@ def create_l1b_hist_output(
|
|
|
254
358
|
"bad_angle_flags": bad_flag_data,
|
|
255
359
|
"bad_time_flags": flag_data,
|
|
256
360
|
"ecliptic": eclipic_data,
|
|
361
|
+
"latitudinal": latitudinal_data,
|
|
257
362
|
},
|
|
258
363
|
attrs=cdf_attrs.get_global_attributes("imap_glows_l1b_hist"),
|
|
259
364
|
)
|
|
@@ -262,7 +367,7 @@ def create_l1b_hist_output(
|
|
|
262
367
|
# HistogramL1B dataclass, we can use dataclasses.fields to get the field names.
|
|
263
368
|
|
|
264
369
|
fields = dataclasses.fields(HistogramL1B)
|
|
265
|
-
for index, dataarray in enumerate(
|
|
370
|
+
for index, dataarray in enumerate(l1b_dataarrays):
|
|
266
371
|
# Dataarray is already an xr.DataArray type, so we can just assign it
|
|
267
372
|
output_dataset[fields[index].name] = dataarray
|
|
268
373
|
output_dataset[fields[index].name].attrs = cdf_attrs.get_variable_attributes(
|