nasa / opera-sds-pcm

Observational Products for End-Users from Remote Sensing Analysis (OPERA)
Apache License 2.0
16 stars 12 forks source link

Issue 886: fix(dswx-s1): apply grace period for min-bursts scenario. revise logging #890

Closed chrisjrd closed 3 months ago

chrisjrd commented 3 months ago

Refs #886

Purpose

apply grace period for min-bursts scenario. revise logging.

Proposed Changes

Issues

riverma commented 3 months ago

@chrisjrd - can you provide a reproducible command to execute your test_evaluator.py? I'm getting module import errors using PyTest.

hhlee445 commented 3 months ago

Tested on mozart under _/export/home/hysdsops/mozart/ops/opera-pcm/tests/unit/datasubscriber/rtc directory.

================================================================================ test session starts ================================================================================= platform linux -- Python 3.9.18, pytest-7.2.1, pluggy-1.0.0 rootdir: /export/home/hysdsops/mozart/ops/opera-pcm, configfile: pytest.ini plugins: mock-3.14.0, cov-4.0.0, asyncio-0.20.3 asyncio: mode=strict collected 8 items

test_evaluator.py::test_coverage_targetwhen_burst_coveredand_out_of_grace_periodthen_kept_in_evaluator_results[0-expected_sets0] ----------------------------------------------------------------------------------- live log setup ----------------------------------------------------------------------------------- INFO: 600 data_subscriber.rtc.mgrs_bursts_collection_db_client:mgrs_bursts_collection_db_client.py:cached_load_mgrs_burst_db:37 - Cache loading MGRS burst database. filter_land=True INFO: 601 data_subscriber.rtc.mgrs_bursts_collection_db_client:mgrs_bursts_collection_db_client.py:load_mgrs_burst_db:43 - Loading MGRS burst database. filter_land=True INFO: 7024 data_subscriber.rtc.mgrs_bursts_collection_db_client:mgrs_bursts_collection_db_client.py:load_mgrs_burst_db_raw:73 - len(vector_gdf)=31500 INFO: 7051 data_subscriber.rtc.mgrs_bursts_collection_db_client:mgrs_bursts_collection_db_client.py:load_mgrs_burst_db_raw:76 - len(vector_gdf)=14687 ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 8549 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=0, min_num_bursts=None INFO: 8549 data_subscriber.rtc.evaluator:evaluator.py:main:67 - Found len(unsubmitted_docs)=1 INFO: 8549 data_subscriber.rtc.evaluator:evaluator.py:main:74 - Found len(submitted_but_incomplete_docs)=1 INFO: 8557 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 8558 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 8591 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 8616 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 8633 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 8633 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 8634 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 8634 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={0: ['MS_20_29', 'MS_20_30']} INFO: 8634 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 8634 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=0), coverage_group=0: ['MS_20_29', 'MS_20_30'] INFO: 8642 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_29', number_of_bursts=1, min_num_bursts=0 INFO: 8642 data_subscriber.rtc.evaluator:evaluator.py:main:169 - Target covered burst set aged out of grace period (grace_period_minutes_remaining=datetime.timedelta(days=-1, seconds=86399, microseconds=284575)). Will process at this time. mgrs_set_id='MS_20_29', i=0 INFO: 8642 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_30', number_of_bursts=1, min_num_bursts=0 INFO: 8642 data_subscriber.rtc.evaluator:evaluator.py:main:169 - Target covered burst set aged out of grace period (grace_period_minutes_remaining=datetime.timedelta(days=-1, seconds=86399, microseconds=284208)). Will process at this time. mgrs_set_id='MS_20_30', i=0 PASSED [ 12%] test_evaluator.py::test_coverage_targetwhen_burst_coveredbut_still_in_grace_periodthen_removed_from_evaluator_results[0-expected_sets0] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 8651 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=0, min_num_bursts=None INFO: 8651 data_subscriber.rtc.evaluator:evaluator.py:main:67 - Found len(unsubmitted_docs)=1 INFO: 8651 data_subscriber.rtc.evaluator:evaluator.py:main:74 - Found len(submitted_but_incomplete_docs)=1 INFO: 8657 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 8658 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 8687 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 8714 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 8731 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 8731 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 8731 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 8732 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={0: ['MS_20_30', 'MS_20_29']} INFO: 8732 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 8732 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=0), coverage_group=0: ['MS_20_30', 'MS_20_29'] INFO: 8740 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_30', number_of_bursts=1, min_num_bursts=0 INFO: 8740 data_subscriber.rtc.evaluator:evaluator.py:main:165 - Target covered burst still within grace period (grace_period_minutes_remaining=datetime.timedelta(seconds=43199, microseconds=186713)). Will not process at this time. mgrs_set_id='MS_20_30', i=0 INFO: 8740 data_subscriber.rtc.evaluator:evaluator.py:main:173 - Burst set mgrs_set_id='MS_20_30' flagged for skipping further processing at this time. i=0 INFO: 8740 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_29', number_of_bursts=1, min_num_bursts=0 INFO: 8740 data_subscriber.rtc.evaluator:evaluator.py:main:165 - Target covered burst still within grace period (grace_period_minutes_remaining=datetime.timedelta(seconds=43199, microseconds=186239)). Will not process at this time. mgrs_set_id='MS_20_29', i=0 INFO: 8741 data_subscriber.rtc.evaluator:evaluator.py:main:173 - Burst set mgrs_set_id='MS_20_29' flagged for skipping further processing at this time. i=0 PASSED [ 25%] test_evaluator.py::test_native_idwhen_coverage_target_Aand_bursts_found_B[100-expected_sets0] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 8743 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=100, min_num_bursts=None INFO: 8744 data_subscriber.rtc.evaluator:evaluator.py:main:50 - Supplied mgrs_set_id_acquisition_ts_cycle_indexes={'dummy'}. Adding criteria to query INFO: 8750 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 8751 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 8786 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 8816 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 8840 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 8840 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 8840 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 8841 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={-1: ['MS_20_30', 'MS_20_29']} INFO: 8841 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 8841 data_subscriber.rtc.evaluator:evaluator.py:main:114 - Skipping results that don't meet the target coverage (coverage_target=100), coverage_group=-1: ['MS_20_30', 'MS_20_29'] INFO: 8841 data_subscriber.rtc.evaluator:evaluator.py:main:134 - ignoring grace period PASSED [ 37%] test_evaluator.py::test_native_idwhen_coverage_target_Aand_bursts_found_B[1-expected_sets1] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 8845 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=1, min_num_bursts=None INFO: 8845 data_subscriber.rtc.evaluator:evaluator.py:main:50 - Supplied mgrs_set_id_acquisition_ts_cycle_indexes={'dummy'}. Adding criteria to query INFO: 8853 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 8854 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 8890 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 8919 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 8936 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 8937 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 8937 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 8937 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={1: ['MS_20_29', 'MS_20_30']} INFO: 8937 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 8937 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=1), coverage_group=1: ['MS_20_29', 'MS_20_30'] INFO: 8945 data_subscriber.rtc.evaluator:evaluator.py:main:134 - ignoring grace period PASSED [ 50%] test_evaluator.py::test_native_idwhen_coverage_target_Aand_bursts_found_B[0-expected_sets2] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 8948 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=0, min_num_bursts=None INFO: 8948 data_subscriber.rtc.evaluator:evaluator.py:main:50 - Supplied mgrs_set_id_acquisition_ts_cycle_indexes={'dummy'}. Adding criteria to query INFO: 8955 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 8956 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 8985 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 9010 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 9027 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 9028 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 9028 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 9028 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={0: ['MS_20_30', 'MS_20_29']} INFO: 9028 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 9028 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=0), coverage_group=0: ['MS_20_30', 'MS_20_29'] INFO: 9036 data_subscriber.rtc.evaluator:evaluator.py:main:134 - ignoring grace period PASSED [ 62%] test_evaluator.py::test_native_idwhen_min_bursts_Aandbursts_found_B[2-expected_sets0] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 9039 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=None, min_num_bursts=2 INFO: 9039 data_subscriber.rtc.evaluator:evaluator.py:main:67 - Found len(unsubmitted_docs)=1 INFO: 9039 data_subscriber.rtc.evaluator:evaluator.py:main:74 - Found len(submitted_but_incomplete_docs)=1 INFO: 9045 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 9047 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 9076 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 9101 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 9120 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 9120 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 9120 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 9121 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={0: ['MS_20_30', 'MS_20_29']} INFO: 9121 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 9121 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=0), coverage_group=0: ['MS_20_30', 'MS_20_29'] INFO: 9128 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_30', number_of_bursts=1, min_num_bursts=2 INFO: 9128 data_subscriber.rtc.evaluator:evaluator.py:main:152 - Burst set mgrs_set_id='MS_20_30' does not meet min_num_bursts=2. Found number_of_bursts=1. Will not process at this time. INFO: 9128 data_subscriber.rtc.evaluator:evaluator.py:main:173 - Burst set mgrs_set_id='MS_20_30' flagged for skipping further processing at this time. i=0 INFO: 9129 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_29', number_of_bursts=1, min_num_bursts=2 INFO: 9129 data_subscriber.rtc.evaluator:evaluator.py:main:152 - Burst set mgrs_set_id='MS_20_29' does not meet min_num_bursts=2. Found number_of_bursts=1. Will not process at this time. INFO: 9129 data_subscriber.rtc.evaluator:evaluator.py:main:173 - Burst set mgrs_set_id='MS_20_29' flagged for skipping further processing at this time. i=0 PASSED [ 75%] test_evaluator.py::test_native_id__when_min_bursts_Aandbursts_found_B[1-expected_sets1] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 9132 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=None, min_num_bursts=1 INFO: 9132 data_subscriber.rtc.evaluator:evaluator.py:main:67 - Found len(unsubmitted_docs)=1 INFO: 9132 data_subscriber.rtc.evaluator:evaluator.py:main:74 - Found len(submitted_but_incomplete_docs)=1 INFO: 9138 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 9139 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 9172 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 9209 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 9230 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 9231 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 9231 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 9231 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={0: ['MS_20_30', 'MS_20_29']} INFO: 9231 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 9231 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=0), coverage_group=0: ['MS_20_30', 'MS_20_29'] INFO: 9242 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_30', number_of_bursts=1, min_num_bursts=1 INFO: 9242 data_subscriber.rtc.evaluator:evaluator.py:main:169 - Target covered burst set aged out of grace period (grace_period_minutes_remaining=datetime.timedelta(days=-177, seconds=377, microseconds=684413)). Will process at this time. mgrs_set_id='MS_20_30', i=0 INFO: 9242 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_29', number_of_bursts=1, min_num_bursts=1 INFO: 9243 data_subscriber.rtc.evaluator:evaluator.py:main:169 - Target covered burst set aged out of grace period (grace_period_minutes_remaining=datetime.timedelta(days=-177, seconds=377, microseconds=683952)). Will process at this time. mgrs_set_id='MS_20_29', i=0 PASSED [ 87%] test_evaluator.py::test_native_id__when_min_bursts_Aand__bursts_found_B[0-expected_sets2] ----------------------------------------------------------------------------------- live log call ------------------------------------------------------------------------------------ INFO: 9248 data_subscriber.rtc.evaluator:evaluator.py:main:35 - coverage_target=None, min_num_bursts=0 INFO: 9248 data_subscriber.rtc.evaluator:evaluator.py:main:67 - Found len(unsubmitted_docs)=1 INFO: 9248 data_subscriber.rtc.evaluator:evaluator.py:main:74 - Found len(submitted_but_incomplete_docs)=1 INFO: 9256 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:200 - len(mbc_filtered_gdf)=87 INFO: 9257 data_subscriber.rtc.evaluator:evaluator.py:evaluate_rtc_products:217 - grouping by sliding time windows INFO: 9289 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:64 - BEGIN INFO: 9327 data_subscriber.rtc.evaluator_core:evaluator_core.py:_find_set_coverage_in_orbit:112 - Processing orbit=20 INFO: 9348 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:67 - DONE INFO: 9348 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:69 - Cleaning up the sets INFO: 9348 data_subscriber.rtc.evaluator_core:evaluator_core.py:process:71 - Collecting as set of sets INFO: 9348 data_subscriber.rtc.evaluator:evaluator.py:main:108 - coverage_results_short={0: ['MS_20_29', 'MS_20_30']} INFO: 9349 data_subscriber.rtc.evaluator:evaluator.py:main:110 - Converting coverage results to evaluator results INFO: 9349 data_subscriber.rtc.evaluator:evaluator.py:main:116 - Results that meet the target coverage (coverage_target=0), coverage_group=0: ['MS_20_29', 'MS_20_30'] INFO: 9357 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_29', number_of_bursts=1, min_num_bursts=0 INFO: 9357 data_subscriber.rtc.evaluator:evaluator.py:main:169 - Target covered burst set aged out of grace period (grace_period_minutes_remaining=datetime.timedelta(days=-177, seconds=377, microseconds=569615)). Will process at this time. mgrs_set_id='MS_20_29', i=0 INFO: 9357 data_subscriber.rtc.evaluator:evaluator.py:main:150 - mgrs_set_id='MS_20_30', number_of_bursts=1, min_num_bursts=0 INFO: 9357 data_subscriber.rtc.evaluator:evaluator.py:main:169 - Target covered burst set aged out of grace period (grace_period_minutes_remaining=datetime.timedelta(days=-177, seconds=377, microseconds=569194)). Will process at this time. mgrs_set_id='MS_20_30', i=0 PASSED [100%]

