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,15 @@
|
|
|
1
|
+
"""Test coverage for imap_processing.hi.utils.py"""
|
|
2
|
+
|
|
3
|
+
from imap_processing.hi.utils import HIAPID
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_hiapid():
|
|
7
|
+
"""Test coverage for HIAPID class"""
|
|
8
|
+
hi_apid = HIAPID(754)
|
|
9
|
+
assert isinstance(hi_apid, HIAPID)
|
|
10
|
+
assert hi_apid.name == "H45_APP_NHK"
|
|
11
|
+
assert hi_apid.sensor == "45sensor"
|
|
12
|
+
|
|
13
|
+
hi_apid = HIAPID["H90_SCI_CNT"]
|
|
14
|
+
assert hi_apid.value == 833
|
|
15
|
+
assert hi_apid.sensor == "90sensor"
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from imap_processing import imap_module_directory
|
|
7
|
+
from imap_processing.hit.l0.decom_hit import (
|
|
8
|
+
assemble_science_frames,
|
|
9
|
+
decom_hit,
|
|
10
|
+
find_valid_starting_indices,
|
|
11
|
+
get_valid_indices,
|
|
12
|
+
is_sequential,
|
|
13
|
+
parse_count_rates,
|
|
14
|
+
parse_data,
|
|
15
|
+
update_ccsds_header_dims,
|
|
16
|
+
)
|
|
17
|
+
from imap_processing.utils import packet_file_to_datasets
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@pytest.fixture()
|
|
21
|
+
def sci_dataset():
|
|
22
|
+
"""Create a xarray dataset for testing from sample data."""
|
|
23
|
+
packet_definition = (
|
|
24
|
+
imap_module_directory / "hit/packet_definitions/hit_packet_definitions.xml"
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
# L0 file path
|
|
28
|
+
packet_file = Path(imap_module_directory / "tests/hit/test_data/sci_sample.ccsds")
|
|
29
|
+
|
|
30
|
+
datasets_by_apid = packet_file_to_datasets(
|
|
31
|
+
packet_file=packet_file,
|
|
32
|
+
xtce_packet_definition=packet_definition,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
science_dataset = datasets_by_apid[1252]
|
|
36
|
+
return science_dataset
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_parse_data():
|
|
40
|
+
"""Test the parse_data function."""
|
|
41
|
+
# Test parsing a single integer
|
|
42
|
+
bin_str = "110"
|
|
43
|
+
bits_per_index = 2
|
|
44
|
+
start = 0
|
|
45
|
+
end = 2
|
|
46
|
+
result = parse_data(bin_str, bits_per_index, start, end)
|
|
47
|
+
assert result == [3] # 11 in binary is 3
|
|
48
|
+
|
|
49
|
+
# Test parsing multiple integers
|
|
50
|
+
bin_str = "110010101011"
|
|
51
|
+
bits_per_index = 2
|
|
52
|
+
start = 0
|
|
53
|
+
end = 12
|
|
54
|
+
result = parse_data(bin_str, bits_per_index, start, end)
|
|
55
|
+
assert result == [3, 0, 2, 2, 2, 3] # 11, 00, 10, 10, 10, 11 in binary
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_parse_count_rates(sci_dataset):
|
|
59
|
+
"""Test the parse_count_rates function."""
|
|
60
|
+
|
|
61
|
+
# TODO: complete this test once the function is complete
|
|
62
|
+
|
|
63
|
+
# Update ccsds header fields to use sc_tick as dimension
|
|
64
|
+
sci_dataset = update_ccsds_header_dims(sci_dataset)
|
|
65
|
+
|
|
66
|
+
# Group science packets into groups of 20
|
|
67
|
+
sci_dataset = assemble_science_frames(sci_dataset)
|
|
68
|
+
# Parse count rates and add to dataset
|
|
69
|
+
parse_count_rates(sci_dataset)
|
|
70
|
+
# Added count rate variables to dataset
|
|
71
|
+
count_rate_vars = [
|
|
72
|
+
"hdr_unit_num",
|
|
73
|
+
"hdr_frame_version",
|
|
74
|
+
"hdr_status_bits",
|
|
75
|
+
"hdr_minute_cnt",
|
|
76
|
+
"spare",
|
|
77
|
+
"livetime",
|
|
78
|
+
"num_trig",
|
|
79
|
+
"num_reject",
|
|
80
|
+
"num_acc_w_pha",
|
|
81
|
+
"num_acc_no_pha",
|
|
82
|
+
"num_haz_trig",
|
|
83
|
+
"num_haz_reject",
|
|
84
|
+
"num_haz_acc_w_pha",
|
|
85
|
+
"num_haz_acc_no_pha",
|
|
86
|
+
"sngrates",
|
|
87
|
+
"nread",
|
|
88
|
+
"nhazard",
|
|
89
|
+
"nadcstim",
|
|
90
|
+
"nodd",
|
|
91
|
+
"noddfix",
|
|
92
|
+
"nmulti",
|
|
93
|
+
"nmultifix",
|
|
94
|
+
"nbadtraj",
|
|
95
|
+
"nl2",
|
|
96
|
+
"nl3",
|
|
97
|
+
"nl4",
|
|
98
|
+
"npen",
|
|
99
|
+
"nformat",
|
|
100
|
+
"naside",
|
|
101
|
+
"nbside",
|
|
102
|
+
"nerror",
|
|
103
|
+
"nbadtags",
|
|
104
|
+
"coinrates",
|
|
105
|
+
"bufrates",
|
|
106
|
+
"l2fgrates",
|
|
107
|
+
"l2bgrates",
|
|
108
|
+
"l3fgrates",
|
|
109
|
+
"l3bgrates",
|
|
110
|
+
"penfgrates",
|
|
111
|
+
"penbgrates",
|
|
112
|
+
"ialirtrates",
|
|
113
|
+
"sectorates",
|
|
114
|
+
"l4fgrates",
|
|
115
|
+
"l4bgrates",
|
|
116
|
+
]
|
|
117
|
+
if count_rate_vars in list(sci_dataset.keys()):
|
|
118
|
+
assert True
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_is_sequential():
|
|
122
|
+
"""Test the is_sequential function."""
|
|
123
|
+
counters = np.array([0, 1, 2, 3, 4])
|
|
124
|
+
if is_sequential(counters):
|
|
125
|
+
assert True
|
|
126
|
+
counters = np.array([0, 2, 3, 4, 5])
|
|
127
|
+
if not is_sequential(counters):
|
|
128
|
+
assert True
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def test_find_valid_starting_indices():
|
|
132
|
+
"""Test the find_valid_starting_indices function."""
|
|
133
|
+
flags = np.array(
|
|
134
|
+
[
|
|
135
|
+
0,
|
|
136
|
+
0,
|
|
137
|
+
0,
|
|
138
|
+
0,
|
|
139
|
+
0,
|
|
140
|
+
0,
|
|
141
|
+
0,
|
|
142
|
+
0,
|
|
143
|
+
0,
|
|
144
|
+
0,
|
|
145
|
+
0,
|
|
146
|
+
0,
|
|
147
|
+
0,
|
|
148
|
+
0,
|
|
149
|
+
2,
|
|
150
|
+
1,
|
|
151
|
+
0,
|
|
152
|
+
0,
|
|
153
|
+
0,
|
|
154
|
+
0,
|
|
155
|
+
0,
|
|
156
|
+
0,
|
|
157
|
+
0,
|
|
158
|
+
0,
|
|
159
|
+
0,
|
|
160
|
+
0,
|
|
161
|
+
0,
|
|
162
|
+
0,
|
|
163
|
+
0,
|
|
164
|
+
0,
|
|
165
|
+
0,
|
|
166
|
+
0,
|
|
167
|
+
0,
|
|
168
|
+
0,
|
|
169
|
+
2,
|
|
170
|
+
]
|
|
171
|
+
)
|
|
172
|
+
counters = np.arange(35)
|
|
173
|
+
result = find_valid_starting_indices(flags, counters)
|
|
174
|
+
# The only valid starting index for a science frame
|
|
175
|
+
# in the flags array is 15.
|
|
176
|
+
assert len(result) == 1
|
|
177
|
+
assert result[0] == 15
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def test_get_valid_indices():
|
|
181
|
+
"""Test the get_valid_indices function."""
|
|
182
|
+
# Array of starting indices for science frames
|
|
183
|
+
# in the science data
|
|
184
|
+
indices = np.array([0, 20, 40])
|
|
185
|
+
# Array of counters
|
|
186
|
+
counters = np.arange(60)
|
|
187
|
+
# Array of valid indices where the packets in the science
|
|
188
|
+
# frame have corresponding counters in sequential order
|
|
189
|
+
result = get_valid_indices(indices, counters, 20)
|
|
190
|
+
# All indices are valid with sequential counters
|
|
191
|
+
assert len(result) == 3
|
|
192
|
+
|
|
193
|
+
# Test array with invalid indices (use smaller sample size)
|
|
194
|
+
indices = np.array([0, 5, 10])
|
|
195
|
+
# Array of counters (missing counters 6-8)
|
|
196
|
+
counters = np.array([0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17])
|
|
197
|
+
result = get_valid_indices(indices, counters, 5)
|
|
198
|
+
# Only indices 0 and 10 are valid with sequential counters
|
|
199
|
+
assert len(result) == 2
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
def test_update_ccsds_header_dims(sci_dataset):
|
|
203
|
+
"""Test the update_ccsds_header_data function.
|
|
204
|
+
|
|
205
|
+
Replaces epoch dimension with sc_tick dimension.
|
|
206
|
+
"""
|
|
207
|
+
updated_dataset = update_ccsds_header_dims(sci_dataset)
|
|
208
|
+
assert "sc_tick" in updated_dataset.dims
|
|
209
|
+
assert "epoch" not in updated_dataset.dims
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def test_assemble_science_frames(sci_dataset):
|
|
213
|
+
"""Test the assemble_science_frames function."""
|
|
214
|
+
updated_dataset = update_ccsds_header_dims(sci_dataset)
|
|
215
|
+
updated_dataset = assemble_science_frames(updated_dataset)
|
|
216
|
+
assert "count_rates_binary" in updated_dataset
|
|
217
|
+
assert "pha_binary" in updated_dataset
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def test_decom_hit(sci_dataset):
|
|
221
|
+
"""Test the decom_hit function.
|
|
222
|
+
|
|
223
|
+
This function orchestrates the unpacking and decompression
|
|
224
|
+
of the HIT science data.
|
|
225
|
+
"""
|
|
226
|
+
# TODO: complete this test once the function is complete
|
|
227
|
+
updated_dataset = decom_hit(sci_dataset)
|
|
228
|
+
print(updated_dataset)
|
|
229
|
+
assert "count_rates_binary" in updated_dataset
|
|
230
|
+
assert "hdr_unit_num" in updated_dataset
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import pytest
|
|
3
|
+
import xarray as xr
|
|
4
|
+
|
|
5
|
+
from imap_processing import imap_module_directory
|
|
6
|
+
from imap_processing.cdf.imap_cdf_manager import ImapCdfAttributes
|
|
7
|
+
from imap_processing.hit.l1a.hit_l1a import (
|
|
8
|
+
HitAPID,
|
|
9
|
+
concatenate_leak_variables,
|
|
10
|
+
hit_l1a,
|
|
11
|
+
process_housekeeping,
|
|
12
|
+
)
|
|
13
|
+
from imap_processing.utils import packet_file_to_datasets
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@pytest.fixture(scope="module")
|
|
17
|
+
def packet_filepath():
|
|
18
|
+
"""Set path to test data file"""
|
|
19
|
+
return (
|
|
20
|
+
imap_module_directory / "tests/hit/test_data/imap_hit_l0_hk_20100105_v001.pkts"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@pytest.fixture(scope="module")
|
|
25
|
+
def datasets(packet_filepath):
|
|
26
|
+
"""Create datasets from packet file"""
|
|
27
|
+
packet_definition = (
|
|
28
|
+
imap_module_directory / "hit/packet_definitions/" "hit_packet_definitions.xml"
|
|
29
|
+
)
|
|
30
|
+
datasets_by_apid = packet_file_to_datasets(
|
|
31
|
+
packet_file=packet_filepath,
|
|
32
|
+
xtce_packet_definition=packet_definition,
|
|
33
|
+
)
|
|
34
|
+
return datasets_by_apid
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@pytest.fixture(scope="module")
|
|
38
|
+
def attribute_manager():
|
|
39
|
+
"""Create the attribute manager"""
|
|
40
|
+
attr_mgr = ImapCdfAttributes()
|
|
41
|
+
attr_mgr.add_instrument_global_attrs(instrument="hit")
|
|
42
|
+
attr_mgr.add_instrument_variable_attrs(instrument="hit", level="l1a")
|
|
43
|
+
attr_mgr.add_global_attribute("Data_version", "001")
|
|
44
|
+
return attr_mgr
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@pytest.fixture(scope="module")
|
|
48
|
+
def housekeeping_dataset(datasets):
|
|
49
|
+
"""Get the housekeeping dataset"""
|
|
50
|
+
return datasets[HitAPID.HIT_HSKP]
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_hit_l1a(packet_filepath):
|
|
54
|
+
"""Create L1A datasets from a packet file.
|
|
55
|
+
|
|
56
|
+
Parameters
|
|
57
|
+
----------
|
|
58
|
+
packet_filepath : str
|
|
59
|
+
Path to ccsds file
|
|
60
|
+
"""
|
|
61
|
+
processed_datasets = hit_l1a(packet_filepath, "001")
|
|
62
|
+
# TODO: update assertions after science data processing is completed
|
|
63
|
+
assert isinstance(processed_datasets, list)
|
|
64
|
+
assert len(processed_datasets) == 1
|
|
65
|
+
assert isinstance(processed_datasets[0], xr.Dataset)
|
|
66
|
+
assert processed_datasets[0].attrs["Logical_source"] == "imap_hit_l1a_hk"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def test_concatenate_leak_variables(housekeeping_dataset):
|
|
70
|
+
"""Test concatenation of leak_i variables"""
|
|
71
|
+
|
|
72
|
+
# Create data array for leak_i dependency
|
|
73
|
+
adc_channels = xr.DataArray(
|
|
74
|
+
np.arange(64, dtype=np.uint8),
|
|
75
|
+
name="adc_channels",
|
|
76
|
+
dims=["adc_channels"],
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
updated_dataset = concatenate_leak_variables(housekeeping_dataset, adc_channels)
|
|
80
|
+
|
|
81
|
+
# Assertions
|
|
82
|
+
# ----------------
|
|
83
|
+
assert "leak_i" in updated_dataset
|
|
84
|
+
assert updated_dataset["leak_i"].shape == (88, 64)
|
|
85
|
+
for i in range(64):
|
|
86
|
+
# Check if the values in the `leak_i` variable match the values in
|
|
87
|
+
# the original `leak_i_XX` variable.
|
|
88
|
+
# - First access the `leak_i` variable in the `updated_dataset`.
|
|
89
|
+
# The [:, i] selects all rows (`:`) and the `i`-th column of the `leak_i`
|
|
90
|
+
# variable.
|
|
91
|
+
# - Then access the `leak_i_XX` variable in the `housekeeping_dataset`.
|
|
92
|
+
# The `f"leak_i_{i:02d}"` selects the variable with the name `leak_i_XX`
|
|
93
|
+
# where `XX` is the `i`-th value.
|
|
94
|
+
# - Compare values
|
|
95
|
+
np.testing.assert_array_equal(
|
|
96
|
+
updated_dataset["leak_i"][:, i], housekeeping_dataset[f"leak_i_{i:02d}"]
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def test_process_housekeeping(housekeeping_dataset, attribute_manager):
|
|
101
|
+
"""Test processing of housekeeping dataset"""
|
|
102
|
+
|
|
103
|
+
# Call the function
|
|
104
|
+
processed_hskp_dataset = process_housekeeping(
|
|
105
|
+
housekeeping_dataset, attribute_manager
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
# Define the keys that should have dropped from the dataset
|
|
109
|
+
dropped_keys = {
|
|
110
|
+
"pkt_apid",
|
|
111
|
+
"sc_tick",
|
|
112
|
+
"version",
|
|
113
|
+
"type",
|
|
114
|
+
"sec_hdr_flg",
|
|
115
|
+
"seq_flgs",
|
|
116
|
+
"src_seq_ctr",
|
|
117
|
+
"pkt_len",
|
|
118
|
+
"hskp_spare1",
|
|
119
|
+
"hskp_spare2",
|
|
120
|
+
"hskp_spare3",
|
|
121
|
+
"hskp_spare4",
|
|
122
|
+
"hskp_spare5",
|
|
123
|
+
}
|
|
124
|
+
# Define the keys that should be present
|
|
125
|
+
valid_keys = {
|
|
126
|
+
"heater_on",
|
|
127
|
+
"fsw_version_b",
|
|
128
|
+
"ebox_m12va",
|
|
129
|
+
"phasic_stat",
|
|
130
|
+
"ebox_3d4vd",
|
|
131
|
+
"ebox_p2d0vd",
|
|
132
|
+
"temp1",
|
|
133
|
+
"last_bad_seq_num",
|
|
134
|
+
"ebox_m5d7va",
|
|
135
|
+
"ebox_p12va",
|
|
136
|
+
"table_status",
|
|
137
|
+
"enable_50khz",
|
|
138
|
+
"mram_disabled",
|
|
139
|
+
"temp3",
|
|
140
|
+
"preamp_l1a",
|
|
141
|
+
"l2ab_bias",
|
|
142
|
+
"l34b_bias",
|
|
143
|
+
"fsw_version_c",
|
|
144
|
+
"num_evnt_last_hk",
|
|
145
|
+
"dac1_enable",
|
|
146
|
+
"preamp_l234b",
|
|
147
|
+
"analog_temp",
|
|
148
|
+
"fee_running",
|
|
149
|
+
"fsw_version_a",
|
|
150
|
+
"num_errors",
|
|
151
|
+
"test_pulser_on",
|
|
152
|
+
"dac0_enable",
|
|
153
|
+
"preamp_l1b",
|
|
154
|
+
"l1ab_bias",
|
|
155
|
+
"l34a_bias",
|
|
156
|
+
"leak_i",
|
|
157
|
+
"last_good_cmd",
|
|
158
|
+
"lvps_temp",
|
|
159
|
+
"idpu_temp",
|
|
160
|
+
"temp2",
|
|
161
|
+
"preamp_l234a",
|
|
162
|
+
"last_good_seq_num",
|
|
163
|
+
"num_good_cmds",
|
|
164
|
+
"heater_control",
|
|
165
|
+
"hvps_temp",
|
|
166
|
+
"ebox_p5d7va",
|
|
167
|
+
"spin_period_long",
|
|
168
|
+
"enable_hvps",
|
|
169
|
+
"temp0",
|
|
170
|
+
"spin_period_short",
|
|
171
|
+
"dyn_thresh_lvl",
|
|
172
|
+
"num_bad_cmds",
|
|
173
|
+
"adc_mode",
|
|
174
|
+
"ebox_5d1vd",
|
|
175
|
+
"active_heater",
|
|
176
|
+
"last_error_num",
|
|
177
|
+
"last_bad_cmd",
|
|
178
|
+
"ref_p5v",
|
|
179
|
+
"code_checksum",
|
|
180
|
+
"mode",
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
# Define the dataset attributes
|
|
184
|
+
dataset_attrs = {
|
|
185
|
+
"Data_level": "1A",
|
|
186
|
+
"Data_type": "L1A_HK>Level-1A Housekeeping",
|
|
187
|
+
"Data_version": "001",
|
|
188
|
+
"Descriptor": "HIT>IMAP High-energy Ion Telescope",
|
|
189
|
+
"Discipline": "Solar Physics>Heliospheric Physics",
|
|
190
|
+
"File_naming_convention": "source_descriptor_datatype_yyyyMMdd_vNNN",
|
|
191
|
+
"HTTP_LINK": "https://imap.princeton.edu/",
|
|
192
|
+
"Instrument_type": "Particles (space)",
|
|
193
|
+
"LINK_TITLE": "IMAP The Interstellar Mapping and Acceleration Probe",
|
|
194
|
+
"Logical_file_id": None,
|
|
195
|
+
"Logical_source": "imap_hit_l1a_hk",
|
|
196
|
+
"Logical_source_description": "IMAP Mission HIT Instrument Level-1A "
|
|
197
|
+
"Housekeeping Data.",
|
|
198
|
+
"Mission_group": "IMAP",
|
|
199
|
+
"PI_affiliation": "Princeton University",
|
|
200
|
+
"PI_name": "Prof. David J. McComas",
|
|
201
|
+
"Project": "STP>Solar Terrestrial Probes",
|
|
202
|
+
"Source_name": "IMAP>Interstellar Mapping and Acceleration Probe",
|
|
203
|
+
"TEXT": "The High-energy Ion Telescope (HIT) measures the elemental "
|
|
204
|
+
"composition, energy spectra, angle distributions, and arrival "
|
|
205
|
+
"times of high-energy ions. HIT delivers full-sky coverage from "
|
|
206
|
+
"a wide instrument field-of-view (FOV) to enable a high resolution "
|
|
207
|
+
"of ion measurements, such as observing shock-accelerated ions, "
|
|
208
|
+
"determining the origin of the solar energetic particles (SEPs) "
|
|
209
|
+
"spectra, and resolving particle transport in the heliosphere. "
|
|
210
|
+
"See https://imap.princeton.edu/instruments/hit for more details.\n",
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
# Define the coordinates and dimensions. Both have equivalent values
|
|
214
|
+
dataset_coords_dims = {"epoch", "adc_channels", "adc_channels_label"}
|
|
215
|
+
|
|
216
|
+
# Assertions
|
|
217
|
+
# ----------------
|
|
218
|
+
# Check that the dataset has the correct variables
|
|
219
|
+
assert valid_keys == set(processed_hskp_dataset.data_vars.keys())
|
|
220
|
+
assert set(dropped_keys).isdisjoint(set(processed_hskp_dataset.data_vars.keys()))
|
|
221
|
+
# Check that the dataset has the correct attributes, coordinates, and dimensions
|
|
222
|
+
assert processed_hskp_dataset.attrs == dataset_attrs
|
|
223
|
+
assert processed_hskp_dataset.coords.keys() == dataset_coords_dims
|
|
224
|
+
assert processed_hskp_dataset.sizes.keys() == dataset_coords_dims
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
import xarray as xr
|
|
3
|
+
|
|
4
|
+
from imap_processing import imap_module_directory
|
|
5
|
+
from imap_processing.cdf.imap_cdf_manager import ImapCdfAttributes
|
|
6
|
+
from imap_processing.hit.l1a import hit_l1a
|
|
7
|
+
from imap_processing.hit.l1b import hit_l1b
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@pytest.fixture()
|
|
11
|
+
def dependency():
|
|
12
|
+
"""Get L1A data from test packet file"""
|
|
13
|
+
|
|
14
|
+
packet_filepath = (
|
|
15
|
+
imap_module_directory / "tests/hit/test_data/imap_hit_l0_hk_20100105_v001.pkts"
|
|
16
|
+
)
|
|
17
|
+
l1a_data = hit_l1a.hit_l1a(packet_filepath, "001")[0]
|
|
18
|
+
|
|
19
|
+
return l1a_data
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_create_hk_dataset():
|
|
23
|
+
"""Test creating housekeeping L1B dataset
|
|
24
|
+
|
|
25
|
+
Creates a xarray dataset for housekeeping data
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
# create the attribute manager for this data level
|
|
29
|
+
attr_mgr = ImapCdfAttributes()
|
|
30
|
+
attr_mgr.add_instrument_global_attrs(instrument="hit")
|
|
31
|
+
attr_mgr.add_instrument_variable_attrs(instrument="hit", level="l1b")
|
|
32
|
+
attr_mgr.add_global_attribute("Data_version", "001")
|
|
33
|
+
|
|
34
|
+
l1b_hk_dataset = hit_l1b.create_hk_dataset(attr_mgr)
|
|
35
|
+
assert isinstance(l1b_hk_dataset, xr.Dataset)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def test_hit_l1b(dependency):
|
|
39
|
+
"""Test creating L1B CDF files
|
|
40
|
+
|
|
41
|
+
Creates a CDF file for each L1B product and stores
|
|
42
|
+
their filepaths in a list
|
|
43
|
+
|
|
44
|
+
Parameters
|
|
45
|
+
----------
|
|
46
|
+
dependency : xr.dataset
|
|
47
|
+
L1A data
|
|
48
|
+
"""
|
|
49
|
+
datasets = hit_l1b.hit_l1b(dependency, "001")
|
|
50
|
+
assert len(datasets) == 1
|
|
51
|
+
assert isinstance(datasets[0], xr.Dataset)
|
|
52
|
+
assert datasets[0].attrs["Logical_source"] == "imap_hit_l1b_hk"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
CCSDS_VERSION,CCSDS_TYPE,CCSDS_SEC_HDR_FLAG,CCSDS_APPID,CCSDS_GRP_FLAG,CCSDS_SEQ_CNT,CCSDS_LENGTH,SHCOARSE,MODE,FSW_VERSION_A,FSW_VERSION_B,FSW_VERSION_C,NUM_GOOD_CMDS,LAST_GOOD_CMD,LAST_GOOD_SEQ_NUM,NUM_BAD_CMDS,LAST_BAD_CMD,LAST_BAD_SEQ_NUM,FEE_RUNNING,MRAM_DISABLED,ENABLE_50KHZ,ENABLE_HVPS,TABLE_STATUS,HEATER_CONTROL,ADC_MODE,DYN_THRESH_LVL,NUM_EVNT_LAST_HK,NUM_ERRORS,LAST_ERROR_NUM,CODE_CHECKSUM,SPIN_PERIOD_SHORT,SPIN_PERIOD_LONG,LEAK_I_63,LEAK_I_62,LEAK_I_61,LEAK_I_60,LEAK_I_59,LEAK_I_58,LEAK_I_57,LEAK_I_56,LEAK_I_55,LEAK_I_54,LEAK_I_53,LEAK_I_52,LEAK_I_51,LEAK_I_50,LEAK_I_49,LEAK_I_48,LEAK_I_47,LEAK_I_46,LEAK_I_45,LEAK_I_44,LEAK_I_43,LEAK_I_42,LEAK_I_41,LEAK_I_40,LEAK_I_39,LEAK_I_38,LEAK_I_37,LEAK_I_36,LEAK_I_35,LEAK_I_34,LEAK_I_33,LEAK_I_32,LEAK_I_31,LEAK_I_30,LEAK_I_29,LEAK_I_28,LEAK_I_27,LEAK_I_26,LEAK_I_25,LEAK_I_24,LEAK_I_23,LEAK_I_22,LEAK_I_21,LEAK_I_20,LEAK_I_19,LEAK_I_18,LEAK_I_17,LEAK_I_16,LEAK_I_15,LEAK_I_14,LEAK_I_13,LEAK_I_12,LEAK_I_11,LEAK_I_10,LEAK_I_09,LEAK_I_08,LEAK_I_07,LEAK_I_06,LEAK_I_05,LEAK_I_04,LEAK_I_03,LEAK_I_02,LEAK_I_01,LEAK_I_00,PHASIC_STAT,ACTIVE_HEATER,HEATER_ON,TEST_PULSER_ON,DAC0_ENABLE,DAC1_ENABLE,PREAMP_L234A,PREAMP_L1A,PREAMP_L1B,PREAMP_L234B,TEMP0,TEMP1,TEMP2,TEMP3,ANALOG_TEMP,HVPS_TEMP,IDPU_TEMP,LVPS_TEMP,EBOX_3D4VD,EBOX_5D1VD,EBOX_P12VA,EBOX_M12VA,EBOX_P5D7VA,EBOX_M5D7VA,REF_P5V,L1AB_BIAS,L2AB_BIAS,L34A_BIAS,L34B_BIAS,EBOX_P2D0VD
|
|
2
|
+
0,0,1,1251,3,2883,143,377991,4,3,2,8,162,169,85,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,932,943,931,1151,1152,1136,999,2774,3334,2948,358,2986,494,3167,1501,1913,2823,2822,1619
|
|
3
|
+
0,0,1,1251,3,2884,143,377996,4,3,2,8,162,169,85,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,931,1151,1152,1136,998,2774,3334,2948,358,2986,495,3166,1500,1913,2823,2822,1619
|
|
4
|
+
0,0,1,1251,3,2885,143,378001,4,3,2,8,162,169,85,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,932,944,931,1151,1152,1136,998,2774,3334,2948,358,2986,494,3166,1501,1913,2823,2822,1619
|
|
5
|
+
0,0,1,1251,3,2886,143,378006,4,3,2,8,167,170,90,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,932,944,931,1150,1152,1136,998,2774,3334,2948,357,2986,494,3166,1501,1913,2822,2823,1602
|
|
6
|
+
0,0,1,1251,3,2887,143,378011,4,3,2,8,167,170,90,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,931,1152,1152,1136,998,2774,3334,2948,358,2986,494,3166,1500,1912,2823,2822,1616
|
|
7
|
+
0,0,1,1251,3,2888,143,378016,4,3,2,8,172,169,95,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,931,1150,1152,1136,998,2769,3335,2948,358,2986,495,3166,1500,1913,2822,2821,1620
|
|
8
|
+
0,0,1,1251,3,2889,143,378021,4,3,2,8,172,169,95,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,931,1151,1152,1136,998,2774,3334,2948,358,2986,495,3167,1501,1913,2823,2822,1612
|
|
9
|
+
0,0,1,1251,3,2890,143,378026,4,3,2,8,172,169,95,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,931,1152,1152,1136,999,2774,3334,2948,358,2987,494,3167,1500,1913,2823,2822,1610
|
|
10
|
+
0,0,1,1251,3,2891,143,378031,4,3,2,8,172,169,95,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,932,1152,1152,1136,998,2774,3334,2948,358,2987,494,3167,1500,1912,2823,2822,1609
|
|
11
|
+
0,0,1,1251,3,2892,143,378036,4,3,2,8,172,169,95,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1152,1152,1136,998,2774,3334,2948,358,2986,494,3167,1501,1913,2823,2822,1604
|
|
12
|
+
0,0,1,1251,3,2893,143,378041,4,3,2,8,172,169,95,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,785,791,776,782,905,933,944,931,1152,1152,1136,998,2774,3334,2948,357,2987,495,3166,1500,1913,2823,2822,1605
|
|
13
|
+
0,0,1,1251,3,2894,143,378046,4,3,2,8,177,170,100,0,0,0,1,0,1,1,1,0,0,0,52,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,931,1151,1152,1136,999,2774,3334,2948,358,2986,494,3167,1501,1913,2824,2824,1619
|
|
14
|
+
0,0,1,1251,3,2895,143,378051,4,3,2,8,177,170,100,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2949,358,2986,494,3166,1501,1913,2823,2822,1604
|
|
15
|
+
0,0,1,1251,3,2896,143,378056,4,3,2,8,182,169,105,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,931,1150,1152,1136,999,2760,3334,2949,358,2986,494,3167,1500,1912,2823,2821,1620
|
|
16
|
+
0,0,1,1251,3,2897,143,378061,4,3,2,8,182,169,105,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,998,2774,3334,2948,358,2986,494,3167,1501,1912,2823,2822,1604
|
|
17
|
+
0,0,1,1251,3,2898,143,378066,4,3,2,8,182,169,105,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1150,1152,1136,998,2774,3334,2948,358,2986,495,3167,1500,1913,2823,2822,1603
|
|
18
|
+
0,0,1,1251,3,2899,143,378071,4,3,2,8,182,169,105,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,358,2987,494,3166,1501,1913,2823,2822,1603
|
|
19
|
+
0,0,1,1251,3,2900,143,378076,4,3,2,8,182,169,105,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2949,358,2986,494,3167,1500,1913,2823,2822,1602
|
|
20
|
+
0,0,1,1251,3,2901,143,378081,4,3,2,8,182,169,105,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,998,2774,3334,2948,357,2986,495,3166,1501,1913,2823,2823,1602
|
|
21
|
+
0,0,1,1251,3,2902,143,378086,4,3,2,8,187,170,110,0,0,0,1,0,1,1,1,0,0,0,52,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,359,2986,494,3167,1500,1914,2825,2822,1620
|
|
22
|
+
0,0,1,1251,3,2903,143,378091,4,3,2,8,187,170,110,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2775,3334,2948,358,2986,494,3167,1501,1913,2823,2823,1602
|
|
23
|
+
0,0,1,1251,3,2904,143,378096,4,3,2,8,192,169,115,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,358,2986,494,3167,1500,1913,2823,2821,1620
|
|
24
|
+
0,0,1,1251,3,2905,143,378101,4,3,2,8,192,169,115,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2775,3334,2948,359,2986,494,3167,1502,1913,2823,2823,1620
|
|
25
|
+
0,0,1,1251,3,2906,143,378106,4,3,2,8,192,169,115,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,358,2986,495,3166,1501,1913,2823,2823,1619
|
|
26
|
+
0,0,1,1251,3,2907,143,378111,4,3,2,8,192,169,115,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,358,2986,494,3166,1501,1913,2823,2824,1620
|
|
27
|
+
0,0,1,1251,3,2908,143,378116,4,3,2,8,192,169,115,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2949,358,2986,495,3166,1501,1912,2823,2824,1619
|
|
28
|
+
0,0,1,1251,3,2909,143,378121,4,3,2,8,192,169,115,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,357,2986,493,3167,1501,1913,2823,2824,1619
|
|
29
|
+
0,0,1,1251,3,2910,143,378126,4,3,2,8,197,170,120,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,932,1151,1152,1136,999,2774,3334,2947,358,2986,494,3167,1501,1914,2823,2822,1620
|
|
30
|
+
0,0,1,1251,3,2911,143,378131,4,3,2,8,197,170,120,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,945,932,1151,1152,1136,999,2774,3334,2948,359,2986,495,3167,1501,1912,2824,2824,1619
|
|
31
|
+
0,0,1,1251,3,2912,143,378136,4,3,2,8,202,169,125,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1137,999,2771,3335,2948,359,2986,494,3166,1500,1913,2822,2821,1619
|
|
32
|
+
0,0,1,1251,3,2913,143,378141,4,3,2,8,202,169,125,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1152,1152,1136,999,2775,3334,2947,358,2986,494,3166,1500,1913,2824,2824,1619
|
|
33
|
+
0,0,1,1251,3,2914,143,378146,4,3,2,8,202,169,125,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,932,1152,1152,1136,999,2774,3334,2948,358,2986,495,3167,1501,1912,2824,2825,1619
|
|
34
|
+
0,0,1,1251,3,2915,143,378151,4,3,2,8,202,169,125,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2775,3334,2948,358,2986,495,3166,1500,1913,2824,2822,1620
|
|
35
|
+
0,0,1,1251,3,2916,143,378156,4,3,2,8,202,169,125,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,358,2986,494,3166,1501,1913,2825,2822,1619
|
|
36
|
+
0,0,1,1251,3,2917,143,378161,4,3,2,8,202,169,125,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,905,933,944,932,1152,1152,1136,999,2774,3334,2948,358,2986,495,3167,1500,1913,2825,2821,1620
|
|
37
|
+
0,0,1,1251,3,2918,143,378166,4,3,2,8,207,170,130,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,777,782,905,933,944,932,1151,1152,1136,999,2774,3334,2947,358,2986,494,3166,1502,1913,2822,2820,1619
|
|
38
|
+
0,0,1,1251,3,2919,143,378171,4,3,2,8,207,170,130,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1152,1152,1135,999,2774,3334,2948,359,2986,494,3167,1501,1913,2825,2821,1620
|
|
39
|
+
0,0,1,1251,3,2920,143,378176,4,3,2,8,212,169,135,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,792,777,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,359,2985,494,3166,1500,1913,2822,2821,1619
|
|
40
|
+
0,0,1,1251,3,2921,143,378181,4,3,2,8,212,169,135,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1151,1152,1136,999,2775,3334,2948,358,2985,494,3166,1501,1914,2825,2822,1619
|
|
41
|
+
0,0,1,1251,3,2922,143,378186,4,3,2,8,212,169,135,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1152,1152,1136,999,2774,3334,2948,358,2986,494,3166,1500,1914,2825,2822,1620
|
|
42
|
+
0,0,1,1251,3,2923,143,378191,4,3,2,8,212,169,135,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1151,1152,1136,999,2775,3334,2947,358,2985,494,3166,1500,1914,2826,2821,1619
|
|
43
|
+
0,0,1,1251,3,2924,143,378196,4,3,2,8,212,169,135,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1152,1152,1136,999,2774,3334,2948,359,2985,494,3167,1501,1914,2825,2822,1620
|
|
44
|
+
0,0,1,1251,3,2925,143,378201,4,3,2,8,212,169,135,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,359,2985,495,3167,1501,1915,2823,2822,1619
|
|
45
|
+
0,0,1,1251,3,2926,143,378206,4,3,2,8,217,170,140,0,0,0,1,0,1,1,1,0,0,0,52,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2948,359,2985,494,3170,1501,1913,2823,2822,1620
|
|
46
|
+
0,0,1,1251,3,2927,143,378211,4,3,2,8,217,170,140,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,906,933,944,932,1152,1152,1136,1000,2774,3334,2947,358,2984,494,3167,1501,1914,2823,2821,1620
|
|
47
|
+
0,0,1,1251,3,2928,143,378216,4,3,2,8,222,169,145,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,777,782,905,933,944,932,1152,1153,1136,999,2774,3334,2948,359,2985,494,3166,1500,1913,2822,2821,1618
|
|
48
|
+
0,0,1,1251,3,2929,143,378221,4,3,2,8,222,169,145,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,777,782,906,933,944,932,1151,1152,1136,999,2774,3334,2947,359,2985,494,3167,1501,1914,2823,2822,1619
|
|
49
|
+
0,0,1,1251,3,2930,143,378226,4,3,2,8,222,169,145,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,777,782,905,933,944,932,1152,1152,1136,999,2774,3334,2947,359,2984,495,3166,1501,1915,2823,2822,1619
|
|
50
|
+
0,0,1,1251,3,2931,143,378231,4,3,2,8,222,169,145,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,945,932,1152,1152,1136,999,2769,3333,2948,359,2984,495,3167,1501,1915,2823,2822,1619
|
|
51
|
+
0,0,1,1251,3,2932,143,378236,4,3,2,8,222,169,145,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2947,359,2985,495,3166,1502,1915,2823,2822,1620
|
|
52
|
+
0,0,1,1251,3,2933,143,378241,4,3,2,8,222,169,145,0,0,0,1,0,1,1,1,0,0,0,51,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,784,791,776,782,906,933,944,932,1152,1152,1136,1000,2775,3334,2947,359,2984,494,3166,1501,1914,2823,2822,1619
|
|
53
|
+
0,0,1,1251,3,2934,143,378246,4,3,2,8,223,170,146,0,0,0,1,0,1,1,1,0,0,0,50,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,777,782,905,933,944,932,1152,1152,1137,999,2774,3334,2948,359,2985,495,3167,1501,1913,2823,2822,1619
|
|
54
|
+
0,0,1,1251,3,2935,143,378251,4,3,2,8,223,170,146,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,785,791,776,782,905,933,944,932,1151,1152,1136,999,2774,3334,2947,358,2985,494,3167,1502,1913,2823,2822,1620
|
|
55
|
+
0,0,1,1251,3,2936,143,378256,4,3,2,8,228,169,151,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,905,933,944,932,1152,1152,1136,999,2774,3334,2947,359,2984,494,3166,1500,1913,2822,2821,1609
|
|
56
|
+
0,0,1,1251,3,2937,143,378261,4,3,2,8,228,169,151,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,905,933,944,932,1152,1152,1136,999,2774,3334,2948,359,2985,495,3167,1502,1913,2823,2822,1620
|
|
57
|
+
0,0,1,1251,3,2938,143,378266,4,3,2,8,229,170,152,0,0,0,1,0,1,1,1,0,0,0,1,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,777,782,906,933,944,933,1152,1152,1138,999,2774,3334,2947,359,2985,494,3167,1500,1913,2822,2822,1620
|
|
58
|
+
0,0,1,1251,3,2939,143,378271,4,3,2,8,229,170,152,0,0,0,1,0,1,1,1,0,0,0,15,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,777,782,906,933,944,932,1151,1152,1136,999,2775,3334,2948,359,2984,495,3168,1502,1913,2823,2822,1619
|
|
59
|
+
0,0,1,1251,3,2940,143,378276,4,3,2,8,231,169,154,0,0,0,1,0,1,1,1,0,0,0,17,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,905,933,944,932,1152,1152,1136,999,2775,3334,2948,359,2985,494,3166,1500,1913,2823,2824,1619
|
|
60
|
+
0,0,1,1251,3,2941,143,378281,4,3,2,8,231,169,154,0,0,0,1,0,1,1,1,0,0,0,21,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,777,782,905,933,944,932,1152,1152,1136,999,2774,3334,2948,359,2985,494,3168,1502,1913,2823,2822,1620
|
|
61
|
+
0,0,1,1251,3,2942,143,378286,4,3,2,8,231,169,154,0,0,0,1,0,1,1,1,0,0,0,20,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,906,933,944,932,1151,1152,1136,999,2774,3335,2948,358,2984,495,3167,1503,1913,2823,2822,1619
|
|
62
|
+
0,0,1,1251,3,2943,143,378291,4,3,2,8,232,170,155,0,0,0,1,0,1,1,1,0,0,0,18,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,777,782,906,933,944,932,1152,1152,1138,999,2775,3334,2947,359,2985,494,3167,1501,1913,2822,2822,1620
|
|
63
|
+
0,0,1,1251,3,2944,143,378296,4,3,2,8,232,170,155,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,906,933,944,932,1152,1152,1137,1000,2774,3334,2948,358,2985,494,3170,1500,1913,2823,2822,1620
|
|
64
|
+
0,0,1,1251,3,2945,143,378301,4,3,2,8,234,169,157,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,906,933,944,932,1152,1152,1136,1000,2774,3334,2947,359,2985,494,3167,1501,1913,2824,2821,1619
|
|
65
|
+
0,0,1,1251,3,2946,143,378306,4,3,2,8,234,169,157,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,906,933,944,932,1152,1152,1136,999,2774,3334,2948,359,2985,494,3170,1500,1913,2823,2822,1620
|
|
66
|
+
0,0,1,1251,3,2947,143,378311,4,3,2,8,237,17,160,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,777,782,906,933,944,932,1152,1152,1136,999,2774,3334,2948,360,2985,495,3166,1501,1914,2823,2822,1619
|
|
67
|
+
0,0,1,1251,3,2948,143,378316,4,3,2,8,238,36,161,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,792,776,782,906,933,944,932,1152,1152,1136,999,2774,3335,2948,359,2985,494,3167,1501,1913,2823,2821,1619
|
|
68
|
+
0,0,1,1251,3,2949,143,378321,4,3,2,8,238,36,161,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,784,791,776,782,906,933,944,932,1152,1152,1136,999,2774,3334,2947,358,2984,494,3170,1501,1913,2823,2822,1620
|
|
69
|
+
0,0,1,1251,3,2950,143,378326,4,3,2,8,243,170,166,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,785,791,777,782,906,933,944,932,1151,1152,1137,999,2774,3335,2948,358,2990,494,3167,1500,1913,2823,2821,1620
|
|
70
|
+
0,0,1,1251,3,2951,143,378331,4,3,2,8,243,170,166,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,785,791,776,782,906,933,944,932,1152,1152,1136,1000,2774,3334,2949,358,2987,495,3171,1500,1912,2823,2822,1619
|
|
71
|
+
0,0,1,1251,3,2952,143,378336,4,3,2,8,248,169,171,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,933,944,932,1152,1152,1136,1000,2775,3334,2949,358,2987,494,3167,1500,1913,2823,2823,1620
|
|
72
|
+
0,0,1,1251,3,2953,143,378341,4,3,2,8,248,169,171,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,933,945,933,1152,1152,1136,1000,2774,3334,2948,358,2987,495,3170,1501,1913,2823,2822,1619
|
|
73
|
+
0,0,1,1251,3,2954,143,378346,4,3,2,8,248,169,171,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,934,944,932,1152,1152,1136,999,2774,3334,2949,358,2987,495,3166,1500,1913,2823,2822,1619
|
|
74
|
+
0,0,1,1251,3,2955,143,378351,4,3,2,8,248,169,171,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,933,944,932,1152,1152,1136,999,2774,3334,2948,357,2987,495,3166,1500,1912,2823,2821,1620
|
|
75
|
+
0,0,1,1251,3,2956,143,378356,4,3,2,8,248,169,171,0,0,0,1,0,1,1,1,0,0,0,1,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,934,944,932,1152,1152,1137,1000,2775,3334,2948,358,2987,495,3167,1500,1913,2822,2822,1620
|
|
76
|
+
0,0,1,1251,3,2957,143,378361,4,3,2,8,248,169,171,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,933,944,932,1152,1152,1136,1000,2774,3334,2949,358,2987,495,3167,1500,1912,2823,2822,1620
|
|
77
|
+
0,0,1,1251,3,2958,143,378366,4,3,2,8,253,170,176,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,934,944,932,1152,1152,1137,1000,2774,3334,2949,358,2987,494,3166,1501,1913,2823,2821,1620
|
|
78
|
+
0,0,1,1251,3,2959,143,378371,4,3,2,8,253,170,176,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,934,944,932,1152,1152,1136,999,2775,3334,2948,358,2988,495,3167,1500,1913,2822,2822,1619
|
|
79
|
+
0,0,1,1251,3,2960,143,378376,4,3,2,8,2,169,181,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,783,906,934,944,932,1152,1152,1137,999,2774,3334,2949,358,2987,495,3166,1500,1913,2824,2821,1620
|
|
80
|
+
0,0,1,1251,3,2961,143,378381,4,3,2,8,2,169,181,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,933,944,932,1152,1152,1136,1000,2774,3334,2949,358,2988,495,3166,1501,1913,2823,2821,1619
|
|
81
|
+
0,0,1,1251,3,2962,143,378386,4,3,2,8,2,169,181,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,933,944,932,1151,1152,1137,999,2775,3334,2948,357,2989,496,3167,1501,1912,2823,2822,1620
|
|
82
|
+
0,0,1,1251,3,2963,143,378391,4,3,2,8,2,169,181,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,934,944,932,1152,1152,1136,1000,2774,3334,2948,358,2989,496,3167,1500,1913,2823,2822,1620
|
|
83
|
+
0,0,1,1251,3,2964,143,378396,4,3,2,8,2,169,181,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,777,782,906,933,944,932,1151,1152,1136,1000,2774,3334,2949,357,2989,495,3166,1501,1913,2823,2822,1619
|
|
84
|
+
0,0,1,1251,3,2965,143,378401,4,3,2,8,2,169,181,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,934,944,932,1152,1152,1136,999,2774,3334,2948,358,2989,495,3167,1501,1913,2823,2822,1620
|
|
85
|
+
0,0,1,1251,3,2966,143,378406,4,3,2,8,7,170,186,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,933,944,932,1152,1152,1137,1000,2774,3334,2951,358,2986,494,3167,1501,1913,2823,2822,1619
|
|
86
|
+
0,0,1,1251,3,2967,143,378411,4,3,2,8,7,170,186,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,26214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,933,944,932,1151,1152,1137,999,2775,3334,2949,358,2989,494,3167,1501,1912,2823,2822,1620
|
|
87
|
+
0,0,1,1251,3,2968,143,378416,4,3,2,8,12,169,191,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,48059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,933,944,932,1151,1152,1137,999,2775,3334,2948,358,2986,495,3167,1500,1914,2825,2821,1619
|
|
88
|
+
0,0,1,1251,3,2969,143,378421,4,3,2,8,12,169,191,0,0,0,1,0,1,1,1,0,0,0,0,0,0,13406,46875,4369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,784,791,776,782,906,933,945,932,1152,1152,1137,1000,2774,3334,2949,358,2990,495,3167,1501,1913,2823,2822,1619
|
|
File without changes
|