imap-processing 0.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- imap_processing/__init__.py +34 -0
- imap_processing/_version.py +3 -0
- imap_processing/ccsds/__init__.py +0 -0
- imap_processing/ccsds/ccsds_data.py +55 -0
- imap_processing/ccsds/excel_to_xtce.py +477 -0
- imap_processing/cdf/__init__.py +0 -0
- imap_processing/cdf/cdf_attribute_manager.py +322 -0
- imap_processing/cdf/config/imap_codice_global_cdf_attrs.yaml +212 -0
- imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml +1358 -0
- imap_processing/cdf/config/imap_codice_l1b_variable_attrs.yaml +391 -0
- imap_processing/cdf/config/imap_constant_attrs.yaml +33 -0
- imap_processing/cdf/config/imap_default_global_cdf_attrs.yaml +17 -0
- imap_processing/cdf/config/imap_glows_global_cdf_attrs.yaml +41 -0
- imap_processing/cdf/config/imap_glows_l1a_variable_attrs.yaml +499 -0
- imap_processing/cdf/config/imap_glows_l1b_variable_attrs.yaml +334 -0
- imap_processing/cdf/config/imap_hi_global_cdf_attrs.yaml +51 -0
- imap_processing/cdf/config/imap_hi_variable_attrs.yaml +435 -0
- imap_processing/cdf/config/imap_hit_global_cdf_attrs.yaml +27 -0
- imap_processing/cdf/config/imap_hit_l1a_variable_attrs.yaml +493 -0
- imap_processing/cdf/config/imap_hit_l1b_variable_attrs.yaml +564 -0
- imap_processing/cdf/config/imap_idex_global_cdf_attrs.yaml +24 -0
- imap_processing/cdf/config/imap_idex_l1a_variable_attrs.yaml +426 -0
- imap_processing/cdf/config/imap_lo_global_cdf_attrs.yaml +90 -0
- imap_processing/cdf/config/imap_lo_l1a_variable_attrs.yaml +487 -0
- imap_processing/cdf/config/imap_lo_l1b_variable_attrs.yaml +121 -0
- imap_processing/cdf/config/imap_lo_l1c_variable_attrs.yaml +179 -0
- imap_processing/cdf/config/imap_mag_global_cdf_attrs.yaml +97 -0
- imap_processing/cdf/config/imap_mag_l1_variable_attrs.yaml +201 -0
- imap_processing/cdf/config/imap_swapi_global_cdf_attrs.yaml +33 -0
- imap_processing/cdf/config/imap_swapi_variable_attrs.yaml +137 -0
- imap_processing/cdf/config/imap_swe_global_cdf_attrs.yaml +24 -0
- imap_processing/cdf/config/imap_swe_l1a_variable_attrs.yaml +234 -0
- imap_processing/cdf/config/imap_swe_l1b_variable_attrs.yaml +273 -0
- imap_processing/cdf/config/imap_ultra_global_cdf_attrs.yaml +100 -0
- imap_processing/cdf/config/imap_ultra_l1a_variable_attrs.yaml +52 -0
- imap_processing/cdf/config/imap_ultra_l1b_variable_attrs.yaml +297 -0
- imap_processing/cdf/config/imap_ultra_l1c_variable_attrs.yaml +121 -0
- imap_processing/cdf/config/shared/default_global_cdf_attrs_schema.yaml +246 -0
- imap_processing/cdf/config/shared/default_variable_cdf_attrs_schema.yaml +466 -0
- imap_processing/cdf/imap_cdf_manager.py +64 -0
- imap_processing/cdf/utils.py +147 -0
- imap_processing/cli.py +863 -0
- imap_processing/codice/__init__.py +1 -0
- imap_processing/codice/codice_l0.py +54 -0
- imap_processing/codice/codice_l1a.py +558 -0
- imap_processing/codice/codice_l1b.py +194 -0
- imap_processing/codice/constants.py +986 -0
- imap_processing/codice/data/esa_sweep_values.csv +257 -0
- imap_processing/codice/data/lo_stepping_values.csv +129 -0
- imap_processing/codice/decompress.py +142 -0
- imap_processing/codice/packet_definitions/P_COD_NHK.xml +618 -0
- imap_processing/codice/packet_definitions/codice_packet_definition.xml +5073 -0
- imap_processing/codice/utils.py +95 -0
- imap_processing/decom.py +40 -0
- imap_processing/glows/__init__.py +1 -0
- imap_processing/glows/ancillary/l1b_conversion_table_v001.json +42 -0
- imap_processing/glows/l0/__init__.py +0 -0
- imap_processing/glows/l0/decom_glows.py +91 -0
- imap_processing/glows/l0/glows_l0_data.py +194 -0
- imap_processing/glows/l1a/glows_l1a.py +424 -0
- imap_processing/glows/l1a/glows_l1a_data.py +555 -0
- imap_processing/glows/l1b/glows_l1b.py +270 -0
- imap_processing/glows/l1b/glows_l1b_data.py +583 -0
- imap_processing/glows/packet_definitions/GLX_COMBINED.xml +254 -0
- imap_processing/glows/packet_definitions/P_GLX_TMSCDE.xml +97 -0
- imap_processing/glows/packet_definitions/P_GLX_TMSCHIST.xml +215 -0
- imap_processing/glows/utils/__init__.py +0 -0
- imap_processing/glows/utils/constants.py +105 -0
- imap_processing/hi/__init__.py +1 -0
- imap_processing/hi/l0/__init__.py +0 -0
- imap_processing/hi/l0/decom_hi.py +24 -0
- imap_processing/hi/l1a/__init__.py +0 -0
- imap_processing/hi/l1a/hi_l1a.py +73 -0
- imap_processing/hi/l1a/histogram.py +142 -0
- imap_processing/hi/l1a/housekeeping.py +27 -0
- imap_processing/hi/l1a/science_direct_event.py +341 -0
- imap_processing/hi/l1b/__init__.py +0 -0
- imap_processing/hi/l1b/hi_eng_unit_convert_table.csv +154 -0
- imap_processing/hi/l1b/hi_l1b.py +127 -0
- imap_processing/hi/l1c/__init__.py +0 -0
- imap_processing/hi/l1c/hi_l1c.py +228 -0
- imap_processing/hi/packet_definitions/__init__.py +0 -0
- imap_processing/hi/packet_definitions/hi_packet_definition.xml +482 -0
- imap_processing/hi/utils.py +27 -0
- imap_processing/hit/__init__.py +1 -0
- imap_processing/hit/l0/__init__.py +0 -0
- imap_processing/hit/l0/data_classes/housekeeping.py +240 -0
- imap_processing/hit/l0/data_classes/science_packet.py +259 -0
- imap_processing/hit/l0/decom_hit.py +467 -0
- imap_processing/hit/l0/utils/hit_base.py +57 -0
- imap_processing/hit/l1a/__init__.py +0 -0
- imap_processing/hit/l1a/hit_l1a.py +254 -0
- imap_processing/hit/l1b/hit_l1b.py +179 -0
- imap_processing/hit/packet_definitions/hit_packet_definitions.xml +1276 -0
- imap_processing/ialirt/__init__.py +0 -0
- imap_processing/ialirt/l0/__init__.py +0 -0
- imap_processing/ialirt/l0/process_hit.py +220 -0
- imap_processing/ialirt/packet_definitions/__init__.py +0 -0
- imap_processing/ialirt/packet_definitions/ialirt.xml +778 -0
- imap_processing/ialirt/packet_definitions/ialirt_hit.xml +186 -0
- imap_processing/idex/__init__.py +2 -0
- imap_processing/idex/idex_constants.py +27 -0
- imap_processing/idex/idex_l0.py +31 -0
- imap_processing/idex/idex_l1a.py +631 -0
- imap_processing/idex/packet_definitions/idex_packet_definition.xml +3162 -0
- imap_processing/lo/__init__.py +1 -0
- imap_processing/lo/l0/__init__.py +0 -0
- imap_processing/lo/l0/data_classes/science_direct_events.py +215 -0
- imap_processing/lo/l0/data_classes/star_sensor.py +98 -0
- imap_processing/lo/l0/decompression_tables/12_to_16_bit.csv +4097 -0
- imap_processing/lo/l0/decompression_tables/8_to_12_bit.csv +257 -0
- imap_processing/lo/l0/decompression_tables/8_to_16_bit.csv +257 -0
- imap_processing/lo/l0/decompression_tables/decompression_tables.py +75 -0
- imap_processing/lo/l0/lo_apid.py +15 -0
- imap_processing/lo/l0/lo_science.py +150 -0
- imap_processing/lo/l0/utils/binary_string.py +59 -0
- imap_processing/lo/l0/utils/bit_decompression.py +62 -0
- imap_processing/lo/l0/utils/lo_base.py +57 -0
- imap_processing/lo/l1a/__init__.py +0 -0
- imap_processing/lo/l1a/lo_l1a.py +157 -0
- imap_processing/lo/l1b/lo_l1b.py +160 -0
- imap_processing/lo/l1c/lo_l1c.py +180 -0
- imap_processing/lo/packet_definitions/lo_xtce.xml +3541 -0
- imap_processing/mag/__init__.py +2 -0
- imap_processing/mag/constants.py +108 -0
- imap_processing/mag/l0/decom_mag.py +170 -0
- imap_processing/mag/l0/mag_l0_data.py +118 -0
- imap_processing/mag/l1a/mag_l1a.py +317 -0
- imap_processing/mag/l1a/mag_l1a_data.py +1007 -0
- imap_processing/mag/l1b/__init__.py +0 -0
- imap_processing/mag/l1b/imap_calibration_mag_20240229_v01.cdf +0 -0
- imap_processing/mag/l1b/mag_l1b.py +125 -0
- imap_processing/mag/l1c/mag_l1c.py +57 -0
- imap_processing/mag/packet_definitions/MAG_SCI_COMBINED.xml +235 -0
- imap_processing/quality_flags.py +91 -0
- imap_processing/spice/__init__.py +1 -0
- imap_processing/spice/geometry.py +322 -0
- imap_processing/spice/kernels.py +459 -0
- imap_processing/spice/time.py +72 -0
- imap_processing/swapi/__init__.py +1 -0
- imap_processing/swapi/l1/__init__.py +0 -0
- imap_processing/swapi/l1/swapi_l1.py +685 -0
- imap_processing/swapi/l2/__init__.py +0 -0
- imap_processing/swapi/l2/swapi_l2.py +107 -0
- imap_processing/swapi/packet_definitions/__init__.py +0 -0
- imap_processing/swapi/packet_definitions/swapi_packet_definition.xml +708 -0
- imap_processing/swapi/swapi_utils.py +25 -0
- imap_processing/swe/__init__.py +1 -0
- imap_processing/swe/l1a/__init__.py +0 -0
- imap_processing/swe/l1a/swe_l1a.py +48 -0
- imap_processing/swe/l1a/swe_science.py +223 -0
- imap_processing/swe/l1b/engineering_unit_convert_table.csv +65 -0
- imap_processing/swe/l1b/swe_esa_lookup_table.csv +1441 -0
- imap_processing/swe/l1b/swe_l1b.py +49 -0
- imap_processing/swe/l1b/swe_l1b_science.py +557 -0
- imap_processing/swe/packet_definitions/__init__.py +0 -0
- imap_processing/swe/packet_definitions/swe_packet_definition.xml +303 -0
- imap_processing/swe/utils/__init__.py +0 -0
- imap_processing/swe/utils/swe_utils.py +9 -0
- imap_processing/tests/__init__.py +0 -0
- imap_processing/tests/ccsds/test_data/expected_output.xml +171 -0
- imap_processing/tests/ccsds/test_excel_to_xtce.py +285 -0
- imap_processing/tests/cdf/__init__.py +0 -0
- imap_processing/tests/cdf/imap_default_global_cdf_attrs.yaml +8 -0
- imap_processing/tests/cdf/shared/default_global_cdf_attrs_schema.yaml +246 -0
- imap_processing/tests/cdf/shared/default_variable_cdf_attrs_schema.yaml +466 -0
- imap_processing/tests/cdf/test_cdf_attribute_manager.py +353 -0
- imap_processing/tests/cdf/test_data/imap_default_global_test_cdf_attrs.yaml +7 -0
- imap_processing/tests/cdf/test_data/imap_instrument1_global_cdf_attrs.yaml +14 -0
- imap_processing/tests/cdf/test_data/imap_instrument1_level1_variable_attrs.yaml +23 -0
- imap_processing/tests/cdf/test_data/imap_instrument2_global_cdf_attrs.yaml +23 -0
- imap_processing/tests/cdf/test_data/imap_instrument2_level2_variable_attrs.yaml +30 -0
- imap_processing/tests/cdf/test_data/imap_test_global.yaml +26 -0
- imap_processing/tests/cdf/test_data/imap_test_variable.yaml +41 -0
- imap_processing/tests/cdf/test_imap_cdf_manager.py +62 -0
- imap_processing/tests/cdf/test_utils.py +109 -0
- imap_processing/tests/codice/__init__.py +0 -0
- imap_processing/tests/codice/conftest.py +56 -0
- imap_processing/tests/codice/data/eu_unit_lookup_table.csv +101 -0
- imap_processing/tests/codice/data/idle_export_eu.COD_NHK_20230822_122700 2.csv +100 -0
- imap_processing/tests/codice/data/idle_export_raw.COD_NHK_20230822_122700.csv +100 -0
- 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/codice/data/imap_codice_l1a_hi-counters-aggregated_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_hi-counters-singles_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_hi-omni_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_hi-sectored_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_hskp_20100101_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-aggregated_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-counters-singles_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-angular_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-priority_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-nsw-species_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-angular_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-priority_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1a_lo-sw-species_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-aggregated_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_hi-counters-singles_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_hi-omni_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_hi-sectored_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_hskp_20100101_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-aggregated_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-counters-singles_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-angular_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-priority_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-nsw-species_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-angular_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-priority_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/data/imap_codice_l1b_lo-sw-species_20240429_v001.cdf +0 -0
- imap_processing/tests/codice/test_codice_l0.py +144 -0
- imap_processing/tests/codice/test_codice_l1a.py +187 -0
- imap_processing/tests/codice/test_codice_l1b.py +60 -0
- imap_processing/tests/codice/test_decompress.py +50 -0
- imap_processing/tests/conftest.py +372 -0
- imap_processing/tests/glows/direct_events_validation_data_l1a.csv +5704 -0
- imap_processing/tests/glows/glows_test_packet_20110921_v01.pkts +0 -0
- imap_processing/tests/glows/test_glows_decom.py +133 -0
- imap_processing/tests/glows/test_glows_l1a_cdf.py +85 -0
- imap_processing/tests/glows/test_glows_l1a_data.py +510 -0
- imap_processing/tests/glows/test_glows_l1b.py +348 -0
- imap_processing/tests/glows/test_glows_l1b_data.py +70 -0
- imap_processing/tests/hi/__init__.py +0 -0
- imap_processing/tests/hi/conftest.py +133 -0
- imap_processing/tests/hi/test_data/l0/20231030_H45_APP_NHK.bin +0 -0
- imap_processing/tests/hi/test_data/l0/20231030_H45_APP_NHK.csv +201 -0
- imap_processing/tests/hi/test_data/l0/20231030_H45_SCI_CNT.bin +0 -0
- imap_processing/tests/hi/test_data/l0/20231030_H45_SCI_DE.bin +0 -0
- imap_processing/tests/hi/test_data/l0/README.txt +54 -0
- imap_processing/tests/hi/test_decom.py +55 -0
- imap_processing/tests/hi/test_hi_l1b.py +31 -0
- imap_processing/tests/hi/test_hi_l1c.py +69 -0
- imap_processing/tests/hi/test_l1a.py +96 -0
- imap_processing/tests/hi/test_l1a_sci_de.py +72 -0
- imap_processing/tests/hi/test_utils.py +15 -0
- imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1251.pkts +0 -0
- imap_processing/tests/hit/PREFLIGHT_raw_record_2023_256_15_59_04_apid1252.pkts +0 -0
- imap_processing/tests/hit/__init__.py +0 -0
- imap_processing/tests/hit/test_data/imap_hit_l0_hk_20100105_v001.pkts +0 -0
- imap_processing/tests/hit/test_data/sci_sample.ccsds +0 -0
- imap_processing/tests/hit/test_hit_decom.py +230 -0
- imap_processing/tests/hit/test_hit_l1a.py +224 -0
- imap_processing/tests/hit/test_hit_l1b.py +52 -0
- imap_processing/tests/hit/validation_data/hskp_sample_raw.csv +88 -0
- imap_processing/tests/ialirt/__init__.py +0 -0
- imap_processing/tests/ialirt/test_data/l0/IALiRT Raw Packet Telemetry.txt +33 -0
- imap_processing/tests/ialirt/test_data/l0/hit_ialirt_sample.ccsds +0 -0
- imap_processing/tests/ialirt/test_data/l0/hit_ialirt_sample.csv +1001 -0
- imap_processing/tests/ialirt/unit/__init__.py +0 -0
- imap_processing/tests/ialirt/unit/test_decom_ialirt.py +94 -0
- imap_processing/tests/ialirt/unit/test_process_hit.py +226 -0
- imap_processing/tests/idex/__init__.py +0 -0
- imap_processing/tests/idex/conftest.py +22 -0
- imap_processing/tests/idex/imap_idex_l0_raw_20230725_v001.pkts +0 -0
- imap_processing/tests/idex/impact_14_tof_high_data.txt +8189 -0
- imap_processing/tests/idex/test_idex_l0.py +45 -0
- imap_processing/tests/idex/test_idex_l1a.py +91 -0
- imap_processing/tests/lo/__init__.py +0 -0
- imap_processing/tests/lo/test_binary_string.py +21 -0
- imap_processing/tests/lo/test_bit_decompression.py +39 -0
- imap_processing/tests/lo/test_cdfs/imap_lo_l0_raw_20240627_v001.pkts +0 -0
- imap_processing/tests/lo/test_cdfs/imap_lo_l1a_de_20100101_v001.cdf +0 -0
- imap_processing/tests/lo/test_cdfs/imap_lo_l1a_spin_20100101_v001.cdf +0 -0
- imap_processing/tests/lo/test_cdfs/imap_lo_l1b_de_20100101_v001.cdf +0 -0
- imap_processing/tests/lo/test_lo_l1a.py +66 -0
- imap_processing/tests/lo/test_lo_l1b.py +74 -0
- imap_processing/tests/lo/test_lo_l1c.py +66 -0
- imap_processing/tests/lo/test_science_counts.py +41 -0
- imap_processing/tests/lo/test_science_direct_events.py +209 -0
- imap_processing/tests/lo/test_star_sensor.py +35 -0
- imap_processing/tests/mag/imap_mag_l1a_burst-magi_20231025_v001.cdf +0 -0
- imap_processing/tests/mag/mag_l0_test_data.pkts +0 -0
- imap_processing/tests/mag/mag_l0_test_output.csv +37 -0
- imap_processing/tests/mag/mag_l1_test_data.pkts +0 -0
- imap_processing/tests/mag/mag_l1a_test_output.csv +97 -0
- imap_processing/tests/mag/test_mag_decom.py +117 -0
- imap_processing/tests/mag/test_mag_l1a.py +856 -0
- imap_processing/tests/mag/test_mag_l1b.py +77 -0
- imap_processing/tests/mag/test_mag_l1c.py +40 -0
- imap_processing/tests/spice/__init__.py +0 -0
- imap_processing/tests/spice/test_data/imap_ena_sim_metakernel.template +4 -0
- imap_processing/tests/spice/test_data/imap_science_0001.tf +171 -0
- imap_processing/tests/spice/test_data/imap_sclk_0000.tsc +156 -0
- imap_processing/tests/spice/test_data/imap_sim_ck_2hr_2secsampling_with_nutation.bc +0 -0
- imap_processing/tests/spice/test_data/imap_simple_metakernel.template +3 -0
- imap_processing/tests/spice/test_data/imap_spk_demo.bsp +0 -0
- imap_processing/tests/spice/test_data/imap_wkcp.tf +1806 -0
- imap_processing/tests/spice/test_data/naif0012.tls +150 -0
- imap_processing/tests/spice/test_data/sim_1yr_imap_attitude.bc +0 -0
- imap_processing/tests/spice/test_data/sim_1yr_imap_pointing_frame.bc +0 -0
- imap_processing/tests/spice/test_geometry.py +214 -0
- imap_processing/tests/spice/test_kernels.py +272 -0
- imap_processing/tests/spice/test_time.py +35 -0
- imap_processing/tests/swapi/__init__.py +0 -0
- imap_processing/tests/swapi/conftest.py +16 -0
- imap_processing/tests/swapi/l0_data/__init__.py +0 -0
- imap_processing/tests/swapi/l0_data/imap_swapi_l0_raw_20231012_v001.pkts +0 -0
- imap_processing/tests/swapi/l0_validation_data/__init__.py +0 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_AUT_20231012_125245.csv +124 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_HK_20231012_125245.csv +98 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_MG_20231012_125245.csv +9 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_eu.SWP_SCI_20231012_125245.csv +72 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_AUT_20231012_125245.csv +124 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_HK_20231012_125245.csv +98 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_MG_20231012_125245.csv +9 -0
- imap_processing/tests/swapi/l0_validation_data/idle_export_raw.SWP_SCI_20231012_125245.csv +72 -0
- imap_processing/tests/swapi/test_swapi_decom.py +135 -0
- imap_processing/tests/swapi/test_swapi_l1.py +354 -0
- imap_processing/tests/swapi/test_swapi_l2.py +21 -0
- imap_processing/tests/swe/__init__.py +0 -0
- imap_processing/tests/swe/conftest.py +35 -0
- imap_processing/tests/swe/decompressed/20230927173238_4th_quarter_decompressed.csv +181 -0
- imap_processing/tests/swe/decompressed/20230927173253_1st_quarter_decompressed.csv +181 -0
- imap_processing/tests/swe/decompressed/20230927173308_2nd_quarter_decompressed.csv +181 -0
- imap_processing/tests/swe/decompressed/20230927173323_3rd_quarter_decompressed.csv +181 -0
- imap_processing/tests/swe/l0_data/2024051010_SWE_SCIENCE_packet.bin +0 -0
- imap_processing/tests/swe/l0_validation_data/idle_export_eu.SWE_SCIENCE_20240510_092742.csv +544 -0
- imap_processing/tests/swe/l0_validation_data/idle_export_raw.SWE_SCIENCE_20240510_092742.csv +363 -0
- imap_processing/tests/swe/test_swe_l1a.py +12 -0
- imap_processing/tests/swe/test_swe_l1a_science.py +129 -0
- imap_processing/tests/swe/test_swe_l1b.py +61 -0
- imap_processing/tests/swe/test_swe_l1b_science.py +65 -0
- imap_processing/tests/test_cli.py +229 -0
- imap_processing/tests/test_decom.py +66 -0
- imap_processing/tests/test_quality_flags.py +71 -0
- imap_processing/tests/test_utils.py +107 -0
- imap_processing/tests/ultra/__init__.py +0 -0
- imap_processing/tests/ultra/test_data/l0/FM45_40P_Phi28p5_BeamCal_LinearScan_phi28.50_theta-0.00_20240207T102740.CCSDS +0 -0
- imap_processing/tests/ultra/test_data/l0/FM45_7P_Phi0.0_BeamCal_LinearScan_phi0.04_theta-0.01_20230821T121304.CCSDS +0 -0
- imap_processing/tests/ultra/test_data/l0/FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.CCSDS +0 -0
- imap_processing/tests/ultra/test_data/l0/Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.CCSDS +0 -0
- imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_auxdata_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +24 -0
- imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_enaphxtofhangimg_FM45_TV_Cycle6_Hot_Ops_Front212_20240124T063837.csv +105 -0
- imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultraimgrates_Ultra45_EM_SwRI_Cal_Run7_ThetaScan_20220530T225054.csv +24 -0
- imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimg_withFSWcalcs_FM45_40P_Phi28p5_BeamCal_LinearScan_phi2850_theta-000_20240207T102740.csv +3314 -0
- imap_processing/tests/ultra/test_data/l0/ultra45_raw_sc_ultrarawimgevent_FM45_7P_Phi00_BeamCal_LinearScan_phi004_theta-001_20230821T121304.csv +702 -0
- imap_processing/tests/ultra/unit/__init__.py +0 -0
- imap_processing/tests/ultra/unit/conftest.py +210 -0
- imap_processing/tests/ultra/unit/test_decom_apid_880.py +98 -0
- imap_processing/tests/ultra/unit/test_decom_apid_881.py +50 -0
- imap_processing/tests/ultra/unit/test_decom_apid_883.py +44 -0
- imap_processing/tests/ultra/unit/test_decom_apid_896.py +104 -0
- imap_processing/tests/ultra/unit/test_lookup_utils.py +68 -0
- imap_processing/tests/ultra/unit/test_ultra_l1a.py +338 -0
- imap_processing/tests/ultra/unit/test_ultra_l1b.py +122 -0
- imap_processing/tests/ultra/unit/test_ultra_l1b_annotated.py +57 -0
- imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py +342 -0
- imap_processing/tests/ultra/unit/test_ultra_l1c.py +104 -0
- imap_processing/tests/ultra/unit/test_ultra_l1c_pset_bins.py +35 -0
- imap_processing/ultra/__init__.py +1 -0
- imap_processing/ultra/constants.py +60 -0
- imap_processing/ultra/l0/__init__.py +0 -0
- imap_processing/ultra/l0/decom_tools.py +281 -0
- imap_processing/ultra/l0/decom_ultra.py +278 -0
- imap_processing/ultra/l0/ultra_utils.py +326 -0
- imap_processing/ultra/l1a/__init__.py +0 -0
- imap_processing/ultra/l1a/ultra_l1a.py +319 -0
- imap_processing/ultra/l1b/badtimes.py +26 -0
- imap_processing/ultra/l1b/cullingmask.py +26 -0
- imap_processing/ultra/l1b/de.py +59 -0
- imap_processing/ultra/l1b/extendedspin.py +45 -0
- imap_processing/ultra/l1b/lookup_utils.py +165 -0
- imap_processing/ultra/l1b/ultra_l1b.py +65 -0
- imap_processing/ultra/l1b/ultra_l1b_annotated.py +54 -0
- imap_processing/ultra/l1b/ultra_l1b_extended.py +764 -0
- imap_processing/ultra/l1c/histogram.py +36 -0
- imap_processing/ultra/l1c/pset.py +36 -0
- imap_processing/ultra/l1c/ultra_l1c.py +52 -0
- imap_processing/ultra/l1c/ultra_l1c_pset_bins.py +54 -0
- imap_processing/ultra/lookup_tables/EgyNorm.mem.csv +32769 -0
- imap_processing/ultra/lookup_tables/FM45_Startup1_ULTRA_IMGPARAMS_20240719.csv +2 -0
- imap_processing/ultra/lookup_tables/ultra45_back-pos-luts.csv +4097 -0
- imap_processing/ultra/lookup_tables/ultra45_tdc_norm.csv +2050 -0
- imap_processing/ultra/lookup_tables/ultra90_back-pos-luts.csv +4097 -0
- imap_processing/ultra/lookup_tables/ultra90_tdc_norm.csv +2050 -0
- imap_processing/ultra/lookup_tables/yadjust.csv +257 -0
- imap_processing/ultra/packet_definitions/ULTRA_SCI_COMBINED.xml +547 -0
- imap_processing/ultra/packet_definitions/__init__.py +0 -0
- imap_processing/ultra/utils/__init__.py +0 -0
- imap_processing/ultra/utils/ultra_l1_utils.py +50 -0
- imap_processing/utils.py +413 -0
- imap_processing-0.6.0.dist-info/LICENSE +21 -0
- imap_processing-0.6.0.dist-info/METADATA +107 -0
- imap_processing-0.6.0.dist-info/RECORD +398 -0
- imap_processing-0.6.0.dist-info/WHEEL +4 -0
- imap_processing-0.6.0.dist-info/entry_points.txt +4 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
import pytest
|
|
5
|
+
import xarray as xr
|
|
6
|
+
|
|
7
|
+
from imap_processing.cdf.utils import load_cdf, write_cdf
|
|
8
|
+
from imap_processing.mag.l1b.mag_l1b import mag_l1b, mag_l1b_processing
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture(scope="module")
|
|
12
|
+
def mag_l1a_dataset():
|
|
13
|
+
epoch = xr.DataArray(np.arange(20), name="epoch", dims=["epoch"])
|
|
14
|
+
direction = xr.DataArray(np.arange(4), name="direction", dims=["direction"])
|
|
15
|
+
vectors = xr.DataArray(
|
|
16
|
+
np.zeros((20, 4)),
|
|
17
|
+
dims=["epoch", "direction"],
|
|
18
|
+
coords={"epoch": epoch, "direction": direction},
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
vectors[0, :] = np.array([1, 1, 1, 0])
|
|
22
|
+
|
|
23
|
+
output_dataset = xr.Dataset(
|
|
24
|
+
coords={"epoch": epoch, "direction": direction},
|
|
25
|
+
)
|
|
26
|
+
output_dataset["vectors"] = vectors
|
|
27
|
+
|
|
28
|
+
return output_dataset
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_mag_processing(mag_l1a_dataset):
|
|
32
|
+
mag_l1a_dataset.attrs["Logical_source"] = ["imap_mag_l1a_norm-mago"]
|
|
33
|
+
|
|
34
|
+
mag_l1b = mag_l1b_processing(mag_l1a_dataset)
|
|
35
|
+
|
|
36
|
+
np.testing.assert_allclose(
|
|
37
|
+
mag_l1b["vectors"][0].values, [2.29819857, 2.22914442, 2.24950008, 0]
|
|
38
|
+
)
|
|
39
|
+
np.testing.assert_allclose(mag_l1b["vectors"][1].values, [0, 0, 0, 0])
|
|
40
|
+
|
|
41
|
+
assert mag_l1b["vectors"].values.shape == mag_l1a_dataset["vectors"].values.shape
|
|
42
|
+
|
|
43
|
+
mag_l1a_dataset.attrs["Logical_source"] = ["imap_mag_l1a_norm-magi"]
|
|
44
|
+
|
|
45
|
+
mag_l1b = mag_l1b_processing(mag_l1a_dataset)
|
|
46
|
+
|
|
47
|
+
np.testing.assert_allclose(
|
|
48
|
+
mag_l1b["vectors"][0].values, [2.27615106, 2.22638234, 2.24382211, 0]
|
|
49
|
+
)
|
|
50
|
+
np.testing.assert_allclose(mag_l1b["vectors"][1].values, [0, 0, 0, 0])
|
|
51
|
+
|
|
52
|
+
assert mag_l1b["vectors"].values.shape == mag_l1a_dataset["vectors"].values.shape
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def test_mag_attributes(mag_l1a_dataset):
|
|
56
|
+
mag_l1a_dataset.attrs["Logical_source"] = ["imap_mag_l1a_norm-mago"]
|
|
57
|
+
|
|
58
|
+
output = mag_l1b(mag_l1a_dataset, "v001")
|
|
59
|
+
assert output.attrs["Logical_source"] == "imap_mag_l1b_norm-mago"
|
|
60
|
+
|
|
61
|
+
mag_l1a_dataset.attrs["Logical_source"] = ["imap_mag_l1a_burst-magi"]
|
|
62
|
+
|
|
63
|
+
output = mag_l1b(mag_l1a_dataset, "v001")
|
|
64
|
+
assert output.attrs["Logical_source"] == "imap_mag_l1b_burst-magi"
|
|
65
|
+
|
|
66
|
+
assert output.attrs["Data_level"] == "L1B"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def test_cdf_output():
|
|
70
|
+
l1a_cdf = load_cdf(
|
|
71
|
+
Path(__file__).parent / "imap_mag_l1a_burst-magi_20231025_v001.cdf"
|
|
72
|
+
)
|
|
73
|
+
l1b_dataset = mag_l1b(l1a_cdf, "v001")
|
|
74
|
+
|
|
75
|
+
output_path = write_cdf(l1b_dataset)
|
|
76
|
+
|
|
77
|
+
assert Path.exists(output_path)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import pytest
|
|
3
|
+
import xarray as xr
|
|
4
|
+
|
|
5
|
+
from imap_processing.mag.l1c.mag_l1c import mag_l1c
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@pytest.fixture(scope="module")
|
|
9
|
+
def mag_l1b_dataset():
|
|
10
|
+
epoch = xr.DataArray(np.arange(20), name="epoch", dims=["epoch"])
|
|
11
|
+
direction = xr.DataArray(np.arange(4), name="direction", dims=["direction"])
|
|
12
|
+
vectors = xr.DataArray(
|
|
13
|
+
np.zeros((20, 4)),
|
|
14
|
+
dims=["epoch", "direction"],
|
|
15
|
+
coords={"epoch": epoch, "direction": direction},
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
vectors[0, :] = np.array([1, 1, 1, 0])
|
|
19
|
+
|
|
20
|
+
output_dataset = xr.Dataset(
|
|
21
|
+
coords={"epoch": epoch, "direction": direction},
|
|
22
|
+
)
|
|
23
|
+
output_dataset["vectors"] = vectors
|
|
24
|
+
|
|
25
|
+
return output_dataset
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def test_mag_attributes(mag_l1b_dataset):
|
|
29
|
+
# Fixture from test_mag_l1b.py, since L1A and L1B are very similar
|
|
30
|
+
mag_l1b_dataset.attrs["Logical_source"] = ["imap_mag_l1b_norm-mago"]
|
|
31
|
+
|
|
32
|
+
output = mag_l1c(mag_l1b_dataset, mag_l1b_dataset, "v001")
|
|
33
|
+
assert output.attrs["Logical_source"] == "imap_mag_l1c_norm-mago"
|
|
34
|
+
|
|
35
|
+
mag_l1b_dataset.attrs["Logical_source"] = ["imap_mag_l1b_norm-magi"]
|
|
36
|
+
|
|
37
|
+
output = mag_l1c(mag_l1b_dataset, mag_l1b_dataset, "v001")
|
|
38
|
+
assert output.attrs["Logical_source"] == "imap_mag_l1c_norm-magi"
|
|
39
|
+
|
|
40
|
+
assert output.attrs["Data_level"] == "L1C"
|
|
File without changes
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
KPL/FK
|
|
2
|
+
|
|
3
|
+
Interstellar Mapping and Acceleration Probe Dynamic Frames Kernel
|
|
4
|
+
========================================================================
|
|
5
|
+
|
|
6
|
+
This kernel contains SPICE frame definitions to support the IMAP mission.
|
|
7
|
+
|
|
8
|
+
To be consistent with conventions prior to the mission name change
|
|
9
|
+
from Solar Probe Plus (SPP) to Parker Solar Probe (PSP) in 2017, frame
|
|
10
|
+
names and other text IDs are prefixed with the legacy acronym, SPP.
|
|
11
|
+
|
|
12
|
+
Version and Date
|
|
13
|
+
---------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
The TEXT_KERNEL_ID stores version information of loaded project text
|
|
16
|
+
kernels. Each entry associated with the keyword is a string that
|
|
17
|
+
consists of four parts: the kernel name, version, entry date, and type.
|
|
18
|
+
|
|
19
|
+
SPP Dynamic Frame Kernel Version:
|
|
20
|
+
|
|
21
|
+
\begindata
|
|
22
|
+
|
|
23
|
+
TEXT_KERNEL_ID = 'IMAP_DYNAMIC_FRAMES V1.0.0 2024-XXXX-NN FK'
|
|
24
|
+
|
|
25
|
+
\begintext
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Version 1.0.0 -- April 10, 2024 -- Nick Dutton (JHU/APL)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
References
|
|
32
|
+
---------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
1. NAIF SPICE `Kernel Pool Required Reading'
|
|
35
|
+
|
|
36
|
+
2. NAIF SPICE `Frames Required Reading'
|
|
37
|
+
|
|
38
|
+
3. Email from Scott Turner, received May 2, 2018, containing
|
|
39
|
+
attachment InstrumentFrames.pptx, by Martha Kusterer dated
|
|
40
|
+
Sept. 19, 2017
|
|
41
|
+
|
|
42
|
+
4. msgr_dyn_v600.tf, in Planetary Data System (PDS)
|
|
43
|
+
data set MESS-E/V/H-SPICE-6-V1.0
|
|
44
|
+
|
|
45
|
+
5. stereo_rtn.tf, at
|
|
46
|
+
ftp://sohoftp.nascom.nasa.gov/solarsoft/stereo/gen/data/spice
|
|
47
|
+
|
|
48
|
+
6. heliospheric.tf, at
|
|
49
|
+
ftp://sohoftp.nascom.nasa.gov/solarsoft/stereo/gen/data/spice/gen
|
|
50
|
+
|
|
51
|
+
7. Email from Scott Turner received May 11, 2018 containing notes
|
|
52
|
+
taken from the science team meeting on the same date.
|
|
53
|
+
|
|
54
|
+
8. Snodgrass, H.B., Ulrich, R.K., 1990, Rotation of Doppler features
|
|
55
|
+
in the solar photosphere. Astrophys. J. 351, 309. doi:10.1086/168467
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Contact Information
|
|
59
|
+
---------------------------------------------------------------
|
|
60
|
+
|
|
61
|
+
Direct questions, comments, or concerns about the contents of this
|
|
62
|
+
kernel to:
|
|
63
|
+
|
|
64
|
+
Scott Turner, JHUAPL, (443)778-1693, Scott.Turner@jhuapl.edu
|
|
65
|
+
|
|
66
|
+
or
|
|
67
|
+
|
|
68
|
+
Lillian Nguyen, JHUAPL (443)778-5477, Lillian.Nguyen@jhuapl.edu
|
|
69
|
+
|
|
70
|
+
or
|
|
71
|
+
|
|
72
|
+
Douglas Rodgers, JHUAPL (443)778-4228, Douglas.Rodgers@jhuapl.edu
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
Implementation Notes
|
|
76
|
+
---------------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
This file is used by the SPICE system as follows: programs that make use
|
|
79
|
+
of this frame kernel must `load' the kernel normally during program
|
|
80
|
+
initialization. Loading the kernel associates the data items with
|
|
81
|
+
their names in a data structure called the `kernel pool'. The SPICELIB
|
|
82
|
+
routine FURNSH loads a kernel into the pool as shown below:
|
|
83
|
+
|
|
84
|
+
FORTRAN: (SPICELIB)
|
|
85
|
+
|
|
86
|
+
CALL FURNSH ( frame_kernel_name )
|
|
87
|
+
|
|
88
|
+
C: (CSPICE)
|
|
89
|
+
|
|
90
|
+
furnsh_c ( frame_kernel_name );
|
|
91
|
+
|
|
92
|
+
IDL: (ICY)
|
|
93
|
+
|
|
94
|
+
cspice_furnsh, frame_kernel_name
|
|
95
|
+
|
|
96
|
+
MATLAB: (MICE)
|
|
97
|
+
|
|
98
|
+
cspice_furnsh ( frame_kernel_name )
|
|
99
|
+
|
|
100
|
+
This file was created and may be updated with a text editor or word
|
|
101
|
+
processor.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
IMAP Dynamic Frames
|
|
105
|
+
---------------------------------------------------------------
|
|
106
|
+
|
|
107
|
+
This frame kernel defines a series of dynamic frames listed in [3]
|
|
108
|
+
that support Parker Solar Probe data reduction and analysis. All
|
|
109
|
+
of the frame names defined by this kernel are prefixed with 'SPP_'
|
|
110
|
+
(the legacy mission name acronym as described in the leading paragraph
|
|
111
|
+
of this file) to avoid conflict with alternative definitions not
|
|
112
|
+
specific to the project. Further, the project-specific ID codes
|
|
113
|
+
-96900 to -96999 have been set aside to support these dynamic frames.
|
|
114
|
+
|
|
115
|
+
The following dynamic frames are defined in this kernel file:
|
|
116
|
+
|
|
117
|
+
Frame Name Relative To Type NAIF ID
|
|
118
|
+
====================== =================== ======= =======
|
|
119
|
+
|
|
120
|
+
Earth Based Frames:
|
|
121
|
+
------------------
|
|
122
|
+
EARTH_FIXED IAU_EARTH FIXED
|
|
123
|
+
IMAP_RTN J2000 DYNAMIC -96900
|
|
124
|
+
SPP_GSE J2000 DYNAMIC -96901
|
|
125
|
+
|
|
126
|
+
Mercury Based Frames:
|
|
127
|
+
------------------
|
|
128
|
+
SPP_MSO J2000 DYNAMIC -96903
|
|
129
|
+
|
|
130
|
+
Venus Based Frames:
|
|
131
|
+
------------------
|
|
132
|
+
SPP_VSO J2000 DYNAMIC -96904
|
|
133
|
+
|
|
134
|
+
Sun Based Frames:
|
|
135
|
+
------------------
|
|
136
|
+
SPP_HG J2000 DYNAMIC -96910
|
|
137
|
+
SPP_HCI J2000 DYNAMIC -96911
|
|
138
|
+
SPP_HEE J2000 DYNAMIC -96912
|
|
139
|
+
SPP_HEEQ J2000 DYNAMIC -96913
|
|
140
|
+
SPP_RTN J2000 DYNAMIC -96914
|
|
141
|
+
SPP_HERTN J2000 DYNAMIC -96915
|
|
142
|
+
SPP_HGI J2000 DYNAMIC -96916
|
|
143
|
+
SPP_HGDOPP J2000 DYNAMIC -96917
|
|
144
|
+
SPP_HGMAG J2000 DYNAMIC -96918
|
|
145
|
+
SPP_HGSPEC J2000 DYNAMIC -96919
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
\begindata
|
|
150
|
+
|
|
151
|
+
NAIF_BODY_NAME += ( 'IMAP_DPS' )
|
|
152
|
+
NAIF_BODY_CODE += ( -43901 )
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
\begintext
|
|
157
|
+
|
|
158
|
+
DPS Frame
|
|
159
|
+
|
|
160
|
+
\begindata
|
|
161
|
+
|
|
162
|
+
FRAME_IMAP_DPS = -43901
|
|
163
|
+
FRAME_-43901_NAME = 'IMAP_DPS'
|
|
164
|
+
FRAME_-43901_CLASS = 3
|
|
165
|
+
FRAME_-43901_CLASS_ID = -43901
|
|
166
|
+
FRAME_-43901_CENTER = -43
|
|
167
|
+
CK_-43901_SCLK = -43
|
|
168
|
+
|
|
169
|
+
\begintext
|
|
170
|
+
|
|
171
|
+
END OF FILE
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
\begintext
|
|
2
|
+
|
|
3
|
+
FILENAME = "imap_0000.tsc"
|
|
4
|
+
CREATION_DATE = "5-January-2021"
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
IMAP Spacecraft Clock Kernel (SCLK)
|
|
8
|
+
===========================================================================
|
|
9
|
+
|
|
10
|
+
This file is a SPICE spacecraft clock (SCLK) kernel containing
|
|
11
|
+
information required for time conversions involving the on-board
|
|
12
|
+
IMAP spacecraft clock.
|
|
13
|
+
|
|
14
|
+
Version
|
|
15
|
+
--------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
IMAP SCLK Kernel Version:
|
|
18
|
+
|
|
19
|
+
IMAP version 0.3 - April 22, 2022 -- Mike Ruffolo
|
|
20
|
+
Updated to use NAIF SC ID 43
|
|
21
|
+
|
|
22
|
+
IMAP Version 0.2 - June 2, 2021 -- Caroline Cocca
|
|
23
|
+
Updated to use temporary spacecraft id of 225
|
|
24
|
+
|
|
25
|
+
IMAP Version 0.1 - March 6, 2015 -- Eric Melin
|
|
26
|
+
Updated text to replace references to RBSP with SPP
|
|
27
|
+
|
|
28
|
+
IMAP Version 0.0 - August 7, 2014 -- Eric Melin
|
|
29
|
+
The initial SPP spice kernel.
|
|
30
|
+
This file was created by using RBSPA initial kernel and
|
|
31
|
+
modifying the spacecraft ID.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
Usage
|
|
35
|
+
--------------------------------------------------------
|
|
36
|
+
|
|
37
|
+
This file is used by the SPICE system as follows: programs that
|
|
38
|
+
make use of this SCLK kernel must 'load' the kernel, normally
|
|
39
|
+
during program initialization. Loading the kernel associates
|
|
40
|
+
the data items with their names in a data structure called the
|
|
41
|
+
'kernel pool'. The SPICELIB routine FURNSH loads text kernel
|
|
42
|
+
files, such as this one, into the pool as shown below:
|
|
43
|
+
|
|
44
|
+
FORTRAN:
|
|
45
|
+
|
|
46
|
+
CALL FURNSH ( SCLK_kernel_name )
|
|
47
|
+
|
|
48
|
+
C:
|
|
49
|
+
|
|
50
|
+
furnsh_c ( SCLK_kernel_name );
|
|
51
|
+
|
|
52
|
+
Once loaded, the SCLK time conversion routines will be able to
|
|
53
|
+
access the necessary data located in this kernel for their
|
|
54
|
+
designed purposes.
|
|
55
|
+
|
|
56
|
+
References
|
|
57
|
+
--------------------------------------------------------
|
|
58
|
+
|
|
59
|
+
1. "SCLK Required Reading"
|
|
60
|
+
|
|
61
|
+
Inquiries
|
|
62
|
+
--------------------------------------------------------
|
|
63
|
+
|
|
64
|
+
If you have any questions regarding this file or its usage,
|
|
65
|
+
contact:
|
|
66
|
+
|
|
67
|
+
Scott Turner
|
|
68
|
+
(443)778-1693
|
|
69
|
+
Scott.Turner@jhuapl.edu
|
|
70
|
+
|
|
71
|
+
Kernel Data
|
|
72
|
+
--------------------------------------------------------
|
|
73
|
+
|
|
74
|
+
The first block of keyword equals value assignments define the
|
|
75
|
+
type, parallel time system, and format of the spacecraft clock.
|
|
76
|
+
These fields are invariant from SCLK kernel update to SCLK
|
|
77
|
+
kernel update.
|
|
78
|
+
|
|
79
|
+
The IMAP spacecraft clock is represented by the SPICE
|
|
80
|
+
type 1 SCLK kernel. It uses TDT, Terrestrial Dynamical Time,
|
|
81
|
+
as its parallel time system.
|
|
82
|
+
|
|
83
|
+
\begindata
|
|
84
|
+
|
|
85
|
+
SCLK_KERNEL_ID = ( @2009-07-09T12:20:32 )
|
|
86
|
+
SCLK_DATA_TYPE_43 = ( 1 )
|
|
87
|
+
SCLK01_TIME_SYSTEM_43 = ( 2 )
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
\begintext
|
|
91
|
+
|
|
92
|
+
In a particular partition of the IMAP spacecraft clock,
|
|
93
|
+
the clock read-out consists of two separate stages:
|
|
94
|
+
|
|
95
|
+
1/18424652:24251
|
|
96
|
+
|
|
97
|
+
The first stage, a 32 bit field, represents the spacecraft
|
|
98
|
+
clock seconds count. The second, a 16 bit field, represents
|
|
99
|
+
counts of 20 microsecond increments of the spacecraft clock.
|
|
100
|
+
|
|
101
|
+
The following keywords and their values establish this structure:
|
|
102
|
+
|
|
103
|
+
\begindata
|
|
104
|
+
|
|
105
|
+
SCLK01_N_FIELDS_43 = ( 2 )
|
|
106
|
+
SCLK01_MODULI_43 = ( 4294967296 50000 )
|
|
107
|
+
SCLK01_OFFSETS_43 = ( 0 0 )
|
|
108
|
+
SCLK01_OUTPUT_DELIM_43 = ( 2 )
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
\begintext
|
|
112
|
+
|
|
113
|
+
This concludes the invariant portion of the SCLK kernel data. The
|
|
114
|
+
remaining sections of the kernel may require updates as the clock
|
|
115
|
+
correlation coefficients evolve in time. The first section below
|
|
116
|
+
establishes the clock partitions. The data in this section consists
|
|
117
|
+
of two parallel arrays, which denote the start and end values in
|
|
118
|
+
ticks of each partition of the spacecraft clock.
|
|
119
|
+
|
|
120
|
+
SPICE utilizes these two arrays to map from spacecraft clock ticks,
|
|
121
|
+
determined with the usual modulo arithmetic, to encoded SCLK--the
|
|
122
|
+
internal, monotonically increasing sequence used to tag various
|
|
123
|
+
data sources with spacecraft clock.
|
|
124
|
+
|
|
125
|
+
\begindata
|
|
126
|
+
|
|
127
|
+
SCLK_PARTITION_START_43 = ( 0.00000000000000e+00 )
|
|
128
|
+
|
|
129
|
+
SCLK_PARTITION_END_43 = ( 2.14748364799999e+14 )
|
|
130
|
+
|
|
131
|
+
\begintext
|
|
132
|
+
|
|
133
|
+
The remaining section of the SCLK kernel defines the clock correlation
|
|
134
|
+
coefficients. Each line contains a 'coefficient triple':
|
|
135
|
+
|
|
136
|
+
Encoded SCLK at which Rate is introduced.
|
|
137
|
+
Corresponding TDT Epoch at which Rate is introduced.
|
|
138
|
+
Rate in TDT (seconds) / most significant clock count (~seconds).
|
|
139
|
+
|
|
140
|
+
SPICE uses linear extrapolation to convert between the parallel time
|
|
141
|
+
system and encoded SCLK. The triples are stored in the array defined
|
|
142
|
+
below.
|
|
143
|
+
|
|
144
|
+
The first time triplet below was entered manually and represents the
|
|
145
|
+
approximate time (in TDT) at which SCLK = zero. The current plan for
|
|
146
|
+
IMAP is that the given epoch will be used for both Observatory I&T
|
|
147
|
+
and launch. Note that the conversion from UTC to TDT used 34 leap
|
|
148
|
+
seconds.
|
|
149
|
+
|
|
150
|
+
\begindata
|
|
151
|
+
|
|
152
|
+
SCLK01_COEFFICIENTS_43 = (
|
|
153
|
+
|
|
154
|
+
0 @01-JAN-2010-00:01:06.184000 1.00000000000
|
|
155
|
+
|
|
156
|
+
)
|
|
Binary file
|
|
Binary file
|