================================================================================== warnings summary ================================================================================== tests/unit/data_subscriber/rtc/test_evaluator.py::test_coverage_targetwhen_burst_coveredand_out_of_grace_periodthen_kept_in_evaluator_results[0-expected_sets0] /export/home/hysdsops/conda/lib/python3.9/site-packages/future/standard_library/init__.py:65: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses import imp

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ---------------------------- generated xml file: /export/home/hysdsops/mozart/ops/opera-pcm/tests/unit/data_subscriber/rtc/target/reports/junit/junit.xml ---------------------------- ============================================================================ 8 passed, 1 warning in 9.17s ============================================================================

chrisjrd commented 3 months ago

@chrisjrd - can you provide a reproducible command to execute your test_evaluator.py? I'm getting module import errors using PyTest.

you need to set up your development environment. This is more involved than this UI can facilitate describing.

hhlee445 commented 3 months ago

Tested with following command python3 ~/mozart/ops/opera-pcm/data_subscriber/daac_data_subscriber.py query -c OPERA_L2_RTC-S1_V1 --job-queue=opera-job_worker-rtc_data_download --chunk-size 1 -s 2024-06-26T12:20:15Z -e 2024-06-26T13:20:27Z

triggered 3 DSWx-S1 SCIFLO jobs (100% coverage) 8 jobs are in waiting state due do partial coverage ('MS_143_6', 'MS_143_3', 'MS_143_1', 'MS_143_20', 'MS_143_19', 'MS_142_24', 'MS_142_25', 'MS_142_179'], 100: ['MS_143_5', 'MS_143_4', 'MS_142_180'])