From 5086291a212d9b5e144c45d9461fca329be5651d Mon Sep 17 00:00:00 2001 From: "Karl N. Kappler" Date: Tue, 1 Oct 2024 07:43:34 -0700 Subject: [PATCH] Synthetic processing ipynb has use FCs example - towards #358 (it is fixed but needs a test) - adding some tools in test_processing (_make_processing_config_and_kernel_dataset) to use for test in test_fourier_coefficients --- .../tutorials/synthetic_data_processing.ipynb | 1039 +++++++++++------ tests/synthetic/test_processing.py | 121 +- 2 files changed, 747 insertions(+), 413 deletions(-) diff --git a/docs/tutorials/synthetic_data_processing.ipynb b/docs/tutorials/synthetic_data_processing.ipynb index 4c6eb6e0..bb62cec7 100644 --- a/docs/tutorials/synthetic_data_processing.ipynb +++ b/docs/tutorials/synthetic_data_processing.ipynb @@ -50,7 +50,16 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/kkappler/software/irismt/mtpy-v2/mtpy/modeling/simpeg/recipes/inversion_2d.py:39: UserWarning: Pardiso not installed see https://github.com/simpeg/pydiso/blob/main/README.md.\n", + " warnings.warn(\n" + ] + } + ], "source": [ "import pathlib\n", "import warnings\n", @@ -107,14 +116,23 @@ "source": [ "# Uncomment this to start with a fresh mth5 file\n", "\n", - "#mth5_path.unlink()" + "mth5_path.unlink()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m24:10:01T07:35:10 | INFO | line:679 |mth5.mth5 | _initialize_file | Initialized MTH5 0.1.0 file /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5 in mode w\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + ] + } + ], "source": [ "if not mth5_path.exists():\n", " create_test12rr_h5(target_folder=target_folder) " @@ -141,7 +159,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:01:57 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:12 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] }, { @@ -234,11 +252,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:01:57 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n" + "\u001b[1m24:10:01T07:35:12 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n" ] }, { @@ -336,7 +354,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:01:57 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" + "\u001b[1m24:10:01T07:35:12 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" ] } ], @@ -969,39 +987,44 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:01:57 | INFO | line:276 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", - " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", - "0 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "1 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "2 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "3 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\n", - "4 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "5 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "6 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "7 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:674 |aurora.pipelines.transfer_function_kernel | memory_warning | Total memory: 62.74 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:678 |aurora.pipelines.transfer_function_kernel | memory_warning | Total Bytes of Raw Data: 0.001 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:683 |aurora.pipelines.transfer_function_kernel | memory_warning | Raw Data will use: 0.001 % of memory\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:01:57 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:01:58 | INFO | line:889 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:01:58 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:01:59 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:01:59 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:01:59 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:01:59 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:01:59 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:00 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:00 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:00 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:00 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:00 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n" + "\u001b[1m24:10:01T07:35:12 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:278 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", + " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", + "0 39999.0 True 40000 001 test1 EMTF Synthetic False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "1 39999.0 True 40000 001 test1 EMTF Synthetic False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "2 39999.0 True 40000 001 test1 EMTF Synthetic False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "3 39999.0 True 40000 001 test1 EMTF Synthetic False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\n", + "4 39999.0 True 40000 001 test2 EMTF Synthetic True None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "5 39999.0 True 40000 001 test2 EMTF Synthetic True None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "6 39999.0 True 40000 001 test2 EMTF Synthetic True None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "7 39999.0 True 40000 001 test2 EMTF Synthetic True None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:654 |aurora.pipelines.transfer_function_kernel | memory_check | Total memory: 62.74 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:658 |aurora.pipelines.transfer_function_kernel | memory_check | Total Bytes of Raw Data: 0.001 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:661 |aurora.pipelines.transfer_function_kernel | memory_check | Raw Data will use: 0.001 % of memory\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:707 |aurora.pipelines.transfer_function_kernel | mth5_has_fcs | Fourier coefficients not detected for survey: EMTF Synthetic, station: test1, run: 001-- Fourier coefficients will be computed\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:707 |aurora.pipelines.transfer_function_kernel | mth5_has_fcs | Fourier coefficients not detected for survey: EMTF Synthetic, station: test2, run: 001-- Fourier coefficients will be computed\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:248 |aurora.pipelines.transfer_function_kernel | check_if_fcs_already_exist | FC levels not present\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:12 | INFO | line:445 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:899 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n" ] }, { "data": { - "image/png": "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AKg7q1evVv/+/SstHz16tLKzsyVJs2fP1jPPPKPCwkLFx8dr1qxZSkpKqudKAcD9CDoAAMC0mKMDAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMq0HfGdnhcGj//v0KDg6WxWLxdDkAAKAGDMPQsWPHFBERIT+/84/ZNOigs3//fkVFRXm6DAAAcAEKCgoUGRl53jYNOugEBwdLOr2jQkJCPFwNAACoieLiYkVFRTmP4+fToIPOmdNVISEhBB0AAHxMTaadMBkZAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYltcGHbvdrscff1wdOnRQUFCQOnbsqKeeekqGYTjbGIahv/3tb2rbtq2CgoKUnJys77//3oNVAwAAb+K1QWfGjBmaO3euZs+erW+//VYzZszQ008/reeff97Z5umnn9asWbM0b948bdy4UU2bNtWAAQN06tQpD1YOAAC8hcU4e4jEi9x0000KDw/Xv//9b+eyYcOGKSgoSP/5z39kGIYiIiL00EMP6eGHH5Yk2Ww2hYeHKzs7W7fffnu12yguLlZoaKhsNptCQkLc9rsAAIC6U5vjt9eO6PTt21c5OTn67rvvJEk7duzQ559/rpSUFElSbm6uCgsLlZyc7HxNaGiokpKStGHDhir7LC0tVXFxscsDAACYVyNPF3AukyZNUnFxsS6//HJZrVbZ7XZNnz5dI0eOlCQVFhZKksLDw11eFx4e7lz3axkZGXryySfdWzgAAPAaXjuis3jxYr322mt6/fXXtW3bNi1YsED/+Mc/tGDBggvuc/LkybLZbM5HQUFBHVbc8FgsFucjOzvbIzX069fPWcOYMWOqbHP06FHNmDFDI0aMUExMjEvd53oNAMAcvHZEJz09XZMmTXLOtenatavy8vKUkZGh0aNHq02bNpKkoqIitW3b1vm6oqIixcfHV9lnQECAAgIC3F47vMvevXs1adIkT5cBAPAArx3ROXHihPz8XMuzWq1yOBySpA4dOqhNmzbKyclxri8uLtbGjRvVp0+feq0V3i8wMFCJiYm677771KJFC0+XAwCoJ14bdG6++WZNnz5dy5cv1969e7Vs2TLNnDlTQ4YMkXT6tMkDDzygadOm6d1339WXX36pUaNGKSIiQoMHD/Zs8SZ35nTR2caOHes8HRQTE+NcXlRUpEcffVTx8fEKDg5WYGCgYmNjlZqaqvz8/Ep9l5SUaOrUqerZs6eCg4PVuHFjtW7dWvHx8Ro3bpxWrFghSXriiSdksVj02WefOV+7YMECl9NSe/fulSR16dJFx44d08aNG5WVlcUVdgDQgHjtqavnn39ejz/+uO677z4dPHhQERER+tOf/qS//e1vzjaPPPKISkpKdM899+jo0aO6+uqrtWLFCgUGBnqwcpyxYcMGDRo0SIcOHXJZ/sMPP2jOnDl67bXX9N577+maa65xrrvpppu0evVql/Y///yzfv75Z+3YsUPHjh3TwIEDa1VH48aNL/h3AAD4Nq8NOsHBwcrMzFRmZuY521gsFk2dOlVTp06tv8Kge++9VzfddJPS09Ody2677TYlJCRIOn2Zf3FxsQYPHuwMOe3bt9dtt92moKAgvfXWW/r6669ls9k0bNgwff/99woNDdW3337rDDl+fn4aNWqULrvsMh06dEi5ubkuAeiGG25Qs2bNNHfuXP3444+SpISEBN12223ONmFhYW7eEwAAb+e1QQfe60yYODvoDBw40OUKplmzZungwYOSpBYtWmjbtm3O4JGenq4OHTo4R2oWLFig+++/3+WO1p06ddLLL7/scorMbrfrp59+knT6Pkt9+/bV+++/7ww6Xbp0cd48EgAAiaADN1m3bp3z5yNHjqhly5bnbLt+/Xrdf//96ty5s1q2bKlffvlF3377rWJjY9WjRw9ddtll6tatm5KTk9W+ffv6KB8AYBIEHbjF4cOHa9z2559/lnT6yqjFixdr7Nixys/P148//ugcrZEkf39/ZWRkKC0trc7rBQCYE0EHbnH2/Ji2bdueN5xERUU5f77++uuVm5urbdu2afv27dqzZ4/Wr1+vtWvXqqysTOnp6Ro0aJBiY2PdWj8AwBwIOrhgjRo1UkVFhaTT9z06W9++fbV48WJJp0dsbrjhBnXr1s2ljWEYysnJUceOHSVJp06dUm5urjp37qyEhATn5GbDMNSiRQvZbDY5HA7t2LHDGXTOvqLq1zUAAEDQwQVr166d8vLyJEnPPvusfvnlFwUFBalHjx4aM2aMpk2bpkOHDqmiokJXXXWVRowYodjYWJWWlmr37t1avXq1ioqKtGrVKnXo0EFHjx5VXFycunTposTEREVERCgoKEiff/65bDabc7vNmzd3qeGM5cuXa9KkSWrVqpVatWrlnBx95MgRTZ8+3dnuyJEjzp+3bNninMAcFhamRx991B27CgDgIRbDMAxPF+Eptfmad1SWlpam5557rtLy1NRUzZ49W+vXr9ctt9xS6T46v7Zq1Sr169dPhYWFLl/nUZXExEStW7dOjRqdzujvvvuubrnllkrtunTpoq+++krS6a+A6NChQ7W/T/v27Z03GQQAeK/aHL+99s7I8H7Tp0/XxIkTFRkZKavVWml937599fXXX+vxxx9Xr169FBISIqvVqubNm6tXr14aP368Vq5cqWuvvVbS6cvQZ8+erTvuuENxcXEKCwuT1WpVSEiIEhIS9NRTTyknJ8cZciRp0KBBmj17tjp37ix/f/96+90BAL6BER1GdAAA8CmM6AAAAIigAwAATIygAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATMurg86+ffv0//7f/1PLli0VFBSkrl27asuWLc71hmHob3/7m9q2baugoCAlJyfr+++/92DFAADAm3ht0Dly5IiuuuoqNW7cWB9++KG++eYbPfvss2rRooWzzdNPP61Zs2Zp3rx52rhxo5o2baoBAwbo1KlTHqwcAAB4C4thGIani6jKpEmTtG7dOq1du7bK9YZhKCIiQg899JAefvhhSZLNZlN4eLiys7N1++23V7uN4uJihYaGymazKSQkpE7rBwAA7lGb47fXjui8++67SkhI0IgRI9S6dWv16NFDL730knN9bm6uCgsLlZyc7FwWGhqqpKQkbdiwoco+S0tLVVxc7PIAAADm5bVB58cff9TcuXN16aWX6qOPPtK9996r+++/XwsWLJAkFRYWSpLCw8NdXhceHu5c92sZGRkKDQ11PqKiotz7SwAAAI/y2qDjcDjUs2dP/f3vf1ePHj10zz33aNy4cZo3b94F9zl58mTZbDbno6CgoA4rBgAA3qbegs7Ro0dr1b5t27aKi4tzWda5c2fl5+dLktq0aSNJKioqcmlTVFTkXPdrAQEBCgkJcXkAAADzckvQmTFjhhYtWuR8fuutt6ply5Zq166dduzYUaM+rrrqKu3evdtl2Xfffaf27dtLkjp06KA2bdooJyfHub64uFgbN25Unz596uC3AAAAvs4tQWfevHnO+S8rV67UypUr9eGHHyolJUXp6ek16uPBBx/UF198ob///e/as2ePXn/9db344otKTU2VJFksFj3wwAOaNm2a3n33XX355ZcaNWqUIiIiNHjwYHf8WgAAwMc0ckenhYWFzqDz/vvv69Zbb9UNN9ygmJgYJSUl1aiP3r17a9myZZo8ebKmTp2qDh06KDMzUyNHjnS2eeSRR1RSUqJ77rlHR48e1dVXX60VK1YoMDDQHb8WAADwMW65j05ERITeeust9e3bV506ddK0adM0YsQI7d69W7179/aay7q5jw4AAL6nNsdvt4zoDB06VHfeeacuvfRS/fLLL0pJSZEk/fe//1VsbKw7NgkAAFCJW4LOc889p5iYGBUUFOjpp59Ws2bNJEkHDhzQfffd545NAgAAVOK1XwFRHzh1BQCA7/GKr4B49dVXdfXVVysiIkJ5eXmSpMzMTL3zzjvu2iQAAIALtwSduXPnKi0tTSkpKTp69KjsdrskqXnz5srMzHTHJgEAACpxS9B5/vnn9dJLL+mxxx6T1Wp1Lk9ISNCXX37pjk0CAABU4pagk5ubqx49elRaHhAQoJKSEndsEgAAoBK3BJ0OHTpo+/btlZavWLFCnTt3dscmAQAAKnHL5eVpaWlKTU3VqVOnZBiGNm3apIULFyojI0P/+te/3LFJAACAStwSdO6++24FBQXpr3/9q06cOKE777xTERER+uc//6nbb7/dHZsEAACoxO330Tlx4oSOHz+u1q1bu3MzF4T76AAA4Hu84j46FRUV+uSTT/Tqq68qKChIkrR//34dP37cXZsEAABw4ZZTV3l5eRo4cKDy8/NVWlqq3/3udwoODtaMGTNUWlqqefPmuWOzAAAALtwyojNx4kQlJCToyJEjztEcSRoyZIhycnLcsUkAAIBK3DKis3btWq1fv17+/v4uy2NiYrRv3z53bBIAAKASt4zoOBwO59c+nO2nn35ScHCwOzYJAABQiVtGdG644QZlZmbqxRdflCRZLBYdP35cU6ZM0e9//3t3bBIXwF5m15dz1urEDwfUpGNbdb3vGln9rdW/0O2F2aW1a6UDB6S2baVrrpGsnq3LG/eVF+6mSnyhRsl36jybL9YMeITh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A3Avgg4At+vfv7/mzp0rf39/RUREqFGj0396jh8/LqvVqq1bt1a6oqlZs2bOn4OCgmSxWOq15jNatWqlI0eOuCx74okndOedd2r58uX68MMPNWXKFL3xxhsaMmSIs83hw4d1ySWX1He5AH6FOToA3K5p06aKjY1VdHS0M+RIUo8ePWS323Xw4EHFxsa6PNq0aVPj/jt27Ch/f3+tW7fOuay8vFybN29WXFycJKlz587atGmTy+u++OKLavvu0aOHvvnmm0rLL7vsMj344IP6+OOPNXToUM2fP9+57tSpU/rhhx/Uo0ePGv8OANyDoAPAYy677DKNHDlSo0aN0tKlS5Wbm6tNmzYpIyNDy5cvr3E/TZs21b333qv09HStWLFC33zzjcaNG6cTJ07orrvukiT9+c9/1vfff6/09HTt3r1br7/+eo3uwzNgwAB9/vnnzucnT57U+PHjtXr1auXl5WndunXavHmzOnfu7GzzxRdfKCAgoEanxgC4F0EHgEfNnz9fo0aN0kMPPaROnTpp8ODB2rx5s6Kjo2vVz//8z/9o2LBh+sMf/qCePXtqz549+uijj9SiRQtJp6+EWrJkid5++211795d8+bNc052Pp+RI0fq66+/1u7duyVJVqtVv/zyi0aNGqXLLrtMt956q1JSUvTkk086X7Nw4UKNHDlSTZo0qdXvAKDuWQzDMDxdBAB4s/T0dBUXF+uFF16otu2hQ4fUqVMnbdmyRR06dKiH6gCcDyM6AFCNxx57TO3bt6/R91ft3btXc+bMIeQAXoIRHQAAYFqM6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANP6/x569KaH5AF1AAAAAElFTkSuQmCC", + "image/png": "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AKg7q1evVv/+/SstHz16tLKzsyVJs2fP1jPPPKPCwkLFx8dr1qxZSkpKqudKAcD9CDoAAMC0mKMDAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMq0HfGdnhcGj//v0KDg6WxWLxdDkAAKAGDMPQsWPHFBERIT+/84/ZNOigs3//fkVFRXm6DAAAcAEKCgoUGRl53jYNOugEBwdLOr2jQkJCPFwNAACoieLiYkVFRTmP4+fToIPOmdNVISEhBB0AAHxMTaadMBkZAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYFkEHAACYltcGHbvdrscff1wdOnRQUFCQOnbsqKeeekqGYTjbGIahv/3tb2rbtq2CgoKUnJys77//3oNVAwAAb+K1QWfGjBmaO3euZs+erW+//VYzZszQ008/reeff97Z5umnn9asWbM0b948bdy4UU2bNtWAAQN06tQpD1YOAAC8hcU4e4jEi9x0000KDw/Xv//9b+eyYcOGKSgoSP/5z39kGIYiIiL00EMP6eGHH5Yk2Ww2hYeHKzs7W7fffnu12yguLlZoaKhsNptCQkLc9rsAAIC6U5vjt9eO6PTt21c5OTn67rvvJEk7duzQ559/rpSUFElSbm6uCgsLlZyc7HxNaGiokpKStGHDhir7LC0tVXFxscsDAACYVyNPF3AukyZNUnFxsS6//HJZrVbZ7XZNnz5dI0eOlCQVFhZKksLDw11eFx4e7lz3axkZGXryySfdWzgAAPAaXjuis3jxYr322mt6/fXXtW3bNi1YsED/+Mc/tGDBggvuc/LkybLZbM5HQUFBHVbc8FgsFucjOzvbIzX069fPWcOYMWOqbHP06FHNmDFDI0aMUExMjEvd53oNAMAcvHZEJz09XZMmTXLOtenatavy8vKUkZGh0aNHq02bNpKkoqIitW3b1vm6oqIixcfHV9lnQECAAgIC3F47vMvevXs1adIkT5cBAPAArx3ROXHihPz8XMuzWq1yOBySpA4dOqhNmzbKyclxri8uLtbGjRvVp0+feq0V3i8wMFCJiYm677771KJFC0+XAwCoJ14bdG6++WZNnz5dy5cv1969e7Vs2TLNnDlTQ4YMkXT6tMkDDzygadOm6d1339WXX36pUaNGKSIiQoMHD/Zs8SZ35nTR2caOHes8HRQTE+NcXlRUpEcffVTx8fEKDg5WYGCgYmNjlZqaqvz8/Ep9l5SUaOrUqerZs6eCg4PVuHFjtW7dWvHx8Ro3bpxWrFghSXriiSdksVj02WefOV+7YMECl9NSe/fulSR16dJFx44d08aNG5WVlcUVdgDQgHjtqavnn39ejz/+uO677z4dPHhQERER+tOf/qS//e1vzjaPPPKISkpKdM899+jo0aO6+uqrtWLFCgUGBnqwcpyxYcMGDRo0SIcOHXJZ/sMPP2jOnDl67bXX9N577+maa65xrrvpppu0evVql/Y///yzfv75Z+3YsUPHjh3TwIEDa1VH48aNL/h3AAD4Nq8NOsHBwcrMzFRmZuY521gsFk2dOlVTp06tv8Kge++9VzfddJPS09Ody2677TYlJCRIOn2Zf3FxsQYPHuwMOe3bt9dtt92moKAgvfXWW/r6669ls9k0bNgwff/99woNDdW3337rDDl+fn4aNWqULrvsMh06dEi5ubkuAeiGG25Qs2bNNHfuXP3444+SpISEBN12223ONmFhYW7eEwAAb+e1QQfe60yYODvoDBw40OUKplmzZungwYOSpBYtWmjbtm3O4JGenq4OHTo4R2oWLFig+++/3+WO1p06ddLLL7/scorMbrfrp59+knT6Pkt9+/bV+++/7ww6Xbp0cd48EgAAiaADN1m3bp3z5yNHjqhly5bnbLt+/Xrdf//96ty5s1q2bKlffvlF3377rWJjY9WjRw9ddtll6tatm5KTk9W+ffv6KB8AYBIEHbjF4cOHa9z2559/lnT6yqjFixdr7Nixys/P148//ugcrZEkf39/ZWRkKC0trc7rBQCYE0EHbnH2/Ji2bdueN5xERUU5f77++uuVm5urbdu2afv27dqzZ4/Wr1+vtWvXqqysTOnp6Ro0aJBiY2PdWj8AwBwIOrhgjRo1UkVFhaTT9z06W9++fbV48WJJp0dsbrjhBnXr1s2ljWEYysnJUceOHSVJp06dUm5urjp37qyEhATn5GbDMNSiRQvZbDY5HA7t2LHDGXTOvqLq1zUAAEDQwQVr166d8vLyJEnPPvusfvnlFwUFBalHjx4aM2aMpk2bpkOHDqmiokJXXXWVRowYodjYWJWWlmr37t1avXq1ioqKtGrVKnXo0EFHjx5VXFycunTposTEREVERCgoKEiff/65bDabc7vNmzd3qeGM5cuXa9KkSWrVqpVatWrlnBx95MgRTZ8+3dnuyJEjzp+3bNninMAcFhamRx991B27CgDgIRbDMAxPF+Eptfmad1SWlpam5557rtLy1NRUzZ49W+vXr9ctt9xS6T46v7Zq1Sr169dPhYWFLl/nUZXExEStW7dOjRqdzujvvvuubrnllkrtunTpoq+++krS6a+A6NChQ7W/T/v27Z03GQQAeK/aHL+99s7I8H7Tp0/XxIkTFRkZKavVWml937599fXXX+vxxx9Xr169FBISIqvVqubNm6tXr14aP368Vq5cqWuvvVbS6cvQZ8+erTvuuENxcXEKCwuT1WpVSEiIEhIS9NRTTyknJ8cZciRp0KBBmj17tjp37ix/f/96+90BAL6BER1GdAAA8CmM6AAAAIigAwAATIygAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATMurg86+ffv0//7f/1PLli0VFBSkrl27asuWLc71hmHob3/7m9q2baugoCAlJyfr+++/92DFAADAm3ht0Dly5IiuuuoqNW7cWB9++KG++eYbPfvss2rRooWzzdNPP61Zs2Zp3rx52rhxo5o2baoBAwbo1KlTHqwcAAB4C4thGIani6jKpEmTtG7dOq1du7bK9YZhKCIiQg899JAefvhhSZLNZlN4eLiys7N1++23V7uN4uJihYaGymazKSQkpE7rBwAA7lGb47fXjui8++67SkhI0IgRI9S6dWv16NFDL730knN9bm6uCgsLlZyc7FwWGhqqpKQkbdiwoco+S0tLVVxc7PIAAADm5bVB58cff9TcuXN16aWX6qOPPtK9996r+++/XwsWLJAkFRYWSpLCw8NdXhceHu5c92sZGRkKDQ11PqKiotz7SwAAAI/y2qDjcDjUs2dP/f3vf1ePHj10zz33aNy4cZo3b94F9zl58mTZbDbno6CgoA4rBgAA3qbegs7Ro0dr1b5t27aKi4tzWda5c2fl5+dLktq0aSNJKioqcmlTVFTkXPdrAQEBCgkJcXkAAADzckvQmTFjhhYtWuR8fuutt6ply5Zq166dduzYUaM+rrrqKu3evdtl2Xfffaf27dtLkjp06KA2bdooJyfHub64uFgbN25Unz596uC3AAAAvs4tQWfevHnO+S8rV67UypUr9eGHHyolJUXp6ek16uPBBx/UF198ob///e/as2ePXn/9db344otKTU2VJFksFj3wwAOaNm2a3n33XX355ZcaNWqUIiIiNHjwYHf8WgAAwMc0ckenhYWFzqDz/vvv69Zbb9UNN9ygmJgYJSUl1aiP3r17a9myZZo8ebKmTp2qDh06KDMzUyNHjnS2eeSRR1RSUqJ77rlHR48e1dVXX60VK1YoMDDQHb8WAADwMW65j05ERITeeust9e3bV506ddK0adM0YsQI7d69W7179/aay7q5jw4AAL6nNsdvt4zoDB06VHfeeacuvfRS/fLLL0pJSZEk/fe//1VsbKw7NgkAAFCJW4LOc889p5iYGBUUFOjpp59Ws2bNJEkHDhzQfffd545NAgAAVOK1XwFRHzh1BQCA7/GKr4B49dVXdfXVVysiIkJ5eXmSpMzMTL3zzjvu2iQAAIALtwSduXPnKi0tTSkpKTp69KjsdrskqXnz5srMzHTHJgEAACpxS9B5/vnn9dJLL+mxxx6T1Wp1Lk9ISNCXX37pjk0CAABU4pagk5ubqx49elRaHhAQoJKSEndsEgAAoBK3BJ0OHTpo+/btlZavWLFCnTt3dscmAQAAKnHL5eVpaWlKTU3VqVOnZBiGNm3apIULFyojI0P/+te/3LFJAACAStwSdO6++24FBQXpr3/9q06cOKE777xTERER+uc//6nbb7/dHZsEAACoxO330Tlx4oSOHz+u1q1bu3MzF4T76AAA4Hu84j46FRUV+uSTT/Tqq68qKChIkrR//34dP37cXZsEAABw4ZZTV3l5eRo4cKDy8/NVWlqq3/3udwoODtaMGTNUWlqqefPmuWOzAAAALtwyojNx4kQlJCToyJEjztEcSRoyZIhycnLcsUkAAIBK3DKis3btWq1fv17+/v4uy2NiYrRv3z53bBIAAKASt4zoOBwO59c+nO2nn35ScHCwOzYJAABQiVtGdG644QZlZmbqxRdflCRZLBYdP35cU6ZM0e9//3t3bBIXwF5m15dz1urEDwfUpGNbdb3vGln9rdW/0O2F2aW1a6UDB6S2baVrrpGsnq3LG/eVF+6mSnyhRsl36jybL9YMeITh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A3Avgg4At+vfv7/mzp0rf39/RUREqFGj0396jh8/LqvVqq1bt1a6oqlZs2bOn4OCgmSxWOq15jNatWqlI0eOuCx74okndOedd2r58uX68MMPNWXKFL3xxhsaMmSIs83hw4d1ySWX1He5AH6FOToA3K5p06aKjY1VdHS0M+RIUo8ePWS323Xw4EHFxsa6PNq0aVPj/jt27Ch/f3+tW7fOuay8vFybN29WXFycJKlz587atGmTy+u++OKLavvu0aOHvvnmm0rLL7vsMj344IP6+OOPNXToUM2fP9+57tSpU/rhhx/Uo0ePGv8OANyDoAPAYy677DKNHDlSo0aN0tKlS5Wbm6tNmzYpIyNDy5cvr3E/TZs21b333qv09HStWLFC33zzjcaNG6cTJ07orrvukiT9+c9/1vfff6/09HTt3r1br7/+eo3uwzNgwAB9/vnnzucnT57U+PHjtXr1auXl5WndunXavHmzOnfu7GzzxRdfKCAgoEanxgC4F0EHgEfNnz9fo0aN0kMPPaROnTpp8ODB2rx5s6Kjo2vVz//8z/9o2LBh+sMf/qCePXtqz549+uijj9SiRQtJp6+EWrJkid5++211795d8+bNc052Pp+RI0fq66+/1u7duyVJVqtVv/zyi0aNGqXLLrtMt956q1JSUvTkk086X7Nw4UKNHDlSTZo0qdXvAKDuWQzDMDxdBAB4s/T0dBUXF+uFF16otu2hQ4fUqVMnbdmyRR06dKiH6gCcDyM6AFCNxx57TO3bt6/R91ft3btXc+bMIeQAXoIRHQAAYFqM6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANP6/x569KaH5AF1AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -1013,21 +1036,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:01 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", - "\u001b[1m24:08:28T16:02:01 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:01 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:02 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n" + "\u001b[1m24:10:01T07:35:14 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", + "\u001b[1m24:10:01T07:35:14 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:14 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n" ] }, { "data": { - "image/png": "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Iz8/32W1w728rqj6gfCgavbAUy3VuHsxtOFRFxby6zVq44b9Z7FouW5RviJll6XSJnZZlKcoeffp7fp6GjVSgKz6SS0uXU/fG2t00wUKq1K7Iw3d+DkH3Oiygo5RvUmVXaJXr16y2+3atm2b49GxY8dK2/r6+iowMNDpAXNq1NiicZ940IHwAhqFNFLZgqoFsmt+4/qRiXMahTRSSb5VB70ufuA+4B2lzmNq9sBdFY0aSUet3poc/Kqjll/WJklTmmXoxptcf3t1o8YW7bcG6rng6bVeT3nvm6sUsLz61P7vCfAEnjEZzgWEhITI29tbhYWFTssLCwsVFla1/8VUJjMzU+3bt1e3bt0ut0R4KItFumWAtyY3u/SBsHcf980zYvGyqPGgW3S82cUD2fFmtRvILF4WBUYGKvfxix+489Iy3DKfjsUiBQZKA95M0jAt0H45h8CfFKlhWqD+byTVyjQy7qyn540NNFYX/z09Kvd+zgG3upyLgd59913j2H9vWbTZbEZubu7ldHfBi5FHjx7teG6z2YwWLVo4XYz8a3F7ufktXFj5bdu5ijKStNDtc9Q4LFz439vgLZXfBu/GQiubR+cn7yj3z6PzX5XNP9Qy0n3zD9V2PXb72alyLvY5//BD12wbcJfqHL+r/aWec+bM0fz585Wbm6vAwED17t1bjz32mBo0aKCIiAjZqnmr7rFjx7R3715JUpcuXfTyyy+rb9++Cg4OVnR0tObPn6/k5GS9/vrrio+PV0ZGhj744APt2rWrwrU71cWXetYPixZJj421qfX+1QrXQR1UuPZF9tbLr3q7ZeLcC6p0Rt0oWV7NcM8Mv+fx6JmR5XkTArujnjrzOQdqQHWO31UOOjabTUlJSVq2bJluvfVWXXXVVTp69Kg+//xzHT16VK+99pruv//+agedlStXqm/fvhWWJycnKysrS5I0Y8YMvfjiiyooKFBsbKymT5+uhISEam2nMgSd+sPTDoQXVGcKhSfi44P6wiVB569//atefvllrVixQm3btnUst9vtevnll/X000/rzJkz1Q467kTQAQCg7qnO8bvKFyNnZWXphRdecAo50tl5bZ544glNmTLFI+7CqgouRgYAoH6o8oiOv7+/duzYoauuusrVNdUaRnQAAKh7XDKi07hxYx0+fPiC67dt26b777+/6lUCAAC4WJWDzo03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9+5urAzwPJy6AgAPdOzYMe3du9fxPCcnR9u2bVNwcLCio6OVlpam5ORkxcXFKT4+XhkZGSorK9PIkSPdWDXgebi9HAA80MqVK9W3b98Ky5OTk5WVlSVJmjFjhl588UUVFBQoNjZW06dPV0JCQi1XCng2gg4AADAtrtEBAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmVa9nRrbb7Tpw4IACAgJksVjcXQ4AAKgCwzBUWlqqiIgIeXldfMymXgedAwcOKCoqyt1lAACAXyE/P1+RkZEXbVOvg05AQICkszsqMDDQzdUAAICqKCkpUVRUlOM4fjH1OuicO10VGBhI0AEAoI6pymUnXIwMAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMy2ODjs1m0zPPPKPWrVvL399fbdq00fPPPy/DMBxtDMPQn/70J4WHh8vf31+JiYnas2ePG6sGAACexGODzrRp0zRr1izNmDFD3333naZNm6YXXnhBr732mqPNCy+8oOnTp2v27NnasGGDGjdurH79+unkyZNurBwAAHgKi3H+EIkHue222xQaGqq///3vjmVDhgyRv7+//vGPf8gwDEVEROjxxx/XE088IUmyWq0KDQ1VVlaW7r777ktuo6SkREFBQbJarQoMDHTZewEAADWnOsdvjx3R6dGjh7Kzs/X9999LkrZv3641a9ZowIABkqScnBwVFBQoMTHR8ZqgoCAlJCRo/fr1lfZZXl6ukpISpwcAADCvBu4u4EImTJigkpISXXPNNfL29pbNZtPUqVM1fPhwSVJBQYEkKTQ01Ol1oaGhjnW/lJ6erueee861hQMAAI/hsSM6H3zwgd59912999572rp1q+bOnau//vWvmjt37q/uc+LEibJarY5Hfn5+DVbsuSwWi+ORlZXllhr69OnjqCElJaXSNsXFxZo2bZqGDRumVq1aOdV9odcAAHAxHjuiM378eE2YMMFxrU3Hjh2Vm5ur9PR0JScnKywsTJJUWFio8PBwx+sKCwsVGxtbaZ++vr7y9fV1ee34dfbt26cJEya4uwwAgIl47IjO8ePH5eXlXJ63t7fsdrskqXXr1goLC1N2drZjfUlJiTZs2KDu3bvXaq2o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5evWrZOfn58kyW63O36+kPfff19bt25Venp6hXUFBQXy8fFxCjmSFBoaqoKCym/fTE9Pd7rNPSoqqorvCAAA1EUuub18zJgx+sMf/qAtW7aoW7duks5eZ/O3v/1NTz31lCTp888/V2xs7AX7yM/P17hx47R8+fJLBqKqmjhxotLS0hzPz43oAAAAc3LZt5e/++67mjFjhnbv3i1Jatu2rcaMGaN7771XknTixAnHXViVWbJkiQYPHizv804w22w2WSwWeXl56fPPP1diYmK1Tl39EtfoAABQ97j9Gp2aUFpaqtxc55lGR44cqWuuuUb/93//p6ioKF155ZWaN2+ehgwZIknavXu3rrnmGi5GBgDAxKpz/HbJqStJKi4u1oIFC/Tjjz/qiSeeUHBwsLZu3arQ0FC1aNHikq8PCAjQtdde67SscePGatasmWP5Aw88oLS0NAUHByswMFBjxoxR9+7dqxRyAACA+bkk6OzYsUOJiYkKCgrSvn379OCDDyo4OFiLFi1SXl6e3n777RrZziuvvCIvLy8NGTLEacJAAAAAyUWnrhITE3XdddfphRdeUEBAgLZv367/9//+n9atW6d7771X+/btq+lN/iqcugIAoO5x++3lmzZt0u9///sKy1u0aHHBW78BAABqmkuCjq+vr0pKSios//7773XllVe6YpMAAAAVuCToDBw4UJMnT9bp06clnf0yz7y8PP3f//2f4w4pAAAAV3NJ0HnppZd07NgxXXnllTpx4oRuvPFGxcTEKCAgQFOnTnXFJgEAACpwyV1XQUFBWr58udauXavt27c7vpgzMTHRFZsDAACoVI0HHbvdrqysLC1atEj79u2TxWJR69atFRYWJsMwZLFYanqTAAAAlarRU1eGYWjgwIF68MEHtX//fnXs2FEdOnRQbm6uUlJSNHjw4JrcHAAAwEXV6IhOVlaWVq1apezsbPXt29dp3RdffKFBgwbp7bff1ogRI2pyswAAAJWq0RGdefPm6amnnqoQciTppptu0oQJE/Tuu+/W5CYBAAAuqEaDzo4dO9S/f/8Lrh8wYIC2b99ek5sEAAC4oBoNOkVFRQoNDb3g+tDQUB09erQmNwkAAHBBNRp0bDabGjS48GU/3t7eOnPmTE1uEgAA4IJq9GJkwzCUkpIiX1/fSteXl5fX5OYAAAAuqkaDTnJy8iXbcMcV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SZLatm2rnTt3atq0aRetOTc311HbOXl5eRo/fryuueYaSdJVV11V4XURERHKzc2txt4B4AoEHQAu9+mnn+qKK67Q6dOnZbfbde+99+rZZ5/VypUrZbPZdPXVVzu1Ly8vV7NmzRzPfXx81KlTpwv2/8MPP+j06dPq2bOnY1nDhg0VHx+v7777TpL03XffKSEhwel13bt3v2TtJ06ccDptJUlpaWl68MEH9c477ygxMVHDhg1TmzZtnNr4+/vr+PHjl+wfgGsRdAC4XN++fTVr1iz5+PgoIiJCDRqc/dNz7NgxeXt7a8uWLRXuaLriiiscP/v7+8tisdRqzeeEhITo6NGjTsueffZZ3XvvvVq6dKk+++wzTZo0Se+//74GDx7saFNUVKQrr7yytssF8AtcowPA5Ro3bqyYmBhFR0c7Qo4kdenSRTabTYcOHVJMTIzTIywsrMr9t2nTRj4+Plq7dq1j2enTp7Vp0ya1b99ektSuXTtt3LjR6XVfffXVJfvu0qWLvv322wrLr776aj322GP617/+paSkJM2ZM8ex7uTJk/rhhx/UpUuXKr8HAK5B0AHgNldffbWGDx+uESNGaNGiRcrJydHGjRuVnp6upUuXVrmfxo0b6+GHH9b48eO1bNkyffvttxo1apSOHz+uBx54QJL0hz/8QXv27NH48eO1e/duvffee1Wah6dfv35as2aN4/mJEyc0evRorVy5Urm5uVq7dq02bdqkdu3aOdp89dVX8vX1rdKpMQCuRdAB4FZz5szRiBEj9Pjjj6tt27YaNGiQNm3apOjo6Gr185e//EVDhgzRfffdp+uuu0579+7V559/rqZNm0o6eyfUwoULtWTJEnXu3FmzZ892XOx8McOHD9c333yj3bt3S5K8vb31888/a8SIEbr66qt15513asCAAXruueccr5k3b56GDx+uRo0aVes9AKh5FsMwDHcXAQCebPz48SopKdHrr79+ybZHjhxR27ZttXnzZrVu3boWqgNwMYzoAMAlPP3002rZsmWVvr9q3759mjlzJiEH8BCM6AAAANNiRAcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJjW/wfpQk2rVccwGgAAAABJRU5ErkJggg==", + "image/png": "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Iz8/32W1w728rqj6gfCgavbAUy3VuHsxtOFRFxby6zVq44b9Z7FouW5RviJll6XSJnZZlKcoeffp7fp6GjVSgKz6SS0uXU/fG2t00wUKq1K7Iw3d+DkH3Oiygo5RvUmVXaJXr16y2+3atm2b49GxY8dK2/r6+iowMNDpAXNq1NiicZ940IHwAhqFNFLZgqoFsmt+4/qRiXMahTRSSb5VB70ufuA+4B2lzmNq9sBdFY0aSUet3poc/Kqjll/WJklTmmXoxptcf3t1o8YW7bcG6rng6bVeT3nvm6sUsLz61P7vCfAEnjEZzgWEhITI29tbhYWFTssLCwsVFla1/8VUJjMzU+3bt1e3bt0ut0R4KItFumWAtyY3u/SBsHcf980zYvGyqPGgW3S82cUD2fFmtRvILF4WBUYGKvfxix+489Iy3DKfjsUiBQZKA95M0jAt0H45h8CfFKlhWqD+byTVyjQy7qyn540NNFYX/z09Kvd+zgG3upyLgd59913j2H9vWbTZbEZubu7ldHfBi5FHjx7teG6z2YwWLVo4XYz8a3F7ufktXFj5bdu5ijKStNDtc9Q4LFz439vgLZXfBu/GQiubR+cn7yj3z6PzX5XNP9Qy0n3zD9V2PXb72alyLvY5//BD12wbcJfqHL+r/aWec+bM0fz585Wbm6vAwED17t1bjz32mBo0aKCIiAjZqnmr7rFjx7R3715JUpcuXfTyyy+rb9++Cg4OVnR0tObPn6/k5GS9/vrrio+PV0ZGhj744APt2rWrwrU71cWXetYPixZJj421qfX+1QrXQR1UuPZF9tbLr3q7ZeLcC6p0Rt0oWV7NcM8Mv+fx6JmR5XkTArujnjrzOQdqQHWO31UOOjabTUlJSVq2bJluvfVWXXXVVTp69Kg+//xzHT16VK+99pruv//+agedlStXqm/fvhWWJycnKysrS5I0Y8YMvfjiiyooKFBsbKymT5+uhISEam2nMgSd+sPTDoQXVGcKhSfi44P6wiVB569//atefvllrVixQm3btnUst9vtevnll/X000/rzJkz1Q467kTQAQCg7qnO8bvKFyNnZWXphRdecAo50tl5bZ544glNmTLFI+7CqgouRgYAoH6o8oiOv7+/duzYoauuusrVNdUaRnQAAKh7XDKi07hxYx0+fPiC67dt26b777+/6lUCAAC4WJWDzo033qjZs2dXuq6goEB333235s6dW2OFAQAAXK4qB51JkyZp4cKFSk5O1tdff62TJ0/qwIEDev3119WtWzeFhIS4sk4AAIBqq3LQ6dSpkz777DOtXbtWnTt3VuPGjRUVFaWxY8fqnnvu0bx587gYGQAAeJRqTxhot9u1ceNG5eTkKDAwUN27d1dwcLDKysr017/+VZMmTXJVrTWOi5EBAKh7XDKPjhkRdAAAqHtcctcVAABAXUPQAQAAplUvgw4XIwMAUD9wjQ7X6AAAUKdwjQ4AAIAIOgAAwMQIOgAAwLQIOgAAwLQIOgAAwLTqZdDh9nIAAOoHbi/n9nIAAOoUbi8HAAAQQQcAAJgYQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJhWvQw6zKMDAED9wDw6zKMDAECdwjw6AAAAIugAAAATI+gAAADTIugAAADTIugAAADTIugAAADTIugAAADTIugAAADTqpdBh5mRAQCoH5gZmZmRAQCoU5gZGQAAQAQdAABgYgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWgQdAABgWvUy6GRmZqp9+/bq1q2bu0sBAAAuZDEMw3B3Ee5Sna95BwAAnqE6x+96OaIDAADqB4IOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLVMEncGDB6tp06YaOnSou0sBAAAexBRBZ9y4cXr77bfdXQYAAPAwpgg6ffr0UUBAgLvLAAAAHsbtQWfVqlW6/fbbFRERIYvFoiVLllRok5mZqVatWsnPz08JCQnauHFj7RcKAADqHLcHnbKyMnXu3FmZmZmVrp8/f77S0tI0adIkbd26VZ07d1a/fv106NChWq4UAADUNQ3cXcCAAQM0YMCAC65/+eWXNWrUKI0cOVKSNHv2bC1dulRvvfWWJkyYUK1tlZeXq7y83PHcarVKkkpKSn5F5QAAwB3OHbcNw7hkW7cHnYs5deqUtmzZookTJzqWeXl5KTExUevXr692f+np6XruuecqLI+KirqsOgEAQO0rLS1VUFDQRdt4dNA5cuSIbDabQkNDnZaHhoZq165djueJiYnavn27ysrKFBkZqQ8//FDdu3ev0N/EiROVlpbmeG6321VUVKRmzZrJYrG47o38St26ddOmTZvcXYZHqOv7whPrd1dNtbVdV22nJvutib5KSkoUFRWl/Px8BQYG1khdcB9P/FvhLhfbF4ZhqLS0VBEREZfsx6ODTlX9+9//rlI7X19f+fr6Oi1r0qSJCyqqGd7e3vzh+q+6vi88sX531VRb23XVdmqy35rsKzAw0OM+Y6g+T/xb4S6X2heXGsk5x+0XI19MSEiIvL29VVhY6LS8sLBQYWFhbqqq9qSmprq7BI9R1/eFJ9bvrppqa7uu2k5N9uuJnwu4F5+J/6mpfWExqnIlTy2xWCxavHixBg0a5FiWkJCg+Ph4vfbaa5LOnm6Kjo7W6NGjq30xMgCYTUlJiYKCgmS1WhkJACrh9lNXx44d0969ex3Pc3JytG3bNgUHBys6OlppaWlKTk5WXFyc4uPjlZGRobKyMsddWABQn/n6+mrSpEkVTssDOMvtIzorV65U3759KyxPTk5WVlaWJGnGjBl68cUXVVBQoNjYWE2fPl0JCQm1XCkAAKhr3B50AAAAXMWjL0YGAAC4HAQdAABgWgQdAABgWgQdADCh/Px89enTR+3bt1enTp304YcfurskwC24GBkATOjgwYMqLCxUbGysCgoK1LVrV33//fdq3Lixu0sDapXb59EBANS88PBwhYeHS5LCwsIUEhKioqIigg7qHU5dAYAHWrVqlW6//XZFRETIYrFoyZIlFdpkZmaqVatW8vPzU0JCgjZu3FhpX1u2bJHNZlNUVJSLqwY8D0EHADxQWVmZOnfurMzMzErXz58/X2lpaZo0aZK2bt2qzp07q1+/fjp06JBTu6KiIo0YMUJvvPFGbZQNeByu0QEAD3eh7wHs1q2bZsyYIens9wBGRUVpzJgxju8BLC8v180336xRo0bpvvvuc0fpgNsxogMAdcypU6e0ZcsWJSYmOpZ5eXkpMTFR69evlyQZhqGUlBTddNNNhBzUawQdAKhjjhw5IpvNptDQUKfloaGhKigokCStXbtW8+fP15IlSxQbG6vY2Fjt3LnTHeUCbsVdVwBgQr169ZLdbnd3GYDbMaIDAHVMSEiIvL29VVhY6LS8sLBQYWFhbqoK8EwEHQCoY3x8fNS1a1dlZ2c7ltntdmVnZ6t79+5urAzwPJy6AgAPdOzYMe3du9fxPCcnR9u2bVNwcLCio6OVlpam5ORkxcXFKT4+XhkZGSorK9PIkSPdWDXgebi9HAA80MqVK9W3b98Ky5OTk5WVlSVJmjFjhl588UUVFBQoNjZW06dPV0JCQi1XCng2gg4AADAtrtEBAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmVa9nRrbb7Tpw4IACAgJksVjcXQ4AAKgCwzBUWlqqiIgIeXldfMymXgedAwcOKCoqyt1lAACAXyE/P1+RkZEXbVOvg05AQICkszsqMDDQzdUAAICqKCkpUVRUlOM4fjH1OuicO10VGBhI0AEAoI6pymUnXIwMAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMi6ADAABMy2ODjs1m0zPPPKPWrVvL399fbdq00fPPPy/DMBxtDMPQn/70J4WHh8vf31+JiYnas2ePG6sGAACexGODzrRp0zRr1izNmDFD3333naZNm6YXXnhBr732mqPNCy+8oOnTp2v27NnasGGDGjdurH79+unkyZNurBwAAHgKi3H+EIkHue222xQaGqq///3vjmVDhgyRv7+//vGPf8gwDEVEROjxxx/XE088IUmyWq0KDQ1VVlaW7r777ktuo6SkREFBQbJarQoMDHTZewEAADWnOsdvjx3R6dGjh7Kzs/X9999LkrZv3641a9ZowIABkqScnBwVFBQoMTHR8ZqgoCAlJCRo/fr1lfZZXl6ukpISpwcAADCvBu4u4EImTJigkpISXXPNNfL29pbNZtPUqVM1fPhwSVJBQYEkKTQ01Ol1oaGhjnW/lJ6erueee861hQMAAI/hsSM6H3zwgd59912999572rp1q+bOnau//vWvmjt37q/uc+LEibJarY5Hfn5+DVbsuSwWi+ORlZXllhr69OnjqCElJaXSNsXFxZo2bZqGDRumVq1aOdV9odcAAHAxHjuiM378eE2YMMFxrU3Hjh2Vm5ur9PR0JScnKywsTJJUWFio8PBwx+sKCwsVGxtbaZ++vr7y9fV1ee34dfbt26cJEya4uwwAgIl47IjO8ePH5eXlXJ63t7fsdrskqXXr1goLC1N2drZjfUlJiTZs2KDu3bvXaq2o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5evWrZOfn58kyW63O36+kPfff19bt25Venp6hXUFBQXy8fFxCjmSFBoaqoKCym/fTE9Pd7rNPSoqqorvCAAA1EUuub18zJgx+sMf/qAtW7aoW7duks5eZ/O3v/1NTz31lCTp888/V2xs7AX7yM/P17hx47R8+fJLBqKqmjhxotLS0hzPz43oAAAAc3LZt5e/++67mjFjhnbv3i1Jatu2rcaMGaN7771XknTixAnHXViVWbJkiQYPHizv804w22w2WSwWeXl56fPPP1diYmK1Tl39EtfoAABQ97j9Gp2aUFpaqtxc55lGR44cqWuuuUb/93//p6ioKF155ZWaN2+ehgwZIknavXu3rrnmGi5GBgDAxKpz/HbJqStJKi4u1oIFC/Tjjz/qiSeeUHBwsLZu3arQ0FC1aNHikq8PCAjQtdde67SscePGatasmWP5Aw88oLS0NAUHByswMFBjxoxR9+7dqxRyAACA+bkk6OzYsUOJiYkKCgrSvn379OCDDyo4OFiLFi1SXl6e3n777RrZziuvvCIvLy8NGTLEacJAAAAAyUWnrhITE3XdddfphRdeUEBAgLZv367/9//+n9atW6d7771X+/btq+lN/iqcugIAoO5x++3lmzZt0u9///sKy1u0aHHBW78BAABqmkuCjq+vr0pKSios//7773XllVe6YpMAAAAVuCToDBw4UJMnT9bp06clnf0yz7y8PP3f//2f4w4pAAAAV3NJ0HnppZd07NgxXXnllTpx4oRuvPFGxcTEKCAgQFOnTnXFJgEAACpwyV1XQUFBWr58udauXavt27c7vpgzMTHRFZsDAACoVI0HHbvdrqysLC1atEj79u2TxWJR69atFRYWJsMwZLFYanqTAAAAlarRU1eGYWjgwIF68MEHtX//fnXs2FEdOnRQbm6uUlJSNHjw4JrcHAAAwEXV6IhOVlaWVq1apezsbPXt29dp3RdffKFBgwbp7bff1ogRI2pyswAAAJWq0RGdefPm6amnnqoQciTppptu0oQJE/Tuu+/W5CYBAAAuqEaDzo4dO9S/f/8Lrh8wYIC2b99ek5sEAAC4oBoNOkVFRQoNDb3g+tDQUB09erQmNwkAAHBBNRp0bDabGjS48GU/3t7eOnPmTE1uEgAA4IJq9GJkwzCUkpIiX1/fSteXl5fX5OYAAAAuqkaDTnJy8iXbcMcV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SZLatm2rnTt3atq0aRetOTc311HbOXl5eRo/fryuueYaSdJVV11V4XURERHKzc2txt4B4AoEHQAu9+mnn+qKK67Q6dOnZbfbde+99+rZZ5/VypUrZbPZdPXVVzu1Ly8vV7NmzRzPfXx81KlTpwv2/8MPP+j06dPq2bOnY1nDhg0VHx+v7777TpL03XffKSEhwel13bt3v2TtJ06ccDptJUlpaWl68MEH9c477ygxMVHDhg1TmzZtnNr4+/vr+PHjl+wfgGsRdAC4XN++fTVr1iz5+PgoIiJCDRqc/dNz7NgxeXt7a8uWLRXuaLriiiscP/v7+8tisdRqzeeEhITo6NGjTsueffZZ3XvvvVq6dKk+++wzTZo0Se+//74GDx7saFNUVKQrr7yytssF8AtcowPA5Ro3bqyYmBhFR0c7Qo4kdenSRTabTYcOHVJMTIzTIywsrMr9t2nTRj4+Plq7dq1j2enTp7Vp0ya1b99ektSuXTtt3LjR6XVfffXVJfvu0qWLvv322wrLr776aj322GP617/+paSkJM2ZM8ex7uTJk/rhhx/UpUuXKr8HAK5B0AHgNldffbWGDx+uESNGaNGiRcrJydHGjRuVnp6upUuXVrmfxo0b6+GHH9b48eO1bNkyffvttxo1apSOHz+uBx54QJL0hz/8QXv27NH48eO1e/duvffee1Wah6dfv35as2aN4/mJEyc0evRorVy5Urm5uVq7dq02bdqkdu3aOdp89dVX8vX1rdKpMQCuRdAB4FZz5szRiBEj9Pjjj6tt27YaNGiQNm3apOjo6Gr185e//EVDhgzRfffdp+uuu0579+7V559/rqZNm0o6eyfUwoULtWTJEnXu3FmzZ892XOx8McOHD9c333yj3bt3S5K8vb31888/a8SIEbr66qt15513asCAAXruueccr5k3b56GDx+uRo0aVes9AKh5FsMwDHcXAQCebPz48SopKdHrr79+ybZHjhxR27ZttXnzZrVu3boWqgNwMYzoAMAlPP3002rZsmWVvr9q3759mjlzJiEH8BCM6AAAANNiRAcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJgWQQcAAJjW/wfpQk2rVccwGgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -1039,21 +1062,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:03 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", - "\u001b[1m24:08:28T16:02:03 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:03 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:03 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:03 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:03 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:04 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:04 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:04 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:04 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n" + "\u001b[1m24:10:01T07:35:15 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", + "\u001b[1m24:10:01T07:35:15 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n" ] }, { "data": { - "image/png": "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ewGVu190dLTj5/j4eKdA83Pm96hXr14qKirSpk2btHnzZu3cuVOrV6/WihUrdOLECY0dO1b9+vVTSkqKR+sHAHiHT4ejoKAgdezYUQUFBRowYICk6knUBQUFGjVq1Hn3m5ubq9zcXFVUVDidmrkY/eMf/9Cjjz4qqXpU6b333nM81rFjxzr1dfDgQaf7I0aMcLx/b7755nnVN2fOHMdke0kqKiqqcSl+bRo0aKBTp05J0hlHs7p06eKo64cfftCNN96oa665xqmNYRgqKChQy5YtJUnHjx9XUVGRWrdurfT0dKWnpzvaNW7cWFarVXa7XVu2bHGEo4YNGzr6c2VUDQDg27wejo4ePaqdO3c67hcVFWnz5s2Kjo5WUlKS8vLylJ2drfT0dGVkZGjq1KmqrKx0OqCidr///e+1fft2NW/eXAsWLHBcuSVJI0eOrFNfrVq1crp/8803q0+fPtq6dasWLFjglnrromnTpiouLpZUPYp18OBBhYaGqkOHDvrVr36lnJwcTZw4UQcOHNCpU6fUtWtXDRkyRCkpKaqqqnJcmVZWVqZPPvlELVq0UHl5udq0aaO2bdsqIyNDCQkJCg0N1cqVK2W1Wh37btSokVMdpy1ZskTjxo1TTEyMYmJiHF8NcvjwYT399NOOdocPH3b8vGHDBj388MOSqke7TodZAICXeGSadx188sknZ5yBbl775cUXXzSSkpKMoKAgIyMjw1i7dq1b9m21Wg1JhtVqdUt/vuDn6wbdfPPNZ3x/b7755jqvc3TixAmjffv2tf59me9/8skn51WvK+scnfbggw+esZbc3FxHm1WrVp11naOf17tv375zts3IyDBOnjzp2Mc777xzxnZt27Z1tCkqKnLpygvzGk0AgDPz9PHb6ytk9+jRw3Glmflm/iLRUaNGqbi4WFVVVfrss8+UmZnpvYL9zMKFC/XUU0+pZcuWCgoKUnJysiZMmKC33367zhPZGjZsqI8//lg5OTlq0qSJgoOD1a5dO7300kt64oknPPMCzuLpp5/W/fffr2bNmjlNijbr0qWLvvjiCz3++OPq2LGjIiMjFRgYqEaNGqljx44aNWqUli1bpl/+8peSpMaNG2v69Om644471KZNG0VHRyswMFCRkZFKT0/XH//4RxUUFKhBg58GXfv166fp06erdevWCgoKqpfXDgDwHIthXHpfRGaekP3111/LarVeNFcL/XwOzyX41wsAuMidnjPsqeO310eOvCE3N1dffvml1q9f7+1SAACAj7kkwxEAAEBtvH61Grxrz549+tWvfnXOdrfccosmTZpUDxUBAOBdhKOLTE5OjuPycVecPHlSO3bsOGe7ffv2XUBVAAD4j0syHF3MK2TXVXJyMpO2AQAwuSSvVjvN07PdAQCA+3G1GgAAQD0iHAEAAJgQjgAAAEwuyXCUn5+vNm3aqFOnTt4uBQAA+BgmZDMhGwAAv8KEbAAAgHpEOAIAADAhHAEAAJgQjgAAAEwIRwAAACaXZDjiUn4AAFAbLuXnUn4AAPwKl/IDAADUI8IRAACACeEIAADAhHAEAABgQjgCAAAwIRwBAACYXJLhiHWOAABAbVjniHWOAADwK6xzBAAAUI8IRwAAACaEIwAAABPCEQAAgAnhCAAAwIRwBAAAYEI4AgAAMCEcAQAAmFyS4YgVsgEAQG1YIZsVsgEA8CuskA0AAFCPCEcAAAAmhCMAAAATwhEAAIAJ4QgAAMCEcAQAAGBCOAIAADAhHAEAAJgQjgAAAEwIRwAAACaEIwAAABPCEQAAgAnhCAAAwOSSDEf5+flq06aNOnXq5O1SAACAj7EYhmF4uwhvqaioUFRUlKxWqyIjI71dDgAAcIGnj9+X5MgRAABAbQhHAAAAJoQjAAAAE8IRAACACeEIAADAhHAEAABgQjgCAAAwIRwBAACYEI4AAABMCEcAAAAmhCMAAACTBufzpOPHj2vr1q3av3+/7Ha702P9+vVzS2EAAADeUOdwtHTpUg0fPlwHDhyo8ZjFYpHNZnNLYQAAAN5Q59Nqo0eP1pAhQ7Rv3z7Z7XanG8EIAAD4uzqHo7KyMuXl5Sk2NtYT9QAAAHhVncPR4MGDVVhY6IFSAAAAvM9iGIZRlyccO3ZMQ4YM0eWXX6727durYcOGTo+PGTPGrQV6UkVFhaKiomS1WhUZGentcgDA82w2acUKad8+KT5e6t5dCgz02O7sdunAgerdrl0rlZdLcXFS164/7TYsTLJYPFYCLkKePn7XeUL2vHnz9NFHHykkJESFhYWymH6jLRaLX4UjAPC0es4iZ3Y6oSxZIuOxx2TZt8/xkJHQVJZnpkj9+7s9pdjtrr3Wo0el8HC37Ra4YHUeOYqLi9OYMWM0btw4BQR4f5mkkpIS3Xnnndq/f78aNGigxx9/XEOGDHHpuYwcwdt84sAJtzNlET3+qE0ppSsUr33ap3h9l9Bdf34m0BNZpPZiXPylMo4cleUy96UUu11qEGhXjA4oQDZdp7VqrHLtU5xWqavsqq5r/5EwhV/G0BFc53MjRydOnNBtt93mE8FIkho0aKCpU6cqLS1NpaWl6tixo/7nf/5H4fw3BD5u4ULpwTE2tdjz04GzqGl3vTAtUAMHeru6mmwnbNo2Y4WOfbtPYS3j1f6+7goMIsn9nDkQ3Kwl+kyPqal+Gqn5fm9TjR02RSPVv15Cgd3u+uTSY0dsCr/Mffs2bHZHADqbU7ajkvjMhu+oc8LJzs7W/PnzPVHLeYmPj1daWpqk6lGtmJgYHTp0yLtFAeewYIH0+qCFWrknWYXqqXkaqkL11Mo9yXp90ELNnSvVbUzXs9Y+slBlYclKe7CnukwfqrQHe6osLFlrH1no7dJks0mFhdK8edV/en1FEXt1INivWM3WXU7BSJKaaY/maZgqdZlsR455vp6AAPVUgWttN250665XrHCt3erVbt0tcMHqHI5sNpumTJmi66+/XqNHj1ZeXp7Tra6WL1+uvn37KiEhQRaLRYsXL67RJj8/X8nJyQoJCVFmZqbWrVt3xr42btwom82mxMTEOtcB1JeTJ6V5QxboLQ1WU33v9FhT7dFbGqz3hs3VkQrvpyP7KbtW3DVbGc8MVpzNudY42x5lPDNYK3PnyrB7p9aFC6VfNLfpiZ6FenfoPD3Rs1C/aG7TQi9mtroMqv9ng+eTXIDFUP7YYpfa7lpb6tZ9l+4zVKJmstfyuF0WlaiZ9h4Mdut+gQtV53C0bds2dejQQQEBAfr888/1n//8x3HbvHlznQuorKxUamqq8vPzz/j4/PnzlZeXpwkTJmjTpk1KTU1V7969tX//fqd2hw4d0vDhw/XSSy/VuQagPq34+KTe1hAFyKjxD7B6m6F5Gqa1y454pb7T7KfsCmgYqO6z7zprrd1mDNORvfVbq90uzZ7tm6Nvhiz66P4lLrU99Zl7R2rOxKg8pjbP3OVS21LDvevXtdq/Qon6vtYDTYAMJep7XX1gpVv3C1www4dIMhYtWuS0LSMjw8jNzXXct9lsRkJCgjFp0iTHtuPHjxvdu3c3XnvttbP2f/z4ccNqtTpuJSUlhiTDarW69XUAZ/OvhwsMo/q4fdZbwcP/8mqdtpM2l+o0JGPdU/VXq81mGBbZjBy9YthkMWw/q6V6m8W4Xa8b1nJ7vdV12tGyoy6/b5+P/6dP1VOw9IRb913597ku7ffka3Pdul9c/KxWq0eP3xc0q3rVqlWqqqpyS0g7kxMnTmjjxo3KyspybAsICFBWVpbWrFkjSTIMQzk5OerVq5fuvPPOs/Y3adIkRUVFOW6cfoM3NLW5doojtqF35879eNyiEfq7S22rSg97uBqT/87pma2zj2j5wujbubTqEe/5nYSFKVxHdYdel10W2eU8Afz0tkF6S917Naylk/NjiY9zqV1A03p4H4A6uKBw1KdPH+3Zs8ddtdRw4MAB2Wy2Gl9VEhsbq9LS6nPjq1at0vz587V48WKlpaUpLS1N27ZtO2N/48ePl9VqddxKSko8VjtQm7a9XDtgXN3LyweMY8c0W3e71DTsF669Jneoy6XvDdat8lwhtQiLCVPlXquONW5aI4icZpdFx5okqsGvrvd8PeEW7T8arr6vD9UQLdAeNXV6/Hs10xAt0B1vDVZD92YjhXTp6FK7gO5d3btj4ALV+VJ+M8MHLqfp1q2b7Pbapvs5Cw4OVnAwE//gXYE33aAfo5sq+NBeBajmvyG7LDrepJnCenr+wHk2YWGut03N7e65Qn7m2I8WjdLfXQpusQ3rcUTrvywBFoXHR0p/myZj0GDZZXH6e7bLIouksJem1suiVhZL9QKLQ4dKISED1W1Mf6flI3Y1667n/+KZ5SMsDVx8fSzuBR/jG4sV1SImJkaBgYEqKytz2l5WVqa4uPP/n2p+fr7atGmjTp06XWiJQN01aKDQl6fJIp3xFEd9HjjPxhIeJh09qnUPnP10zNqH31JgiJuHHM6mDiNara6vvxGtGgYOlOXtBbI0cx6psTRrJsvbC+SNxawGDpS+Kw7UE5/0UL+5d+iJT3ro210eXFcrrPp3SK+/LjV1fh+UkCC98kr12gs+sm4ecFqdV8g2mzt3rvr376/w8HDZ7XZ9//33SkpKOv9iLBYtWrRIAwYMcGzLzMxURkaGXnzxRUmS3W5XUlKSRo0apXHjxp33viRWyIaXLVwo4/77Zfn+p0vkjWaJsvxlqlcOnGez9pGFSnr+fiWYLuffE5iokrypum5K/dZqHK2UJcLFlQpPnJDbzxXVFcugV+N9gBv53ArZs2fP1vz581VcXKzIyEht2rRJDz74oBo0aKAWLVrIVscV2I4ePaqdO3c67hcVFWnz5s2Kjo5WUlKS8vLylJ2drfT0dGVkZGjq1KmqrKzUiBEj6lo64FsGDpSlf3+nA4bFRw8Y100ZKNvE/tr8sxWym3phhezTI1p65x0Zw/5XhnTG01aWt970fjCSqv8+e/TwdhXex/sAP+LyyJHNZtPAgQO1dOlS3Xzzzbryyit1+PBhffjhhzp8+LBefPFF3XXXXXUOR4WFherZs2eN7dnZ2ZozZ44kafr06XrmmWdUWlqqtLQ0TZs2TZmZmXXaz5kwcgT4OT8afQPgPp4+frscjp599lk9//zz+uSTT9SqVSvHdrvdrueff16PPfaYTp06Vedw5E2EI+AiwOka4JLjM6fV5syZoylTpjgFI6l63aGHH35YhmHod7/7ndsL9IT8/Hzl5+f7VZADUAtO1wBwM5dHjkJDQ7V161ZdeeWVnq6p3jByBACA//H08dvl6yfDw8P1ww8/1Pr45s2bddddrn1/DwAAgK9yORxdf/31mjVr1hkfKy0t1e23365XX33VbYUBAAB4g8vhaMKECXr77beVnZ2tzz//XMePH9fevXv117/+VZ06dVJMTIwn6wQAAKgXLoeja665Rh988IFWrVql1NRUhYeHKzExUWPGjNEdd9yhefPm+cTXibiCFbIBAEBt6rxCtt1u17p161RUVKTIyEh17txZ0dHRqqys1LPPPqsJEyZ4qla3Y0I2AAD+x2fWOboYEY4AAPA/PnO1GgAAwKWAcAQAAGBySYYjJmQDAIDaMOeIOUcAAPgV5hwBAADUI8IRAACACeEIAADAhHAEAABgQjgCAAAwuSTDEZfyAwCA2nApP5fyAwDgV7iUHwAAoB4RjgAAAEwIRwAAACaEIwAAABPCEQAAgAnhCAAAwOSSDEescwQAAGrDOkescwQAgF9hnSMAAIB6RDgCAAAwIRwBAACYEI4AAABMCEcAAAAmhCMAAAATwhEAAIAJ4QgAAMDkkgxHrJANAABqwwrZrJANAIBfYYVsAACAekQ4AgAAMCEcAQAAmBCOAAAATAhHAAAAJoQjAAAAE8IRAACACeEIAADAhHAEAABgQjgCAAAwIRwBAACYEI4AAABMCEcAAAAml2Q4ys/PV5s2bdSpUydvlwIAAHyMxTAMw9tFeEtFRYWioqJktVoVGRnp7XIAAIALPH38viRHjgAAAGpDOAIAADAhHAEAAJgQjgAAAEwIRwAAACaEIwAAABPCEQAAgAnhCAAAwIRwBAAAYEI4AgAAMCEcAQAAmBCOAAAATAhHAAAAJoQjAAAAE8IRAACACeEIAADAhHAEAABgQjgCAAAwuSjC0S233KLGjRtr8ODB3i4FAAD4uYsiHN1///167bXXvF0GAAC4CFwU4ahHjx6KiIjwdhkAAOAi4PVwtHz5cvXt21cJCQmyWCxavHhxjTb5+flKTk5WSEiIMjMztW7duvovFAAAXBK8Ho4qKyuVmpqq/Pz8Mz4+f/585eXlacKECdq0aZNSU1PVu3dv7d+/v54rBQAAl4IG3i6gT58+6tOnT62PP//88xo5cqRGjBghSZo1a5aWLFmiV155RePGjavTvqqqqlRVVeW4b7VaJUkVFRXnUTkAAPCG08dtwzA80r/Xw9HZnDhxQhs3btT48eMd2wICApSVlaU1a9bUub9JkybpySefrLE9MTHxguoEAAD17+DBg4qKinJ7vz4djg4cOCCbzabY2Fin7bGxsdq+fbvjflZWlrZs2aLKyko1a9ZMb731ljp37lyjv/HjxysvL89x326369ChQ2rSpIksFovnXsgZdOrUSevXr/fb/bizX3f0VVFRocTERJWUlCgyMtItdcF76uvfhz/w9/fCF+v3Vk31sV9/+Mx3R39Wq1VJSUmKjo52W01mPh2OXPXvf//bpXbBwcEKDg522taoUSMPVHRugYGB9XIQ99R+3NmvO/uKjIwkHF0E6uvfhz/w9/fCF+v3Vk31sV9/+Mx3Z38BAZ6ZOu31CdlnExMTo8DAQJWVlTltLysrU1xcnJeqco/c3Fy/3o87+62v9wL+g9+Jn/j7e+GL9XurpvrYrz985nuiP3ezGJ6azXQeLBaLFi1apAEDBji2ZWZmKiMjQy+++KKk6lNhSUlJGjVqVJ0nZOPiVVFRoaioKFmtVp/7XyoAwL08/Znv9dNqR48e1c6dOx33i4qKtHnzZkVHRyspKUl5eXnKzs5Wenq6MjIyNHXqVFVWVjquXgOk6lOmEyZMqHHaFABw8fH0Z77XR44KCwvVs2fPGtuzs7M1Z84cSdL06dP1zDPPqLS0VGlpaZo2bZoyMzPruVIAAHAp8Ho4AgAA8CU+PSEbAACgvhGOAAAATAhHAAAAJoQjXNRKSkrUo0cPtWnTRtdcc43eeustb5cEAPCg8vJypaenKy0tTe3atdPLL79c5z6YkI2L2r59+1RWVqa0tDSVlpaqY8eO+vrrrxUeHu7t0gAAHmCz2VRVVaWwsDBVVlaqXbt22rBhg5o0aeJyH15f5wjwpPj4eMXHx0uS4uLiFBMTo0OHDhGOAOAiFRgYqLCwMElSVVWVDMNQXceBOK0Gn7Z8+XL17dtXCQkJslgsWrx4cY02+fn5Sk5OVkhIiDIzM7Vu3boz9rVx40bZbDYlJiZ6uGoAwPlyx+d+eXm5UlNT1axZM40dO1YxMTF1qoFwBJ9WWVmp1NRU5efnn/Hx+fPnKy8vTxMmTNCmTZuUmpqq3r17a//+/U7tDh06pOHDh+ull16qj7IBAOfJHZ/7jRo10pYtW1RUVKS5c+fW+I7Wc2HOEfxGbd+916lTJ02fPl1S9XfvJSYmavTo0Y7v3quqqtINN9ygkSNH6s477/RG6QCA83C+n/tm9913n3r16qXBgwe7vF9GjuC3Tpw4oY0bNyorK8uxLSAgQFlZWVqzZo0kyTAM5eTkqFevXgQjAPBzrnzul5WV6ciRI5Ikq9Wq5cuXq1WrVnXaD+EIfuvAgQOy2WyKjY112h4bG6vS0lJJ0qpVqzR//nwtXrxYaWlpSktL07Zt27xRLgDgArnyuV9cXKzu3bsrNTVV3bt31+jRo9W+ffs67Yer1XBR69atm+x2u7fLAADUk4yMDG3evPmC+mDkCH4rJiZGgYGBNSbalZWVKS4uzktVAQA8pb4+9wlH8FtBQUHq2LGjCgoKHNvsdrsKCgrUuXNnL1YGAPCE+vrc57QafNrRo0e1c+dOx/2ioiJt3rxZ0dHRSkpKUl5enrKzs5Wenq6MjAxNnTpVlZWVGjFihBerBgCcL1/43OdSfvi0wsJC9ezZs8b27OxszZkzR5I0ffp0PfPMMyotLVVaWpqmTZumzMzMeq4UAOAOvvC5TzgCAAAwYc4RAACACeEIAADAhHAEAABgQjgCAAAwIRwBAACYEI4AAABMCEcAAAAml/QK2Xa7XXv37lVERIQsFou3ywEAAC4wDENHjhxRQkKCAgLcP85zSYejvXv3KjEx0dtlAACA81BSUqJmzZq5vd9LOhxFRERIqn5zIyMjvVwNAABwRUVFhRITEx3HcXe7pMPR6VNpkZGRhCMAAPyMp6bEMCEbAADAhHAEAABgQjgCAAAwIRwBAACYEI4AAABMCEcAAAAmhCMAAAATwhEAAIAJ4QgAAMCEcAQAAGBCOAIAADAhHAEAAJj4bDiy2Wx6/PHH1aJFC4WGhqply5b64x//KMMwHG0Mw9Af/vAHxcfHKzQ0VFlZWfrmm2+8WDUAAPB3PhuOJk+erJkzZ2r69On66quvNHnyZE2ZMkUvvviio82UKVM0bdo0zZo1S5999pnCw8PVu3dvHT9+3IuVAwAAf2YxzEMxPuTXv/61YmNj9fe//92xbdCgQQoNDdU///lPGYahhIQEPfTQQ3r44YclSVarVbGxsZozZ45uv/32c+6joqJCUVFRslqtioyM9NhrAQAA7uPp47fPjhx16dJFBQUF+vrrryVJW7Zs0cqVK9WnTx9JUlFRkUpLS5WVleV4TlRUlDIzM7VmzZoz9llVVaWKigqnGwAAgFkDbxdQm3HjxqmiokJXX321AgMDZbPZ9PTTT2vYsGGSpNLSUklSbGys0/NiY2Mdj/3cpEmT9OSTT3q2cAAA4Nd8duTozTff1Ouvv665c+dq06ZNevXVV/Xss8/q1VdfPe8+x48fL6vV6riVlJS4sWLfYbFYHLc5c+Z4pYYePXo4asjJyTljm/Lyck2ePFlDhgxRcnKyU921PQcAAE/z2ZGjsWPHaty4cY65Q+3bt1dxcbEmTZqk7OxsxcXFSZLKysoUHx/veF5ZWZnS0tLO2GdwcLCCg4M9Xjtcs2vXLo0bN87bZQAA4MRnR46OHTumgADn8gIDA2W32yVJLVq0UFxcnAoKChyPV1RU6LPPPlPnzp3rtVacv5CQEGVkZOi+++5T48aNvV0OAAC+G4769u2rp59+WkuWLNGuXbu0aNEiPf/887rlllskVZ86euCBBzRx4kS9++672rZtm4YPH66EhAQNGDDAu8V7yelTWWYjRoxwnKpKTk52bC8rK9Ojjz6qtLQ0RUREKCQkRCkpKcrNzdXu3btr9F1ZWamnnnpK1157rSIiItSwYUNdccUVSktL08iRI7V06VJJ0hNPPCGLxaJPP/3U8dxXX33V6ZTZrl27JElt27bVkSNH9Nlnnyk/P58rBgEAPsFnT6u9+OKLevzxx3Xfffdp//79SkhI0P/93//pD3/4g6PNI488osrKSv3mN79ReXm5unXrpqVLlyokJMSLlfu+NWvWqF+/fjpw4IDT9m+//VYzZszQ66+/rvfee0/du3d3PPbrX/9ahYWFTu1/+OEH/fDDD9qyZYuOHDmim266qU51NGzY8LxfAwAAnuKz4SgiIkJTp07V1KlTa21jsVj01FNP6amnnqq/wnzYvffeq1//+tcaO3asY9ttt92m9PR0SdVLHVRUVGjAgAGOYNS8eXPddtttCg0N1YIFC/TFF1/IarVq0KBB+uabbxQVFaWvvvrKEYwCAgI0fPhwXXXVVTpw4ICKioqcQtONN96oyy67TDNnztR3330nSUpPT9dtt93maBMdHe3hdwIAgPPns+EIdXc6gJjD0U033eR05de0adO0f/9+SVLjxo21adMmR1gZO3asWrRo4RgRevXVVzVmzBinFcdbtWqlV155xen0nc1m0/fffy+pen2qLl266P3333eEo7Zt2zoW6gQAwNcRji4xq1atcvx8+PBhNWnSpNa2q1ev1pgxY9S6dWs1adJEBw8e1FdffaWUlBR16NBBV111la655hplZWWpefPm9VE+AAAeRzi6xBw6dMjltj/88IOk6ivK3nzzTY0YMUK7d+/Wd9995xgVkqSgoCBNmjRJeXl5bq8XAID6Rji6xJjn+8THx5810CQmJjp+7tWrl4qKirRp0yZt3rxZO3fu1OrVq7VixQqdOHFCY8eOVb9+/ZSSkuLR+gEA8DTC0UWoQYMGOnXqlKTq9aLMunTpojfffFNS9cjQjTfeqGuuucapjWEYKigoUMuWLSVJx48fV1FRkVq3bq309HTHBG/DMNS4cWNZrVbZ7XZt2bLFEY7MV6L9vAYAAHwZ4egi1LRpUxUXF0uSnnvuOR08eFChoaHq0KGDcnJyNHHiRB04cECnTp1S165dNWTIEKWkpKiqqko7duxQYWGhysrK9Mknn6hFixYqLy9XmzZt1LZtW2VkZCghIUGhoaFauXKlrFarY7+NGjVyquG0JUuWaNy4cYqJiVFMTIxjgvjhw4f19NNPO9odPnzY8fOGDRsck7ijo6P16KOPeuKtAgCgBothGIa3i/CWiooKRUVFyWq1XlQLEObl5emFF16osT03N1fTp0/X6tWr1b9//xrrHP3cJ598oh49eqi0tNTpK1rOJCMjQ6tWrVKDBtV5+91331X//v1rtGvbtq0+//xzSdVfH9KiRYtz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yspybAsICFBWVpbWrFkjSTIMQzk5OerVqxfBCAD8nCuf+2VlZTpy5IgkyWq1avny5WrVqlWd9kM4gt86cOCAbDabYmNjnbbHxsaqtLRUkrRq1SrNnz9fixcvVlpamtLS0rRt2zZvlAsAuECufO4XFxere/fuSk1NVffu3TV69Gi1b9++TvvhajVc1Lp16ya73e7tMgAA9SQjI0ObN2++oD4YOYLfiomJUWBgYI2JdmVlZYqLi/NSVQAAT6mvz33CEfxWUFCQOnbsqIKCAsc2u92ugoICde7c2YuVAQA8ob4+9zmtBp929OhR7dy503G/qKhImzdvVnR0tJKSkpSXl6fs7Gylp6crIyNDU6dOVWVlpUaMGOHFqgEA58sXPve5lB8+rbCwUD179qyxPTs7W3PmzJEkTZ8+Xc8884xKS0uVlpamadOmKTMzs54rBQC4gy987hOOAAAATJhzBAAAYEI4AgAAMCEcAQAAmBCOAAAATAhHAAAAJoQjAAAAE8IRAACACeEIAADAhHAEAABgQjgC4JdycnI0YMCAC+qjsLBQFotF5eXlZ21XUFCg1q1by2aznbPPpUuXKi0tTXa7/YJqA+A9hCMAHpWTkyOLxSKLxaKgoCClpKToqaee0qlTpy6o37/85S+O71nytEceeUS///3vFRgYeM62N910kxo2bKjXX3+9HioD4AmEIwAed9NNN2nfvn365ptv9NBDD+mJJ57QM888c1592Ww22e12RUVFqVGjRu4t9AxWrlypb7/9VoMGDXL5OTk5OZo2bZoHqwLgSYQjAB4XHBysuLg4NW/eXPfee6+ysrL07rvvSpKqqqr08MMPq2nTpgoPD1dmZqYKCwsdz50zZ44aNWqkd999V23atFFwcLB2795d47RaVVWVxowZoyuuuEIhISHq1q2b1q9f71THv/71L1111VUKDQ1Vz549tWvXrnPW/sYbb+iGG25QSEiIY9uWLVvUs2dPRUREKDIyUh07dtSGDRscj/ft21cbNmzQt99+e35vGACvIhwBqHehoaE6ceKEJGnUqFFas2aN3njjDW3dulVDhgzRTTfdpG+++cbR/tixY5o8ebL+9re/6YsvvtAVV1xRo89HHnlEb7/9tl599VVt2rRJKSkp6t27tw4dOiRJKikp0cCBA9W3b19t3rxZ99xzj8aNG3fOWlesWKH09HSnbcOGDVOzZs20fv16bdy4UePGjVPDhg0djyclJSk2NlYrVqw4r/cHgHc18HYBAC4dhmGooKBAH374oUaPHq3du3dr9uzZ2r17txISEiRJDz/8sJYuXarZs2frT3/6kyTp5MmTmjFjhlJTU8/Yb2VlpWbOnKk5c+aoT58+kqSXX35Zy5Yt09///neNHTtWM2fOVMuWLfXcc89Jklq1aqVt27Zp8uTJZ625uLjYUdtpu3fv1tixY3X11VdLkq688soaz0tISFBxcXEd3h0AvoJwBMDj3n//fV122WU6efKk7Ha7hg4dqieeeEKFhYWy2Wy66qqrnNpXVVWpSZMmjvtBQUG65pprau3/22+/1cmTJ9W1a1fHtoYNGyojI0NfffWVJOmrr75SZmam0/M6d+58ztp//PFHp1NqkpSXl6d77rlH//jHP5SVlaUhQ4aoZcuWTm1CQ0N17Nixc/YPwPcQjgB4XM+ePTVz5kwFBQUpISFBDRpUf/QcPXpUgYGB2rhxY40rwS677DLHz6GhobJYLPVa82kxMTE6fPiw07YnnnhCQ4cO1ZIlS/TBBx9owoQJeuONN3TLLbc42hw6dEiXX355fZcLwA2YcwTA48LDw5WSkqKkpCRHMJKkDh06yGazaf/+/UpJSXG6xcXFudx/y5YtFRQUpFWrVjm2nTx5UuvXr1ebNm0kSa1bt9a6deucnrd27dpz9t2hQwd9+eWXNbZfddVVevDBB/XRRx9p4MCBmj17tuOx48eP69tvv1WHDh1cfg0AfAfhCIDXXHXVVRo2bJiGDx+uhQsXqqioSOvWrdOkSZO0ZMkSl/sJDw/Xvffeq7Fjx2rp0qX68ssvNXLkSB07dkx33323JOm3v/2tvvnmG40dO1Y7duzQ3LlzXVonqXfv3lq5cqXj/o8//qhRo0apsLBQxcXFWrVqldavX6/WrVs72qxdu1bBwcEunbYD4HsIRwC8avbs2Ro+fLgeeughtWrVSgMGDND69euVlJRUp37+/Oc/a9CgQbrzzjt17bXXaufOnfrwww/VuHFjSdVXkL399ttavHixUlNTNWvWLMeE77MZNmyYvvjiC+3YsUOSFBgYqIMHD2r48OG66qqrdOutt6pPnz568sknHc+ZN2+ehg0bprCwsDq9BgC+wWIYhuHtIgDAl40dO1YVFRX661//es62Bw4cUKtWrbRhwwa1aNGiHqoD4G6MHAHAOTz22GNq3ry5S9+XtmvXLs2YMYNgBPgxRo4AAABMGDkCAAAwIRwBAACYEI4AAABMCEcAAAAmhCMAAAATwhEAAIAJ4QgAAMCEcAQAAGBCOAIAADD5f8F14dm/m79KAAAAAElFTkSuQmCC", + "image/png": "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ewGVu190dLTj5/j4eKdA83Pm96hXr14qKirSpk2btHnzZu3cuVOrV6/WihUrdOLECY0dO1b9+vVTSkqKR+sHAHiHT4ejoKAgdezYUQUFBRowYICk6knUBQUFGjVq1Hn3m5ubq9zcXFVUVDidmrkY/eMf/9Cjjz4qqXpU6b333nM81rFjxzr1dfDgQaf7I0aMcLx/b7755nnVN2fOHMdke0kqKiqqcSl+bRo0aKBTp05J0hlHs7p06eKo64cfftCNN96oa665xqmNYRgqKChQy5YtJUnHjx9XUVGRWrdurfT0dKWnpzvaNW7cWFarVXa7XVu2bHGEo4YNGzr6c2VUDQDg27wejo4ePaqdO3c67hcVFWnz5s2Kjo5WUlKS8vLylJ2drfT0dGVkZGjq1KmqrKx0OqCidr///e+1fft2NW/eXAsWLHBcuSVJI0eOrFNfrVq1crp/8803q0+fPtq6dasWLFjglnrromnTpiouLpZUPYp18OBBhYaGqkOHDvrVr36lnJwcTZw4UQcOHNCpU6fUtWtXDRkyRCkpKaqqqnJcmVZWVqZPPvlELVq0UHl5udq0aaO2bdsqIyNDCQkJCg0N1cqVK2W1Wh37btSokVMdpy1ZskTjxo1TTEyMYmJiHF8NcvjwYT399NOOdocPH3b8vGHDBj388MOSqke7TodZAICXeGSadx188sknZ5yBbl775cUXXzSSkpKMoKAgIyMjw1i7dq1b9m21Wg1JhtVqdUt/vuDn6wbdfPPNZ3x/b7755jqvc3TixAmjffv2tf59me9/8skn51WvK+scnfbggw+esZbc3FxHm1WrVp11naOf17tv375zts3IyDBOnjzp2Mc777xzxnZt27Z1tCkqKnLpygvzGk0AgDPz9PHb6ytk9+jRw3Glmflm/iLRUaNGqbi4WFVVVfrss8+UmZnpvYL9zMKFC/XUU0+pZcuWCgoKUnJysiZMmKC33367zhPZGjZsqI8//lg5OTlq0qSJgoOD1a5dO7300kt64oknPPMCzuLpp5/W/fffr2bNmjlNijbr0qWLvvjiCz3++OPq2LGjIiMjFRgYqEaNGqljx44aNWqUli1bpl/+8peSpMaNG2v69Om644471KZNG0VHRyswMFCRkZFKT0/XH//4RxUUFKhBg58GXfv166fp06erdevWCgoKqpfXDgDwHIthXHpf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pqVLlyokJMSLlfu+NWvWqF+/fjpw4IDT9m+//VYzZszQ66+/rvfee0/du3d3PPbrX/9ahYWFTu1/+OEH/fDDD9qyZYuOHDmim266qU51NGzY8LxfAwAAnuKz4SgiIkJTp07V1KlTa21jsVj01FNP6amnnqq/wnzYvffeq1//+tcaO3asY9ttt92m9PR0SdVLHVRUVGjAgAGOYNS8eXPddtttCg0N1YIFC/TFF1/IarVq0KBB+uabbxQVFaWvvvrKEYwCAgI0fPhwXXXVVTpw4ICKioqcQtONN96oyy67TDNnztR3330nSUpPT9dtt93maBMdHe3hdwIAgPPns+EIdXc6gJjD0U033eR05de0adO0f/9+SVLjxo21adMmR1gZO3asWrRo4RgRevXVVzVmzBinFcdbtWqlV155xen0nc1m0/fffy+pen2qLl266P3333eEo7Zt2zoW6gQAwNcRji4xq1atcvx8+PBhNWnSpNa2q1ev1pgxY9S6dWs1adJEBw8e1FdffaWUlBR16NBBV111la655hplZWWpefPm9VE+AAAeRzi6xBw6dMjltj/88IOk6ivK3nzzTY0YMUK7d+/Wd9995xgVkqSgoCBNmjRJeXl5bq8XAID6Rji6xJjn+8THx5810CQmJjp+7tWrl4qKirRp0yZt3rxZO3fu1OrVq7VixQqdOHFCY8eOVb9+/ZSSkuLR+gEA8DTC0UWoQYMGOnXqlKTq9aLMunTpojfffFNS9cjQjTfeqGuuucapjWEYKigoUMuWLSVJx48fV1FRkVq3bq309HTHBG/DMNS4cWNZrVbZ7XZt2bLFEY7MV6L9vAYAAHwZ4egi1LRpUxUXF0uSnnvuOR08eFChoaHq0KGDcnJyNHHiRB04cECnTp1S165dNWTIEKWkpKiqqko7duxQYWGhysrK9Mknn6hFixYqLy9XmzZt1LZtW2VkZCghIUGhoaFauXKlrFarY7+NGjVyquG0JUuWaNy4cYqJiVFMTIxjgvjhw4f19NNPO9odPnzY8fOGDRsck7ijo6P16KOPeuKtAgCgBothGIa3i/CWiooKRUVFyWq1XlQLEObl5emFF16osT03N1fTp0/X6tWr1b9//xrrHP3cJ598oh49eqi0tNTpK1rOJCMjQ6tWrVKDBtV5+91331X//v1rtGvbtq0+//xzSdVfH9KiRYtz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yspybAsICFBWVpbWrFkjSTIMQzk5OerVqxfBCAD8nCuf+2VlZTpy5IgkyWq1avny5WrVqlWd9kM4gt86cOCAbDabYmNjnbbHxsaqtLRUkrRq1SrNnz9fixcvVlpamtLS0rRt2zZvlAsAuECufO4XFxere/fuSk1NVffu3TV69Gi1b9++TvvhajVc1Lp16ya73e7tMgAA9SQjI0ObN2++oD4YOYLfiomJUWBgYI2JdmVlZYqLi/NSVQAAT6mvz33CEfxWUFCQOnbsqIKCAsc2u92ugoICde7c2YuVAQA8ob4+9zmtBp929OhR7dy503G/qKhImzdvVnR0tJKSkpSXl6fs7Gylp6crIyNDU6dOVWVlpUaMGOHFqgEA58sXPve5lB8+rbCwUD179qyxPTs7W3PmzJEkTZ8+Xc8884xKS0uVlpamadOmKTMzs54rBQC4gy987hOOAAAATJhzBAAAYEI4AgAAMCEcAQAAmBCOAAAATAhHAAAAJoQjAAAAE8IRAACACeEIAADAhHAEAABgQjgC4JdycnI0YMCAC+qjsLBQFotF5eXlZ21XUFCg1q1by2aznbPPpUuXKi0tTXa7/YJqA+A9hCMAHpWTkyOLxSKLxaKgoCClpKToqaee0qlTpy6o37/85S+O71nytEceeUS///3vFRgYeM62N910kxo2bKjXX3+9HioD4AmEIwAed9NNN2nfvn365ptv9NBDD+mJJ57QM888c1592Ww22e12RUVFqVGjRu4t9AxWrlypb7/9VoMGDXL5OTk5OZo2bZoHqwLgSYQjAB4XHBysuLg4NW/eXPfee6+ysrL07rvvSpKqqqr08MMPq2nTpgoPD1dmZqYKCwsdz50zZ44aNWqkd999V23atFFwcLB2795d47RaVVWVxowZoyuuuEIhISHq1q2b1q9f71THv/71L1111VUKDQ1Vz549tWvXrnPW/sYbb+iGG25QSEiIY9uWLVvUs2dPRUREKDIyUh07dtSGDRscj/ft21cbNmzQt99+e35vGACvIhwBqHehoaE6ceKEJGnUqFFas2aN3njjDW3dulVDhgzRTTfdpG+++cbR/tixY5o8ebL+9re/6YsvvtAVV1xRo89HHnlEb7/9tl599VVt2rRJKSkp6t27tw4dOiRJKikp0cCBA9W3b19t3rxZ99xzj8aNG3fOWlesWKH09HSnbcOGDVOzZs20fv16bdy4UePGjVPDhg0djyclJSk2NlYrVqw4r/cHgHc18HYBAC4dhmGooKBAH374oUaPHq3du3dr9uzZ2r17txISEiRJDz/8sJYuXarZs2frT3/6kyTp5MmTmjFjhlJTU8/Yb2VlpWbOnKk5c+aoT58+kqSXX35Zy5Yt09///neNHTtWM2fOVMuWLfXcc89Jklq1aqVt27Zp8uTJZ625uLjYUdtpu3fv1tixY3X11VdLkq688soaz0tISFBxcXEd3h0AvoJwBMDj3n//fV122WU6efKk7Ha7hg4dqieeeEKFhYWy2Wy66qqrnNpXVVWpSZMmjvtBQUG65pprau3/22+/1cmTJ9W1a1fHtoYNGyojI0NfffWVJOmrr75SZmam0/M6d+58ztp//PFHp1NqkpSXl6d77rlH//jHP5SVlaUhQ4aoZcuWTm1CQ0N17Nixc/YPwPcQjgB4XM+ePTVz5kwFBQUpISFBDRpUf/QcPXpUgYGB2rhxY40rwS677DLHz6GhobJYLPVa82kxMTE6fPiw07YnnnhCQ4cO1ZIlS/TBBx9owoQJeuONN3TLLbc42hw6dEiXX355fZcLwA2YcwTA48LDw5WSkqKkpCRHMJKkDh06yGazaf/+/UpJSXG6xcXFudx/y5YtFRQUpFWrVjm2nTx5UuvXr1ebNm0kSa1bt9a6deucnrd27dpz9t2hQwd9+eWXNbZfddVVevDBB/XRRx9p4MCBmj17tuOx48eP69tvv1WHDh1cfg0AfAfhCIDXXHXVVRo2bJiGDx+uhQsXqqioSOvWrdOkSZO0ZMkSl/sJDw/Xvffeq7Fjx2rp0qX68ssvNXLkSB07dkx33323JOm3v/2tvvnmG40dO1Y7duzQ3LlzXVonqXfv3lq5cqXj/o8//qhRo0apsLBQxcXFWrVqldavX6/WrVs72qxdu1bBwcEunbYD4HsIRwC8avbs2Ro+fLgeeughtWrVSgMGDND69euVlJRUp37+/Oc/a9CgQbrzzjt17bXXaufOnfrwww/VuHFjSdVXkL399ttavHixUlNTNWvWLMeE77MZNmyYvvjiC+3YsUOSFBgYqIMHD2r48OG66qqrdOutt6pPnz568sknHc+ZN2+ehg0bprCwsDq9BgC+wWIYhuHtIgDAl40dO1YVFRX661//es62Bw4cUKtWrbRhwwa1aNGiHqoD4G6MHAHAOTz22GNq3ry5S9+XtmvXLs2YMYNgBPgxRo4AAABMGDkCAAAwIRwBAACYEI4AAABMCEcAAAAmhCMAAAATwhEAAIAJ4QgAAMCEcAQAAGBCOAIAADD5f8F14dm/m79KAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -1065,20 +1088,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:05 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:05 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n" + "\u001b[1m24:10:01T07:35:16 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", + "\u001b[1m24:10:01T07:35:16 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAG9CAYAAAAcFdw9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEXUlEQVR4nO3de1xUdf7H8fcwyk0BBRJEUfxJmbdERUjtoi2bum1mqF10V3TLfluoFWWrtWW5tq62FZWobbupu6tmWdrF1tYfSZpa3la7almIpIKZMtwSdeb8/mCZHEEZlGGGw+v5eMxD5pzvfM9nRh6c93zP95xjMQzDEAAAgAn5ebsAAAAATyHoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA02r0QaeoqEiJiYlKSEhQjx499NJLL3m7JDQAi8XifCxevNhrdQwaNMhZx/jx42tsU1RUpDlz5mj06NGKi4tzqf1crwEA1I9m3i7gYoWEhGjDhg0KDg5WWVmZevToodTUVEVERHi7NECStH//fk2bNs3bZQBAk9ToR3SsVquCg4MlSRUVFTIMQ9yQHb4mMDBQSUlJuueee9S6dWtvlwMATYbXg86GDRt04403KiYmRhaLRatXr67WJisrS3FxcQoMDFRycrK2bt3qsr6oqEi9evVS+/btNXXqVEVGRjZQ9b5r3bp1GjVqlDp06KCAgAC1aNFCV155pRYtWnTBQTAnJ0d33HGH+vTpo7Zt2yogIEDBwcGKj4/XhAkT9Omnn9apv8WLF7scxtm/f3+tr6k6VHSmCRMmOPuIi4tzWVdYWKiHH35YCQkJCgkJUWBgoOLj45Wenq4DBw5U67+srEwzZ85Unz59FBISoubNm6tNmzZKSEjQxIkTtXbtWknS448/LovFog8++MD52iVLltT4frp3766SkhJ9/PHHysrKUmhoaJ0+JwDARTC87N133zUeeeQR44033jAkGatWrXJZ/8orrxj+/v7Gyy+/bHz++efGxIkTjVatWhmFhYXV+iooKDAGDBhgFBQUNFD1vuf06dPGPffcY0g65+PWW281HA5Hnft+4IEHztuvv7+/sW7dOrf7W7Rokcvrc3Nza33Ntddee94aOnbs6Gy7efNmIzIy8pxtw8LCjA0bNrj0P2jQoFo/O8MwjBkzZpy33fneT8eOHZ1t0tLS3P68AAB15/U5OsOGDdOwYcPOuf6ZZ57RxIkTNWHCBEnSwoULtWbNGr388svV5j1ERUWpV69e2rhxo0aNGlWtr4qKClVUVDifOxwOHTt2TBEREdVGCRqrWbNmaf78+ZIqJ+zecsstio2N1VtvvaWvvvpKkrRixQpdeeWV+s1vflOnvps1a6arrrpK3bp1U+vWrRUYGKhjx47p3//+t/bu3auTJ09q0qRJ1UbczuXHH390eV5SUqLi4uLzviYtLU0pKSl69NFHnctSU1PVu3dvSVJoaKiKi4tVXFysm266SUePHpUkdejQQTfffLOCgoL05ptv6ssvv5TNZlNqaqp27typsLAw7d27Vzk5OZIkPz8/3X777ercubOOHTum/fv368MPP9SpU6dUXFysgQMH6g9/+IP+9re/OUduevfurdTUVJfPq6b3Y5wxolbVHwDAfYZhqKSkRDExMfLzq+XglLeT1pl01ohORUWFYbVaq43yjBs3zhg+fLhhGJWjOMXFxYZhGEZRUZHRvXt345NPPqmxf3e+hfPgwYMHDx48GscjPz+/1mzh9RGd8zl69KjsdruioqJclkdFRWnPnj2SpLy8PN11113OSciTJ09Wz549a+xv+vTpysjIcD632Wzq0KGD8vPzTTFvomq+U5XPPvtMsbGxzufp6en65z//KUkKCAjQkSNH6tT/+++/rylTpig/P/+87datW6ekpKQ69V1XYWFhzp/nz5+vsWPHuqwfP368Vq1a5VZfqampWrRokU6cOKGuXbvq2LFjkqS4uDhdccUVio+PV/fu3TV48OBqZ/PdcMMN+vDDDyVJY8aM0YIFC2rdXs+ePZ3zg9x9DQDgJ8XFxYqNjVVISEitbX066LgjKSlJu3btcqttQECAAgICqi0PDQ01RdA5+xBIfHy8y/tt37698+eKiopzfh41OXTokMaOHavy8vJa2zZr1qxBP8+goKBq2yspKXH79UVFRc7fgddee00TJkzQgQMHtH//fpcJ0v7+/po9e7ZLWLZarc6fmzdv7tb7PvMwqbuvAQBU5860E58OOpGRkbJarSosLHRZXlhYqOjo6AvuNysrS1lZWbLb7Rdbok85efKky/MjR464jOic+TkGBga6HXIk6e2333YJOU8//bTuuOMOhYWF6YsvvlD37t0v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ra+++kqStHv3bn344YcaNmyYJCk3N1cFBQVKSUlxviYsLEzJycnasmVLjX1WVFSouLjY5QEAAMyrmbcLOJdp06apuLhYl19+uaxWq+x2u5588kmNHTtWklRQUCBJioqKcnldVFSUc93ZZs+erSeeeMKzhQMAAJ/hsyM6r776qpYuXaply5Zp586dWrJkif785z9ryZIlF9zn9OnTZbPZnI/8/Px6rNg3WCwW52Px4sVeqWHQoEHOGsaPH19jm6KiIs2ZM0ejR49WXFycS93neg0AAHXlsyM6U6dO1bRp05xzbXr27Km8vDzNnj1baWlpio6OliQVFhaqbdu2ztcVFhYqISGhxj4DAgIUEBDg8dpRu/3792vatGneLgMAYHI+O6JTXl4uPz/X8qxWqxwOhySpU6dOio6OVnZ2tnN9cXGxPv74Y/Xv379Ba8WFCQwMVFJSku655x61bt3a2+UAAEzIZ4POjTfeqCeffFJr1qzR/v37tWrVKj3zzDO6+eabJVUeornvvvs0a9YsvfXWW/r00081btw4xcTEaMSIEd4t3guqDhedacKECc7DQXFxcc7lhYWFevjhh5WQkKCQkBAFBgYqPj5e6enpOnDgQLW+y8rKNHPmTPXp00chISFq3ry52rRpo4SEBE2cOFFr166VJD3++OOyWCz64IMPnK9dsmSJy2Gp/fv3S5K6d++ukpISffzxx8rKyuKsNwCAR/jsoasXXnhBjz76qO655x4dOXJEMTEx+t///V899thjzjYPPfSQysrKdNddd6moqEhXXXWV1q5dq8DAQC9W7tu2bNmi4cOH6+jRoy7Lv/nmG82fP19Lly7V22+/rauvvtq57pe//KVycnJc2n///ff6/vvvtXv3bpWUlGjo0KF1qqN58+YX/B4AAHCXzwadkJAQZWZmKjMz85xtLBaLZs6cqZkzZzZcYT7q7rvv1i9/+UtNnTrVuezWW29VYmKipMpT74uLizVixAhnyOnYsaNuvfVWBQUFaeXKlfr8889ls9k0cuRIff311woLC9OXX37pDDl+fn4aN26cLrvsMh09elS5ubkuAej6669Xy5YttWDBAn377beSpMTERN16663ONuHh4R7+JAAA+InPBh3UTVWYODPoDB061OUMpueff15HjhyRJLVu3Vo7d+50Bo+pU6eqU6dOzpGaJUuWaMqUKS5Xme7SpYtefvlll0Nkdrtd3333naTKax8NGDBA77zzjjPodO/e3XlBRwAAGhpBpwnZtGmT8+fjx48rIiLinG03b96sKVOmqGvXroqIiNAPP/ygL7/8UvHx8erdu7cuu+wyXXHFFUpJSVHHjh0bonwAAOqMoNOEHDt2zO2233//vaTKM6NeffVVTZgwQQcOHNC3337rHK2RJH9/f82ePVsZGRn1Xi8AABeLoNOEnDk/pm3btucNJ7Gxsc6fr7vuOuXm5mrnzp3atWuX9u3bp82bN2vjxo06efKkpk6dquHDhys+Pt6j9QMAUFcEHZNp1qyZTp8+LanyWkRnGjBggF599VVJlSM2119/va644gqXNoZhKDs7W507d5YknThxQrm5ueratasSExOdk5sNw1Dr1q1ls9nkcDi0e/duZ9A584yqs2sAAKAhEXRMpl27dsrLy5MkPf300/rhhx8UFBSk3r17a/z48Zo1a5aOHj2q06dPa+DAgRo9erTi4+NVUVGhvXv3KicnR4WFhVq/fr06deqkoqIidevWTd27d1dSUpJiYmIUFBSkDz/8UDabzbndVq1audRQZc2aNZo2bZoiIyMVGRnpnBx9/PhxPfnkk852x48fd/68fft25wTm8PBwPfzww574qAAATYDFMAzD20V4S11u895YZGRk6Nlnn622PD09XfPmzdPmzZt10003VbuOztnWr1+vQYMGqaCgwOUWGzVJSkrSpk2b1KxZZW5+6623dNNNN1Vr1717d3322WeSKm8B0alTp1rfT8eOHZ0XGQQAQKrb/ttnr4yMC/Pkk0/q3nvvVfv27WW1WqutHzBggD7//HM9+uij6tu3r0JDQ2W1WtWqVSv17dtXkyZN0rp163TNNddIqjwNfd68ebr99tvVrVs3hYeHy2q1KjQ0VImJifrDH/6g7OxsZ8iRpOHDh2vevHnq2rWr/P39G+y9AwBwNkZ0TDaiAwCA2TGiAwAAIIIOAAAwMYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLZ8OOgcPHtSvfvUrRUREKCgoSD179tT27dud6w3D0GOPPaa2bdsqKChIKSkp+vrrr71YMQAA8CU+G3SOHz+ugQMHqnnz5vrXv/6lL774Qk8//bRat27tbDN37lw9//zzWrhwoT7++GO1aNFCQ4YM0YkTJ7xYOQAA8BUWwzAMbxdRk2nTpmnTpk3auHFjjesNw1BMTIweeOABPfjgg5Ikm82mqKgoLV68WLfddlut2yguLlZYWJhsNptCQ0PrtX4AAOAZddl/++yIzltvvaXExESNHj1abdq0Ue/evfXSSy851+fm5qqgoEApKSnOZWFhYUpOTtaWLVtq7LOiokLFxcUuDwAAYF4+G3S+/fZbLViwQJdeeqnee+893X333ZoyZYqWLFkiSSooKJAkRUVFubwuKirKue5ss2fPVlhYmPMRGxvr2TcBAAC8ymeDjsPhUJ8+ffTHP/5RvXv31l133aWJEydq4cKFF9zn9OnTZbPZnI/8/Px6rBgAAPiaBgs6RUVFdWrftm1bdevWzWVZ165ddeDAAUlSdHS0JKmwsNClTWFhoXPd2QICAhQaGuryAAAA5uWRoDNnzhytWLHC+fyWW25RRESE2rVrp927d7vVx8CBA7V3716XZV999ZU6duwoSerUqZOio6OVnZ3tXF9cXKyPP/5Y/fv3r4d3AQAAGjuPBJ2FCxc657+sW7dO69at07/+9S8NGzZMU6dOdauP+++/Xx999JH++Mc/at++fVq2bJn+8pe/KD09XZJksVh03333adasWXrrrbf06aefaty4cYqJidGIESM88bYAAEAj08wTnRYUFDiDzjvvvKNbbrlF119/veLi4pScnOxWH/369dOqVas0ffp0zZw5U506dVJmZqbGjh3rbPPQQw+prKxMd911l4qKinTVVVdp7dq1CgwM9MTbAgAAjYxHrqMTExOjlStXasCAAerSpYtmzZql0aNHa+/everXr5/PnNbNdXQAAGh86rL/9siITmpqqsaMGaNLL71UP/zwg4YNGyZJ+s9//qP4+HhPbBIAAKAajwSdZ599VnFxccrPz9fcuXPVsmVLSdLhw4d1zz33eGKTAAAA1fjsLSAaAoeuAABofHziFhD/+Mc/dNVVVykmJkZ5eXmSpMzMTL355pue2iQAAIALjwSdBQsWKCMjQ8OGDVNRUZHsdrskqVWrVsrMzPTEJgEAAKrxSNB54YUX9NJLL+mRRx6R1Wp1Lk9MTNSnn37qiU0CAABU45Ggk5ubq969e1dbHhAQoLKyMk9sEgAAoBqPBJ1OnTpp165d1ZavXbtWXbt29cQmAQAAqvHI6eUZGRlKT0/XiRMnZBiGtm7dquXLl2v27Nn661//6olNAgAAVOORoHPnnXcqKChIv//971VeXq4xY8YoJiZGzz33nG677TZPbBIAAKAaj19Hp7y8XKWlpWrTpo0nN3NBuI4OYF4Oh3T0aOXPdrv00UdSUZEUHS0NHChVnScRHCxZLF4rE8AF8PotICTp9OnTysnJ0TfffKMxY8ZIkg4dOqTQ0FDnlZIBwBMcjp+CTG1KS6UWLTxbDwDv8UjQycvL09ChQ3XgwAFVVFTo5z//uUJCQjRnzhxVVFRo4cKFntgsAKApOnP4Tqp5mI6huybLI0Hn3nvvVWJionbv3q2IiAjn8ptvvlkTJ070xCaBRsNulzZulA4fltq2la6+2v3RB7jHz086eVLq2LHyc66JxSK1aycFBDRsbZ509v5eqr5/N93+3t3hO4bumiyPBJ2NGzdq8+bN8vf3d1keFxengwcPemKTgE+r2gGtWSM98ojrzrddO2nuXOmmm3xjJ2SWL8ebNp075EiSYUjffSd9+KE0aFCDleUx7O+Bmnkk6DgcDudtH8703XffKSQkxBObBHxWbTuggwelsWMrf/b2TujMWv1k19XaqLY6rMNqq426Wg5ZfaJOd5wv5FxIO/goPz85Ttn1w96jspSXKTLpfyRJZd8WuvySBgcFy8ezOTzEIxcMvP76613uaWWxWFRaWqoZM2boF7/4hSc2CZhCDd8PGpxFDo3XIh1QrHI0WMs1RjkarDx11G1apmCVVQ6H+DDDkFq1cq9t27YeLaXB+PlV/v68/HLNo20WS+Vj7dqGr82THA7J2txPbXq0Ucekn87ubfM/LdQy6qdH+Y/EnKbKI6eX5+fna+jQoTIMQ19//bUSExP19ddfKzIyUhs2bPCZU805vRwN5f33pZ/9zL12gwd7vp5zcvP4h1FSKktL3x3SKSuT3D258+RJqXlzz9bTUOx2KS6u8pBcTSwWqX17KTfXPPPCzvyVbalilShMkjRU72qdrm9Uo5Bwn9dPL4+NjdXu3bu1YsUK7d69W6Wlpbrjjjs0duxYBQUFeWKTgE8rPOzQJaqc+OInu67UR2qtIh1WtDZpoPOPccHhYMmLA+z2k3a5s/9znHKvXWNglh2+JG38wKGK747qkjOWlStYRtXvlCHl5wdr40aLKeYlSZUjWa+9Ji0f/Yae0xTn8rX6hfLVXvfpOY1cmqrgYC8WCa+q9xGdU6dO6fLLL9c777zj8/e1YkQHDcGwO2Rp5t7edMO7pbpmmPe+du7KzFHC/bUPKe165n232nmLYUjlpZWzqteulWbOlA4X/LTTbxstzZhROTfKr2UjmFntDjdH41qoVH9d1kK3394ANTUAu136bdQbevGHUZIMl/kYjv8GvN9GrNSCwlRThdqmzqsjOs2bN9eJEyfqu1ug0Sovl9yNLv37e7SUWpV/497M3PJvCzxcycWxGA61CK3cq43878NFgaS7//swyTENw3B/LNAs85IkaWOOXY/9cK/ODjmS5CdDDln0+x/u08acmzToZySdpsgjk5HT09M1Z84cnT592hPdA42Ln5+a6aQOqq0c52jikEX5ai9rsHcv6hLUKdqtdsGdTbSnNInyE37yk10T9LIcslT7XatcZtHYiLW6+mqvlOgR9pyNitV359yZ+clQB+XLnrOxQeuC7/DIHJ1t27YpOztb//73v9WzZ0+1OOvb0htvvOGJzQI+KThYKnl3k4J+ce7REj8ZitV30mbvXtSl8y19pQdqb9f9roGeL+ZiVJ2CtGSJdMcd1c8SqzpU9c9/ykyTNywyNFOP6XyjG5m6X1aNkEwyy6qt3BuFdLcdzMcjIzqtWrXSyJEjNWTIEMXExCgsLMzlATQlFosUVNQ4Lupi9Xdv5+duO68yDOmxx2o+Fb5q2bRplXNbTCA4WCp9t/bRjeAf8isvzW0SXQa5N7robjuYj0dGdBYtWuSJboHGqRFd1CU4MlhlhaX6zxNvqvPCh9TW8dOVzA/7xWhf2iwN/Eua/Jp55DtS/dq48dznWUuV/y/5/93pm+AUpMYUqOvTiX5X65jaq50Oyk/VQ61DFn2n9mp/jYmO16FOPHb3cgD/VV4uuXuhzIHePSRk8bOoRZsWuiprjOzP3qpd8zeq/JvDCu7cVj3vuVptG8NITpWmeGlkd4OymWYjW626V89ppUbJIYtL2Kk66+o+ZWolp1w1WR75Wta7d2/16dOn2qNv374aOHCg0tLStH79+jr1+ac//UkWi0X33Xefc9mJEyeUnp6uiIgItWzZUiNHjlRhYWE9vxugAfnQH2Orv1UJ9w3SgBduV8J9gxrH4aozNbWdvmFIffpU3jztXKfLWyxSbKzMNBs5OFj6R2mqTi5dKbWNcVlnxLRXycsrtdKeKr9GMAgJz/DIf/3QoUP17bffqkWLFho8eLAGDx6sli1b6ptvvlG/fv10+PBhpaSk6M0333Srv23btunFF1/UFVdc4bL8/vvv19tvv63XXntNH3zwgQ4dOqTU1FRPvCXgwgUHV57CXFoqLV1auSM6U0xM5XX77Xbx17ieNMWdfnm5FBZWefO0c10ezTCkZ57xqUB9sSyWyqsDBI5Jld+eL35a8e67sh7IVdgEQk5T55FbQEycOFEdOnTQo48+6rJ81qxZysvL00svvaQZM2ZozZo12r59+3n7Ki0tVZ8+fTR//nzNmjVLCQkJyszMlM1m0yWXXKJly5Zp1KhRkqQ9e/aoa9eu2rJli6688spa6+SCgfAKu71yXsjhw5WjCVdfbaodj0+oyz0gzBIw3X3PZnm/VQyjMuRJlZ9BVFTlz99++9P1kSIjzfWeUaf9t0eCTlhYmHbs2KH4+HiX5fv27VPfvn1ls9m0Z88e9evXTyUlJeftKy0tTeHh4Xr22Wc1aNAgZ9B5//339bOf/UzHjx9XqzMmenbs2FH33Xef7r///mp9VVRUqKKiwvm8uLhYsbGxBB3AbJpi0Dlzhy9Vvq9Nm6S8vMqd/5VXVv5rhvd6pqYa8Jo4r9/rKjAwUJs3b64WdDZv3qzAwEBJksPhcP58Lq+88op27typbdu2VVtXUFAgf39/l5AjSVFRUSooqPmqrbNnz9YTTzxRh3cCoFGqOlxYpaadvtVqrm/6VcdwzjRsmHdqAXyIR4LO5MmT9dvf/lY7duxQv379JFXOs/nrX/+qhx9+WJL03nvvKSEh4Zx95Ofn695779W6detqDUTumj59ujIyMpzPq0Z0AJgMO/2m4+xQe/bIlmSuQIs688ihK0launSp5s2bp71790qSunTposmTJ2vMmDGSpB9//FEWi+WcIWb16tW6+eabZT1j7oLdbpfFYpGfn5/ee+89paSk1OnQ1dmYowMAQOPj9Tk69aGkpER5eXkuyyZMmKDLL79cv/vd7xQbG6tLLrlEy5cv18iRlbfs27t3ry6//HImIwMAYGJen6MjSUVFRVq5cqW+/fZbPfjggwoPD9fOnTsVFRWldmefXluDkJAQ9ejRw2VZixYtFBER4Vx+xx13KCMjQ+Hh4QoNDdXkyZPVv39/t0IOAAAwP48EnU8++UQpKSkKCwvT/v37deeddyo8PFxvvPGGDhw4oL///e/1sp1nn31Wfn5+GjlypCoqKjRkyBDNnz+/XvoGAACNn0cOXaWkpKhPnz6aO3euQkJCtHv3bv3P//yPNm/erDFjxmj//v31vckLwqErAAAan7rsvz0yDX3btm363//932rL27Vrd85TvwEAAOqbR4JOQECAiouLqy3/6quvdMkll3hikwAAANV4JOgMHz5cM2fO1KlTpyRJFotFBw4c0O9+9zvnGVIAAACe5pGg8/TTT6u0tFSXXHKJfvzxR1177bWKj49XSEiInnzySU9sEgAAoBqPnHUVFhamdevWadOmTdq9e7fzxpwpKSme2BwAAECN6j3oOBwOLV68WG+88Yb2798vi8WiTp06KTo6WoZhyGKx1PcmAQAAalSvh64Mw9Dw4cN155136uDBg+rZs6e6d++uvLw8jR8/XjfffHN9bg4AAOC86nVEZ/HixdqwYYOys7M1ePBgl3Xvv/++RowYob///e8aN25cfW4WAACgRvU6orN8+XI9/PDD1UKOJF133XWaNm2ali5dWp+bBAAAOKd6DTqffPKJhg4des71w4YN0+7du+tzkwAAAOdUr0Hn2LFjioqKOuf6qKgoHT9+vD43CQAAcE71GnTsdruaNTv3tB+r1arTp0/X5yYBAADOqV4nIxuGofHjxysgIKDG9RUVFfW5OQAAgPOq16CTlpZWaxvOuAIAAA2lXoPOokWL6rM7AACAi+KRe10BAAD4AoIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLZ8NOrNnz1a/fv0UEhKiNm3aaMSIEdq7d69LmxMnTig9PV0RERFq2bKlRo4cqcLCQi9VDAAAfI3PBp0PPvhA6enp+uijj7Ru3TqdOnVK119/vcrKypxt7r//fr399tt67bXX9MEHH+jQoUNKTU31YtUAAMCXWAzDMLxdhDu+//57tWnTRh988IGuueYa2Ww2XXLJJVq2bJlGjRolSdqzZ4+6du2qLVu26Morr6y1z+LiYoWFhclmsyk0NNTTbwEAANSDuuy/fXZE52w2m02SFB4eLknasWOHTp06pZSUFGebyy+/XB06dNCWLVtq7KOiokLFxcUuDwAAYF6NIug4HA7dd999GjhwoHr06CFJKigokL+/v1q1auXSNioqSgUFBTX2M3v2bIWFhTkfsbGxni4dAAB4UaMIOunp6frss8/0yiuvXFQ/06dPl81mcz7y8/PrqUIAAOCLmnm7gNpMmjRJ77zzjjZs2KD27ds7l0dHR+vkyZMqKipyGdUpLCxUdHR0jX0FBAQoICDA0yUDAAAf4bMjOoZhaNKkSVq1apXef/99derUyWV937591bx5c2VnZzuX7d27VwcOHFD//v0bulwAAOCDfHZEJz09XcuWLdObb76pkJAQ57ybsLAwBQUFKSwsTHfccYcyMjIUHh6u0NBQTZ48Wf3793frjCsAAGB+Pnt6ucViqXH5okWLNH78eEmVFwx84IEHtHz5clVUVGjIkCGaP3/+OQ9dnY3TywEAaHzqsv/22aDTEAg6AAA0Pqa8jg4AAEBdEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpEXQAAIBpmSLoZGVlKS4uToGBgUpOTtbWrVu9XRIAAPABjT7orFixQhkZGZoxY4Z27typXr16aciQITpy5Ii3SwMAAF7W6IPOM888o4kTJ2rChAnq1q2bFi5cqODgYL388sveLg0AAHhZM28XcDFOnjypHTt2aPr06c5lfn5+SklJ0ZYtW6q1r6ioUEVFhfO5zWaTJBUXF3u+WAAAUC+q9tuGYdTatlEHnaNHj8putysqKspleVRUlPbs2VOt/ezZs/XEE09UWx4bG+uxGgEAgGeUlJQoLCzsvG0addCpq+nTpysjI8P53OFw6NixY4qIiJDFYvFiZTXr16+ftm3b5u0yfEJj/yx8sX5v1dRQ2/XUduqz3/roq7i4WLGxscrPz1doaGi91AXv8cW/Fd5yvs/CMAyVlJQoJiam1n4addCJjIyU1WpVYWGhy/LCwkJFR0dXax8QEKCAgACXZa1atfJkiRfFarXyh+u/Gvtn4Yv1e6umhtqup7ZTn/3WZ1+hoaE+9zuGuvPFvxXeUttnUdtITpVGPRnZ399fffv2VXZ2tnOZw+FQdna2+vfv78XK6kd6erq3S/AZjf2z8MX6vVVTQ23XU9upz3598fcC3sXvxE/q67OwGO7M5PFhK1asUFpaml588UUlJSUpMzNTr776qvbs2VNt7g4AmE1xcbHCwsJks9kYCQBq0KgPXUnSrbfequ+//16PPfaYCgoKlJCQoLVr1xJyADQJAQEBmjFjRrXD8gAqNfoRHQAAgHNp1HN0AAAAzoegAwAATIugAwAATIugAwAATIugAwAATIugAwAmVFRUpMTERCUkJKhHjx566aWXvF0S4BWcXg4AJmS321VRUaHg4GCVlZWpR48e2r59uyIiIrxdGtCgGNEBABOyWq0KDg6WJFVUVMgwDPG9Fk0RQQcAfNCGDRt04403KiYmRhaLRatXr67WJisrS3FxcQoMDFRycrK2bt3qsr6oqEi9evVS+/btNXXqVEVGRjZQ9YDvIOgAgA8qKytTr169lJWVVeP6FStWKCMjQzNmzNDOnTvVq1cvDRkyREeOHHG2adWqlXbv3q3c3FwtW7ZMhYWFDVU+4DOYowMAPs5isWjVqlUaMWKEc1lycrL69eunefPmSZIcDodiY2M1efJkTZs2rVof99xzj6677jqNGjWqocoGfAIjOgDQyJw8eVI7duxQSkqKc5mfn59SUlK0ZcsWSVJhYaFKSkokSTabTRs2bFCXLl28Ui/gTY3+7uUA0NQcPXpUdrtdUVFRLsujoqK0Z88eSVJeXp7uuusu5yTkyZMnq2fPnt4oF/Aqgg4AmFBSUpJ27drl7TIAr+PQFQA0MpGRkbJardUmFxcWFio6OtpLVQG+iaADAI2Mv7+/+vbtq+zsbOcyh8Oh7Oxs9e/f34uVAb6HQ1cA4INKS0u1b98+5/Pc3Fzt2rVL4eHh6tChgzIyMpSWlqbExEQlJSUpMzNTZWVlmjBhgherBnwPp5cDgA/KycnR4MGDqy1PS0vT4sWLJUnz5s3TU089pYKCAiUkJOj5559XcnJyA1cK+DaCDgAAMC3m6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6AAAANMi6ABolMaPH68RI0ZcVB85OTmyWCwqKio6b7vs7Gx17dpVdru91j7Xrl2rhIQEORyOi6oNQP0g6ADwqPHjx8tischiscjf31/x8fGaOXOmTp8+fVH9Pvfcc857PnnaQw89pN///veyWq21th06dKiaN2+upUuXNkBlAGpD0AHgcUOHDtXhw4f19ddf64EHHtDjjz+up5566oL6stvtcjgcCgsLU6tWreq30Bp8+OGH+uabbzRy5Ei3XzN+/Hg9//zzHqwKgLsIOgA8LiAgQNHR0erYsaPuvvtupaSk6K233pIkVVRU6MEHH1S7du3UokULJScnKycnx/naxYsXq1WrVnrrrbfUrVs3BQQE6MCBA9UOXVVUVGjKlClq06aNAgMDddVVV2nbtm0udbz77ru67LLLFBQUpMGDB2v//v211v7KK6/o5z//uQIDA53Ldu/ercGDByskJEShoaHq27evtm/f7lx/4403avv27frmm28u7AMDUG8IOgAaXFBQkE6ePClJmjRpkrZs2aJXXnlFn3zyiUaPHq2hQ4fq66+/drYvLy/XnDlz9Ne//lWff/652rRpU63Phx56SK+//rqWLFminTt3Kj4+XkOGDNGxY8ckSfn5+UpNTdWNN96oXbt26c4779S0adNqrXXjxo1KTEx0WTZ27Fi1b99e27Zt044dOzRt2jQ1b97cub5Dhw6KiorSxo0bL+jzAVB/mnm7AABNh2EYys7O1nvvvafJkyfrwIEDWrRokQ4cOKCYmBhJ0oMPPqi1a9dq0aJF+uMf/yhJOnXqlObPn69evXrV2G9ZWZkWLFigxYsXa9iwYZKkl156SevWrdPf/vY3TZ06VQsWLFDnzp319NNPS5K6dOmiTz/9VHPmzDlvzXl5ec7aqhw4cEBTp07V5ZdfLkm69NJLq70uJiZGeXl5dfh0AHgCQQeAx73zzjtq2bKlTp06JYfDoTFjxujxxx9XTk6O7Ha7LrvsMpf2FRUVioiIcD739/fXFVdccc7+v/nmG506dUoDBw50LmvevLmSkpL05ZdfSpK+/PJLJScnu7yuf//+tdb+448/uhy2kqSMjAzdeeed+sc//qGUlBSNHj1anTt3dmkTFBSk8vLyWvsH4FkEHQAeN3jwYC1YsED+/v6KiYlRs2aVf3pKS0tltVq1Y8eOamc0tWzZ0vlzUFCQLBZLg9ZcJTIyUsePH3dZ9vjjj2vMmDFas2aN/vWvf2nGjBl65ZVXdPPNNzvbHDt2TJdccklDlwvgLMzRAeBxLVq0UHx8vDp06OAMOZLUu3dv2e12HTlyRPHx8S6P6Ohot/vv3Lmz/P39tWnTJueyU6dOadu2berWrZskqWvXrtq6davL6z766KNa++7du7e++OKLassvu+wy3X///fr3v/+t1NRULVq0yLnuxIkT+uabb9S7d2+33wMAzyDoAPCayy67TGPHjtW4ceP0xhtvKDc3V1u3btXs2bO1Zs0at/tp0aKF7r77bk2dOlVr167VF198oYkTJ6q8vFx33HGHJOm3v/2tvv76a02dOlV79+7VsmXL3LoOz5AhQ/Thhx86n//444+aNGmScnJylJeXp02bNmnbtm3q2rWrs81HH32kgIAAtw6NAfAsgg4Ar1q0aJHGjRunBx54QF26dNGIESO0bds2dejQoU79/OlPf9LIkSP161//Wn369NG+ffv03nvvqXXr1pIqz4R6/fXXtXr1avXq1UsLFy50TnY+n7Fjx+rzzz/X3r17JUlWq1U//PCDxo0bp8suu0y33HKLhg0bpieeeML5muXLl2vs2LEKDg6u03sAUP8shmEY3i4CAHzZ1KlTVVxcrBdffLHWtkePHlWXLl20fft2derUqQGqA3A+jOgAQC0eeeQRdezY0a37V+3fv1/z588n5AA+ghEdAABgWozoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0/p/eeVX8KCme5kAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAG9CAYAAAAcFdw9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEXUlEQVR4nO3de1xUdf7H8fcwyk0BBRJEUfxJmbdERUjtoi2bum1mqF10V3TLfluoFWWrtWW5tq62FZWobbupu6tmWdrF1tYfSZpa3la7almIpIKZMtwSdeb8/mCZHEEZlGGGw+v5eMxD5pzvfM9nRh6c93zP95xjMQzDEAAAgAn5ebsAAAAATyHoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA02r0QaeoqEiJiYlKSEhQjx499NJLL3m7JDQAi8XifCxevNhrdQwaNMhZx/jx42tsU1RUpDlz5mj06NGKi4tzqf1crwEA1I9m3i7gYoWEhGjDhg0KDg5WWVmZevToodTUVEVERHi7NECStH//fk2bNs3bZQBAk9ToR3SsVquCg4MlSRUVFTIMQ9yQHb4mMDBQSUlJuueee9S6dWtvlwMATYbXg86GDRt04403KiYmRhaLRatXr67WJisrS3FxcQoMDFRycrK2bt3qsr6oqEi9evVS+/btNXXqVEVGRjZQ9b5r3bp1GjVqlDp06KCAgAC1aNFCV155pRYtWnTBQTAnJ0d33HGH+vTpo7Zt2yogIEDBwcGKj4/XhAkT9Omnn9apv8WLF7scxtm/f3+tr6k6VHSmCRMmOPuIi4tzWVdYWKiHH35YCQkJCgkJUWBgoOLj45Wenq4DBw5U67+srEwzZ85Unz59FBISoubNm6tNmzZKSEjQxIkTtXbtWknS448/LovFog8++MD52iVLltT4frp3766SkhJ9/PHHysrKUmhoaJ0+JwDARTC87N133zUeeeQR44033jAkGatWrXJZ/8orrxj+/v7Gyy+/bHz++efGxIkTjVatWhmFhYXV+iooKDAGDBhgFBQUNFD1vuf06dPGPffcY0g65+PWW281HA5Hnft+4IEHztuvv7+/sW7dOrf7W7Rokcvrc3Nza33Ntddee94aOnbs6Gy7efNmIzIy8pxtw8LCjA0bNrj0P2jQoFo/O8MwjBkzZpy33fneT8eOHZ1t0tLS3P68AAB15/U5OsOGDdOwYcPOuf6ZZ57RxIkTNWHCBEnSwoULtWbNGr388svV5j1ERUWpV69e2rhxo0aNGlWtr4qKClVUVDifOxwOHTt2TBEREdVGCRqrWbNmaf78+ZIqJ+zecsstio2N1VtvvaWvvvpKkrRixQpdeeWV+s1vflOnvps1a6arrrpK3bp1U+vWrRUYGKhjx47p3//+t/bu3auTJ09q0qRJ1UbczuXHH390eV5SUqLi4uLzviYtLU0pKSl69NFHnctSU1PVu3dvSVJoaKiKi4tVXFysm266SUePHpUkdejQQTfffLOCgoL05ptv6ssvv5TNZlNqaqp27typsLAw7d27Vzk5OZIkPz8/3X777ercubOOHTum/fv368MPP9SpU6dUXFysgQMH6g9/+IP+9re/OUduevfurdTUVJfPq6b3Y5wxolbVHwDAfYZhqKSkRDExMfLzq+XglLeT1pl01ohORUWFYbVaq43yjBs3zhg+fLhhGJWjOMXFxYZhGEZRUZHRvXt345NPPqmxf3e+hfPgwYMHDx48GscjPz+/1mzh9RGd8zl69KjsdruioqJclkdFRWnPnj2SpLy8PN11113OSciTJ09Wz549a+xv+vTpysjIcD632Wzq0KGD8vPzTTFvomq+U5XPPvtMsbGxzufp6en65z//KUkKCAjQkSNH6tT/+++/rylTpig/P/+87datW6ekpKQ69V1XYWFhzp/nz5+vsWPHuqwfP368Vq1a5VZfqampWrRokU6cOKGuXbvq2LFjkqS4uDhdccUVio+PV/fu3TV48OBqZ/PdcMMN+vDDDyVJY8aM0YIFC2rdXs+ePZ3zg9x9DQDgJ8XFxYqNjVVISEitbX066LgjKSlJu3btcqttQECAAgICqi0PDQ01RdA5+xBIfHy8y/tt37698+eKiopzfh41OXTokMaOHavy8vJa2zZr1qxBP8+goKBq2yspKXH79UVFRc7fgddee00TJkzQgQMHtH//fpcJ0v7+/po9e7ZLWLZarc6fmzdv7tb7PvMwqbuvAQBU5860E58OOpGRkbJarSosLHRZXlhYqOjo6AvuNysrS1lZWbLb7Rdbok85efKky/MjR464jOic+TkGBga6HXIk6e2333YJOU8//bTuuOMOhYWF6YsvvlD37t0v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ra+++kqStHv3bn344YcaNmyYJCk3N1cFBQVKSUlxviYsLEzJycnasmVLjX1WVFSouLjY5QEAAMyrmbcLOJdp06apuLhYl19+uaxWq+x2u5588kmNHTtWklRQUCBJioqKcnldVFSUc93ZZs+erSeeeMKzhQMAAJ/hsyM6r776qpYuXaply5Zp586dWrJkif785z9ryZIlF9zn9OnTZbPZnI/8/Px6rNg3WCwW52Px4sVeqWHQoEHOGsaPH19jm6KiIs2ZM0ejR49WXFycS93neg0AAHXlsyM6U6dO1bRp05xzbXr27Km8vDzNnj1baWlpio6OliQVFhaqbdu2ztcVFhYqISGhxj4DAgIUEBDg8dpRu/3792vatGneLgMAYHI+O6JTXl4uPz/X8qxWqxwOhySpU6dOio6OVnZ2tnN9cXGxPv74Y/Xv379Ba8WFCQwMVFJSku655x61bt3a2+UAAEzIZ4POjTfeqCeffFJr1qzR/v37tWrVKj3zzDO6+eabJVUeornvvvs0a9YsvfXWW/r00081btw4xcTEaMSIEd4t3guqDhedacKECc7DQXFxcc7lhYWFevjhh5WQkKCQkBAFBgYqPj5e6enpOnDgQLW+y8rKNHPmTPXp00chISFq3ry52rRpo4SEBE2cOFFr166VJD3++OOyWCz64IMPnK9dsmSJy2Gp/fv3S5K6d++ukpISffzxx8rKyuKsNwCAR/jsoasXXnhBjz76qO655x4dOXJEMTEx+t///V899thjzjYPPfSQysrKdNddd6moqEhXXXWV1q5dq8DAQC9W7tu2bNmi4cOH6+jRoy7Lv/nmG82fP19Lly7V22+/rauvvtq57pe//KVycnJc2n///ff6/vvvtXv3bpWUlGjo0KF1qqN58+YX/B4AAHCXzwadkJAQZWZmKjMz85xtLBaLZs6cqZkzZzZcYT7q7rvv1i9/+UtNnTrVuezWW29VYmKipMpT74uLizVixAhnyOnYsaNuvfVWBQUFaeXKlfr8889ls9k0cuRIff311woLC9OXX37pDDl+fn4aN26cLrvsMh09elS5ubkuAej6669Xy5YttWDBAn377beSpMTERN16663ONuHh4R7+JAAA+InPBh3UTVWYODPoDB061OUMpueff15HjhyRJLVu3Vo7d+50Bo+pU6eqU6dOzpGaJUuWaMqUKS5Xme7SpYtefvlll0Nkdrtd3333naTKax8NGDBA77zzjjPodO/e3XlBRwAAGhpBpwnZtGmT8+fjx48rIiLinG03b96sKVOmqGvXroqIiNAPP/ygL7/8UvHx8erdu7cuu+wyXXHFFUpJSVHHjh0bonwAAOqMoNOEHDt2zO2233//vaTKM6NeffVVTZgwQQcOHNC3337rHK2RJH9/f82ePVsZGRn1Xi8AABeLoNOEnDk/pm3btucNJ7Gxsc6fr7vuOuXm5mrnzp3atWuX9u3bp82bN2vjxo06efKkpk6dquHDhys+Pt6j9QMAUFcEHZNp1qyZTp8+LanyWkRnGjBggF599VVJlSM2119/va644gqXNoZhKDs7W507d5YknThxQrm5ueratasSExOdk5sNw1Dr1q1ls9nkcDi0e/duZ9A584yqs2sAAKAhEXRMpl27dsrLy5MkPf300/rhhx8UFBSk3r17a/z48Zo1a5aOHj2q06dPa+DAgRo9erTi4+NVUVGhvXv3KicnR4WFhVq/fr06deqkoqIidevWTd27d1dSUpJiYmIUFBSkDz/8UDabzbndVq1audRQZc2aNZo2bZoiIyMVGRnpnBx9/PhxPfnkk852x48fd/68fft25wTm8PBwPfzww574qAAATYDFMAzD20V4S11u895YZGRk6Nlnn622PD09XfPmzdPmzZt10003VbuOztnWr1+vQYMGqaCgwOUWGzVJSkrSpk2b1KxZZW5+6623dNNNN1Vr1717d3322WeSKm8B0alTp1rfT8eOHZ0XGQQAQKrb/ttnr4yMC/Pkk0/q3nvvVfv27WW1WqutHzBggD7//HM9+uij6tu3r0JDQ2W1WtWqVSv17dtXkyZN0rp163TNNddIqjwNfd68ebr99tvVrVs3hYeHy2q1KjQ0VImJifrDH/6g7OxsZ8iRpOHDh2vevHnq2rWr/P39G+y9AwBwNkZ0TDaiAwCA2TGiAwAAIIIOAAAwMYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLZ8OOgcPHtSvfvUrRUREKCgoSD179tT27dud6w3D0GOPPaa2bdsqKChIKSkp+vrrr71YMQAA8CU+G3SOHz+ugQMHqnnz5vrXv/6lL774Qk8//bRat27tbDN37lw9//zzWrhwoT7++GO1aNFCQ4YM0YkTJ7xYOQAA8BUWwzAMbxdRk2nTpmnTpk3auHFjjesNw1BMTIweeOABPfjgg5Ikm82mqKgoLV68WLfddlut2yguLlZYWJhsNptCQ0PrtX4AAOAZddl/++yIzltvvaXExESNHj1abdq0Ue/evfXSSy851+fm5qqgoEApKSnOZWFhYUpOTtaWLVtq7LOiokLFxcUuDwAAYF4+G3S+/fZbLViwQJdeeqnee+893X333ZoyZYqWLFkiSSooKJAkRUVFubwuKirKue5ss2fPVlhYmPMRGxvr2TcBAAC8ymeDjsPhUJ8+ffTHP/5RvXv31l133aWJEydq4cKFF9zn9OnTZbPZnI/8/Px6rBgAAPiaBgs6RUVFdWrftm1bdevWzWVZ165ddeDAAUlSdHS0JKmwsNClTWFhoXPd2QICAhQaGuryAAAA5uWRoDNnzhytWLHC+fyWW25RRESE2rVrp927d7vVx8CBA7V3716XZV999ZU6duwoSerUqZOio6OVnZ3tXF9cXKyPP/5Y/fv3r4d3AQAAGjuPBJ2FCxc657+sW7dO69at07/+9S8NGzZMU6dOdauP+++/Xx999JH++Mc/at++fVq2bJn+8pe/KD09XZJksVh03333adasWXrrrbf06aefaty4cYqJidGIESM88bYAAEAj08wTnRYUFDiDzjvvvKNbbrlF119/veLi4pScnOxWH/369dOqVas0ffp0zZw5U506dVJmZqbGjh3rbPPQQw+prKxMd911l4qKinTVVVdp7dq1CgwM9MTbAgAAjYxHrqMTExOjlStXasCAAerSpYtmzZql0aNHa+/everXr5/PnNbNdXQAAGh86rL/9siITmpqqsaMGaNLL71UP/zwg4YNGyZJ+s9//qP4+HhPbBIAAKAajwSdZ599VnFxccrPz9fcuXPVsmVLSdLhw4d1zz33eGKTAAAA1fjsLSAaAoeuAABofHziFhD/+Mc/dNVVVykmJkZ5eXmSpMzMTL355pue2iQAAIALjwSdBQsWKCMjQ8OGDVNRUZHsdrskqVWrVsrMzPTEJgEAAKrxSNB54YUX9NJLL+mRRx6R1Wp1Lk9MTNSnn37qiU0CAABU45Ggk5ubq969e1dbHhAQoLKyMk9s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u3dv2e12HTlyRPHx8S6P6Ohot/vv3Lmz/P39tWnTJueyU6dOadu2berWrZskqWvXrtq6davL6z766KNa++7du7e++OKLassvu+wy3X///fr3v/+t1NRULVq0yLnuxIkT+uabb9S7d2+33wMAzyDoAPCayy67TGPHjtW4ceP0xhtvKDc3V1u3btXs2bO1Zs0at/tp0aKF7r77bk2dOlVr167VF198oYkTJ6q8vFx33HGHJOm3v/2tvv76a02dOlV79+7VsmXL3LoOz5AhQ/Thhx86n//444+aNGmScnJylJeXp02bNmnbtm3q2rWrs81HH32kgIAAtw6NAfAsgg4Ar1q0aJHGjRunBx54QF26dNGIESO0bds2dejQoU79/OlPf9LIkSP161//Wn369NG+ffv03nvvqXXr1pIqz4R6/fXXtXr1avXq1UsLFy50TnY+n7Fjx+rzzz/X3r17JUlWq1U//PCDxo0bp8suu0y33HKLhg0bpieeeML5muXLl2vs2LEKDg6u03sAUP8shmEY3i4CAHzZ1KlTVVxcrBdffLHWtkePHlWXLl20fft2derUqQGqA3A+jOgAQC0eeeQRdezY0a37V+3fv1/z588n5AA+ghEdAABgWozoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0yLoAAAA0/p/eeVX8KCme5kAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -1090,8 +1113,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:06 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", - "\u001b[1m24:08:28T16:02:06 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:17 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:17 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -1182,7 +1205,7 @@ "\n", "The capability to store Fourier coeffficients (FCs) in MTH5 is now available. This will enable some different approaches to processing and data quality control (QC). The data QC tools are a work in progress. The following examples show how to add some FC levels to an MTH5, providing a starting point for processing or feature extraction from these data.\n", "\n", - "There are two main ways to add FCs to the MTH5.\n", + "There are currently two main ways to add FCs to the MTH5.\n", "\n", "1. Store on the fly while processing with Aurora\n", "2. Use a dedicated method to make FCs only." @@ -1219,7 +1242,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "file_size_before_adding_fcs: 1009916\n" + "file_size_before_adding_fcs: 1007455\n" ] } ], @@ -1244,12 +1267,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:07 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" + "\u001b[1m24:10:01T07:35:18 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" ] }, { @@ -1337,60 +1360,63 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:07 | INFO | line:276 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", - " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", - "0 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "1 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "2 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "3 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:674 |aurora.pipelines.transfer_function_kernel | memory_warning | Total memory: 62.74 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:678 |aurora.pipelines.transfer_function_kernel | memory_warning | Total Bytes of Raw Data: 0.000 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:683 |aurora.pipelines.transfer_function_kernel | memory_warning | Raw Data will use: 0.000 % of memory\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:889 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:07 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:08 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:09 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:10 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:18 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:278 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", + " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", + "0 39999.0 True 40000 001 test1 EMTF Synthetic False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "1 39999.0 True 40000 001 test1 EMTF Synthetic False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "2 39999.0 True 40000 001 test1 EMTF Synthetic False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "3 39999.0 True 40000 001 test1 EMTF Synthetic False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:654 |aurora.pipelines.transfer_function_kernel | memory_check | Total memory: 62.74 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:658 |aurora.pipelines.transfer_function_kernel | memory_check | Total Bytes of Raw Data: 0.000 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:661 |aurora.pipelines.transfer_function_kernel | memory_check | Raw Data will use: 0.000 % of memory\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:707 |aurora.pipelines.transfer_function_kernel | mth5_has_fcs | Fourier coefficients not detected for survey: EMTF Synthetic, station: test1, run: 001-- Fourier coefficients will be computed\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:248 |aurora.pipelines.transfer_function_kernel | check_if_fcs_already_exist | FC levels not present\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:445 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:899 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:18 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:19 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", + "\u001b[1m24:10:01T07:35:20 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -1413,13 +1439,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "file_size_after_adding_fcs: 3722944\n" + "file_size_after_adding_fcs_station_1: 3716514\n" ] } ], "source": [ - "file_size_after_adding_fcs = mth5_path.stat().st_size\n", - "print(f\"file_size_after_adding_fcs: {file_size_after_adding_fcs}\")" + "file_size_after_adding_fcs_station_1 = mth5_path.stat().st_size\n", + "print(f\"file_size_after_adding_fcs_station_1: {file_size_after_adding_fcs_station_1}\")" ] }, { @@ -1431,12 +1457,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:11 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" + "\u001b[1m24:10:01T07:35:21 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" ] } ], @@ -1468,60 +1494,63 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:11 | INFO | line:276 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", - " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", - "0 39999.0 True 40000 001 test2 EMTF Synthetic False False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "1 39999.0 True 40000 001 test2 EMTF Synthetic False False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "2 39999.0 True 40000 001 test2 EMTF Synthetic False False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "3 39999.0 True 40000 001 test2 EMTF Synthetic False False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:417 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:674 |aurora.pipelines.transfer_function_kernel | memory_warning | Total memory: 62.74 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:678 |aurora.pipelines.transfer_function_kernel | memory_warning | Total Bytes of Raw Data: 0.000 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:683 |aurora.pipelines.transfer_function_kernel | memory_warning | Raw Data will use: 0.000 % of memory\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:11 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:12 | INFO | line:889 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:12 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:12 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:12 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:12 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", - "\u001b[1m24:08:28T16:02:13 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:14 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:15 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:21 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:278 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", + " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", + "0 39999.0 True 40000 001 test2 EMTF Synthetic False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "1 39999.0 True 40000 001 test2 EMTF Synthetic False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "2 39999.0 True 40000 001 test2 EMTF Synthetic False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "3 39999.0 True 40000 001 test2 EMTF Synthetic False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:411 |aurora.pipelines.transfer_function_kernel | validate_processing | No RR station specified, switching RME_RR to RME\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:654 |aurora.pipelines.transfer_function_kernel | memory_check | Total memory: 62.74 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:658 |aurora.pipelines.transfer_function_kernel | memory_check | Total Bytes of Raw Data: 0.000 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:661 |aurora.pipelines.transfer_function_kernel | memory_check | Raw Data will use: 0.000 % of memory\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:707 |aurora.pipelines.transfer_function_kernel | mth5_has_fcs | Fourier coefficients not detected for survey: EMTF Synthetic, station: test2, run: 001-- Fourier coefficients will be computed\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:248 |aurora.pipelines.transfer_function_kernel | check_if_fcs_already_exist | FC levels not present\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:21 | INFO | line:445 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:899 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:23 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:364 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Saving FC level\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:24 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -1554,12 +1583,30 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:16 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:250 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" + "file_size_after_adding_fcs_station_2: 6429530\n" + ] + } + ], + "source": [ + "file_size_after_adding_fcs_station_2 = mth5_path.stat().st_size\n", + "print(f\"file_size_after_adding_fcs_station_2: {file_size_after_adding_fcs_station_2}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m24:10:01T07:35:25 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column fc, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column remote, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column run_dataarray, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column stft, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:262 |mtpy.processing.kernel_dataset | _add_columns | KernelDataset DataFrame needs column mth5_obj, adding and setting dtype to .\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:108 |aurora.config.config_creator | determine_band_specification_style | Bands not defined; setting to EMTF BANDS_DEFAULT_FILE\u001b[0m\n" ] } ], @@ -1578,72 +1625,263 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:16 | INFO | line:276 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", - " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", - "0 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "1 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "2 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "3 39999.0 True 40000 001 test1 EMTF Synthetic False False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\n", - "4 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "5 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "6 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "7 39999.0 True 40000 001 test2 EMTF Synthetic False True None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:674 |aurora.pipelines.transfer_function_kernel | memory_warning | Total memory: 62.74 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:678 |aurora.pipelines.transfer_function_kernel | memory_warning | Total Bytes of Raw Data: 0.001 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:683 |aurora.pipelines.transfer_function_kernel | memory_warning | Raw Data will use: 0.001 % of memory\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:16 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:17 | INFO | line:889 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:17 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:17 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:18 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:19 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", - "\u001b[1m24:08:28T16:02:19 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:19 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:20 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:21 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", - "\u001b[1m24:08:28T16:02:22 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:25 | INFO | line:710 |aurora.pipelines.transfer_function_kernel | mth5_has_fcs | FCs detected -- checking against processing requirements.\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:710 |aurora.pipelines.transfer_function_kernel | mth5_has_fcs | FCs detected -- checking against processing requirements.\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:248 |aurora.pipelines.transfer_function_kernel | check_if_fcs_already_exist | All fc_levels already existSkip time series processing is OK\u001b[0m\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
channel_scale_factorsdurationendhas_datainput_channelsmth5_pathn_samplesoutput_channelsrunsample_ratestartstationsurveyrun_hdf5_referencestation_hdf5_referencefcremoterun_dataarraystftmth5_obj
0{'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '...39999.01980-01-01 11:06:39+00:00True[hx, hy]/home/kkappler/software/irismt/mth5/mth5/data/...40000[ex, ey, hz]0011.01980-01-01 00:00:00+00:00test1EMTF Synthetic<HDF5 object reference><HDF5 object reference>TrueFalseNoneNoneNone
1{'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '...39999.01980-01-01 11:06:39+00:00True[hx, hy]/home/kkappler/software/irismt/mth5/mth5/data/...40000[ex, ey, hz]0011.01980-01-01 00:00:00+00:00test2EMTF Synthetic<HDF5 object reference><HDF5 object reference>TrueTrueNoneNoneNone
\n", + "
" + ], + "text/plain": [ + " channel_scale_factors duration \\\n", + "0 {'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '... 39999.0 \n", + "1 {'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '... 39999.0 \n", + "\n", + " end has_data input_channels \\\n", + "0 1980-01-01 11:06:39+00:00 True [hx, hy] \n", + "1 1980-01-01 11:06:39+00:00 True [hx, hy] \n", + "\n", + " mth5_path n_samples \\\n", + "0 /home/kkappler/software/irismt/mth5/mth5/data/... 40000 \n", + "1 /home/kkappler/software/irismt/mth5/mth5/data/... 40000 \n", + "\n", + " output_channels run sample_rate start station \\\n", + "0 [ex, ey, hz] 001 1.0 1980-01-01 00:00:00+00:00 test1 \n", + "1 [ex, ey, hz] 001 1.0 1980-01-01 00:00:00+00:00 test2 \n", + "\n", + " survey run_hdf5_reference station_hdf5_reference fc \\\n", + "0 EMTF Synthetic True \n", + "1 EMTF Synthetic True \n", + "\n", + " remote run_dataarray stft mth5_obj \n", + "0 False None None None \n", + "1 True None None None " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "from aurora.pipelines.transfer_function_kernel import TransferFunctionKernel\n", + "tfk = TransferFunctionKernel(dataset=kernel_dataset, config=config)\n", + "tfk.make_processing_summary()\n", + "tfk.check_if_fcs_already_exist()\n", + "tfk.dataset_df" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m24:10:01T07:35:25 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:278 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", + " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", + "0 39999.0 True 40000 001 test1 EMTF Synthetic True False None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "1 39999.0 True 40000 001 test1 EMTF Synthetic True False None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "2 39999.0 True 40000 001 test1 EMTF Synthetic True False None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "3 39999.0 True 40000 001 test1 EMTF Synthetic True False None None 3 4.0 0.015625 8192.0 128 624.0 6.0\n", + "4 39999.0 True 40000 001 test2 EMTF Synthetic True True None None 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "5 39999.0 True 40000 001 test2 EMTF Synthetic True True None None 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "6 39999.0 True 40000 001 test2 EMTF Synthetic True True None None 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "7 39999.0 True 40000 001 test2 EMTF Synthetic True True None None 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:654 |aurora.pipelines.transfer_function_kernel | memory_check | Total memory: 62.74 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:658 |aurora.pipelines.transfer_function_kernel | memory_check | Total Bytes of Raw Data: 0.001 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:661 |aurora.pipelines.transfer_function_kernel | memory_check | Raw Data will use: 0.001 % of memory\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | validate_save_fc_settings | FC Layer already exists -- forcing processing config save_fcs=False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:445 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:890 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | row channel_scale_factors {'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '...\n", + "duration 39999.0\n", + "end 1980-01-01 11:06:39+00:00\n", + "has_data True\n", + "input_channels [hx, hy]\n", + "mth5_path /home/kkappler/software/irismt/mth5/mth5/data/...\n", + "n_samples 40000\n", + "output_channels [ex, ey, hz]\n", + "run 001\n", + "sample_rate 1.0\n", + "start 1980-01-01 00:00:00+00:00\n", + "station test1\n", + "survey EMTF Synthetic\n", + "run_hdf5_reference \n", + "station_hdf5_reference \n", + "fc True\n", + "remote False\n", + "run_dataarray None\n", + "stft None\n", + "mth5_obj /:\\n====================\\n |- Group: Survey...\n", + "Name: 0, dtype: object already has fcs prescribed by processing config-- skipping time series initialisation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:25 | INFO | line:890 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | row channel_scale_factors {'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '...\n", + "duration 39999.0\n", + "end 1980-01-01 11:06:39+00:00\n", + "has_data True\n", + "input_channels [hx, hy]\n", + "mth5_path /home/kkappler/software/irismt/mth5/mth5/data/...\n", + "n_samples 40000\n", + "output_channels [ex, ey, hz]\n", + "run 001\n", + "sample_rate 1.0\n", + "start 1980-01-01 00:00:00+00:00\n", + "station test2\n", + "survey EMTF Synthetic\n", + "run_hdf5_reference \n", + "station_hdf5_reference \n", + "fc True\n", + "remote True\n", + "run_dataarray None\n", + "stft None\n", + "mth5_obj /:\\n====================\\n |- Group: Survey...\n", + "Name: 1, dtype: object already has fcs prescribed by processing config-- skipping time series initialisation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:899 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test1, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test2, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:26 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test1, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test2, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test1, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test2, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:27 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:28 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:28 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:28 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -1666,7 +1904,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -1684,15 +1922,15 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:23 | INFO | line:679 |mth5.mth5 | _initialize_file | Initialized MTH5 0.1.0 file /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5 in mode w\u001b[0m\n", - "\u001b[1m24:08:28T16:02:25 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:28 | INFO | line:679 |mth5.mth5 | _initialize_file | Initialized MTH5 0.1.0 file /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5 in mode w\u001b[0m\n", + "\u001b[1m24:10:01T07:35:30 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] }, { @@ -1701,7 +1939,7 @@ "PosixPath('/home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5')" ] }, - "execution_count": 21, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1725,7 +1963,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -1743,7 +1981,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1907,7 +2145,7 @@ " }]" ] }, - "execution_count": 23, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1925,32 +2163,32 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:25 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", + "\u001b[1m24:10:01T07:35:30 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", "\n", "\n", "survey: EMTF Synthetic, station: test1, sample_rate 1.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:25 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test1, sample_rate 1.0, i_run_row 0\u001b[0m\n", - "\u001b[33m\u001b[1m24:08:28T16:02:27 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 157 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", - "\u001b[1m24:08:28T16:02:27 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 4 invalid, TS of 157 samples too short\u001b[0m\n", - "\u001b[33m\u001b[1m24:08:28T16:02:27 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 40 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", - "\u001b[1m24:08:28T16:02:27 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 5 invalid, TS of 40 samples too short\u001b[0m\n", - "\u001b[1m24:08:28T16:02:27 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", + "\u001b[1m24:10:01T07:35:30 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test1, sample_rate 1.0, i_run_row 0\u001b[0m\n", + "\u001b[33m\u001b[1m24:10:01T07:35:31 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 157 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", + "\u001b[1m24:10:01T07:35:31 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 4 invalid, TS of 157 samples too short\u001b[0m\n", + "\u001b[33m\u001b[1m24:10:01T07:35:31 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 40 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", + "\u001b[1m24:10:01T07:35:31 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 5 invalid, TS of 40 samples too short\u001b[0m\n", + "\u001b[1m24:10:01T07:35:31 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", "\n", "\n", "survey: EMTF Synthetic, station: test2, sample_rate 1.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:27 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test2, sample_rate 1.0, i_run_row 0\u001b[0m\n", - "\u001b[33m\u001b[1m24:08:28T16:02:29 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 157 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", - "\u001b[1m24:08:28T16:02:29 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 4 invalid, TS of 157 samples too short\u001b[0m\n", - "\u001b[33m\u001b[1m24:08:28T16:02:29 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 40 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", - "\u001b[1m24:08:28T16:02:29 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 5 invalid, TS of 40 samples too short\u001b[0m\n", - "\u001b[1m24:08:28T16:02:29 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:31 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test2, sample_rate 1.0, i_run_row 0\u001b[0m\n", + "\u001b[33m\u001b[1m24:10:01T07:35:32 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 157 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", + "\u001b[1m24:10:01T07:35:32 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 4 invalid, TS of 157 samples too short\u001b[0m\n", + "\u001b[33m\u001b[1m24:10:01T07:35:32 | WARNING | line:292 |mt_metadata.transfer_functions.processing.fourier_coefficients.decimation | is_valid_for_time_series_length | 40 not enough samples for minimum of 2 stft windows of length 128 and overlap 32\u001b[0m\n", + "\u001b[1m24:10:01T07:35:32 | INFO | line:241 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | Decimation Level 5 invalid, TS of 40 samples too short\u001b[0m\n", + "\u001b[1m24:10:01T07:35:32 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -1967,7 +2205,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -2141,11 +2379,13 @@ " ----------------------------\n", " --> Dataset: channel_summary\n", " ..............................\n", + " --> Dataset: fc_summary\n", + " .........................\n", " --> Dataset: tf_summary\n", " ........................." ] }, - "execution_count": 25, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2158,14 +2398,14 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:29 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:32 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -2183,15 +2423,15 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:29 | INFO | line:679 |mth5.mth5 | _initialize_file | Initialized MTH5 0.1.0 file /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5 in mode w\u001b[0m\n", - "\u001b[1m24:08:28T16:02:32 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:33 | INFO | line:679 |mth5.mth5 | _initialize_file | Initialized MTH5 0.1.0 file /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5 in mode w\u001b[0m\n", + "\u001b[1m24:10:01T07:35:34 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] }, { @@ -2200,7 +2440,7 @@ "PosixPath('/home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5')" ] }, - "execution_count": 27, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -2212,24 +2452,24 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:32 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", + "\u001b[1m24:10:01T07:35:34 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", "\n", "\n", "survey: EMTF Synthetic, station: test1, sample_rate 1.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:32 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test1, sample_rate 1.0, i_run_row 0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:34 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", + "\u001b[1m24:10:01T07:35:34 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test1, sample_rate 1.0, i_run_row 0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:36 | INFO | line:190 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | \n", "\n", "\n", "survey: EMTF Synthetic, station: test2, sample_rate 1.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:34 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test2, sample_rate 1.0, i_run_row 0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:35 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:36 | INFO | line:207 |aurora.pipelines.fourier_coefficients | add_fcs_to_mth5 | survey: EMTF Synthetic, station: test2, sample_rate 1.0, i_run_row 0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -2246,18 +2486,18 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:35 | INFO | line:308 |aurora.pipelines.fourier_coefficients | read_back_fcs | survey: EMTF Synthetic, station: test1, sample_rate 1.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:35 | INFO | line:311 |aurora.pipelines.fourier_coefficients | read_back_fcs | FC Groups: ['001']\u001b[0m\n", - "\u001b[1m24:08:28T16:02:35 | INFO | line:308 |aurora.pipelines.fourier_coefficients | read_back_fcs | survey: EMTF Synthetic, station: test2, sample_rate 1.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:35 | INFO | line:311 |aurora.pipelines.fourier_coefficients | read_back_fcs | FC Groups: ['001']\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:37 | INFO | line:308 |aurora.pipelines.fourier_coefficients | read_back_fcs | survey: EMTF Synthetic, station: test1, sample_rate 1.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:311 |aurora.pipelines.fourier_coefficients | read_back_fcs | FC Groups: ['001']\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:308 |aurora.pipelines.fourier_coefficients | read_back_fcs | survey: EMTF Synthetic, station: test2, sample_rate 1.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:311 |aurora.pipelines.fourier_coefficients | read_back_fcs | FC Groups: ['001']\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -2275,72 +2515,113 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m24:08:28T16:02:36 | INFO | line:276 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", - " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", - "0 39999.0 True 40000 001 test1 EMTF Synthetic False False None HDF5 file is closed and cannot be accessed. 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "1 39999.0 True 40000 001 test1 EMTF Synthetic False False None HDF5 file is closed and cannot be accessed. 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "2 39999.0 True 40000 001 test1 EMTF Synthetic False False None HDF5 file is closed and cannot be accessed. 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "3 39999.0 True 40000 001 test1 EMTF Synthetic False False None HDF5 file is closed and cannot be accessed. 3 4.0 0.015625 8192.0 128 624.0 6.0\n", - "4 39999.0 True 40000 001 test2 EMTF Synthetic False True None HDF5 file is closed and cannot be accessed. 0 1.0 1.000000 128.0 128 39999.0 416.0\n", - "5 39999.0 True 40000 001 test2 EMTF Synthetic False True None HDF5 file is closed and cannot be accessed. 1 4.0 0.250000 512.0 128 9999.0 103.0\n", - "6 39999.0 True 40000 001 test2 EMTF Synthetic False True None HDF5 file is closed and cannot be accessed. 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", - "7 39999.0 True 40000 001 test2 EMTF Synthetic False True None HDF5 file is closed and cannot be accessed. 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:674 |aurora.pipelines.transfer_function_kernel | memory_warning | Total memory: 62.74 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:678 |aurora.pipelines.transfer_function_kernel | memory_warning | Total Bytes of Raw Data: 0.001 GB\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:683 |aurora.pipelines.transfer_function_kernel | memory_warning | Raw Data will use: 0.001 % of memory\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:36 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", - "\u001b[1m24:08:28T16:02:37 | INFO | line:889 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:37 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:37 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:37 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:37 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:37 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", - "\u001b[1m24:08:28T16:02:38 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:123 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:140 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:354 |aurora.pipelines.process_mth5 | save_fourier_coefficients | Skip saving FCs. dec_level_config.save_fc = False\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:42 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", - "\u001b[1m24:08:28T16:02:42 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", - "\u001b[1m24:08:28T16:02:42 | INFO | line:761 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" + "\u001b[1m24:10:01T07:35:37 | INFO | line:277 |aurora.pipelines.transfer_function_kernel | show_processing_summary | Processing Summary Dataframe:\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:278 |aurora.pipelines.transfer_function_kernel | show_processing_summary | \n", + " duration has_data n_samples run station survey run_hdf5_reference station_hdf5_reference fc remote stft mth5_obj dec_level dec_factor sample_rate window_duration num_samples_window num_samples num_stft_windows\n", + "0 39999.0 True 40000 001 test1 EMTF Synthetic True False None HDF5 file is closed and cannot be accessed. 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "1 39999.0 True 40000 001 test1 EMTF Synthetic True False None HDF5 file is closed and cannot be accessed. 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "2 39999.0 True 40000 001 test1 EMTF Synthetic True False None HDF5 file is closed and cannot be accessed. 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "3 39999.0 True 40000 001 test1 EMTF Synthetic True False None HDF5 file is closed and cannot be accessed. 3 4.0 0.015625 8192.0 128 624.0 6.0\n", + "4 39999.0 True 40000 001 test2 EMTF Synthetic True True None HDF5 file is closed and cannot be accessed. 0 1.0 1.000000 128.0 128 39999.0 416.0\n", + "5 39999.0 True 40000 001 test2 EMTF Synthetic True True None HDF5 file is closed and cannot be accessed. 1 4.0 0.250000 512.0 128 9999.0 103.0\n", + "6 39999.0 True 40000 001 test2 EMTF Synthetic True True None HDF5 file is closed and cannot be accessed. 2 4.0 0.062500 2048.0 128 2499.0 25.0\n", + "7 39999.0 True 40000 001 test2 EMTF Synthetic True True None HDF5 file is closed and cannot be accessed. 3 4.0 0.015625 8192.0 128 624.0 6.0\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:654 |aurora.pipelines.transfer_function_kernel | memory_check | Total memory: 62.74 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:658 |aurora.pipelines.transfer_function_kernel | memory_check | Total Bytes of Raw Data: 0.001 GB\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:661 |aurora.pipelines.transfer_function_kernel | memory_check | Raw Data will use: 0.001 % of memory\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:456 |aurora.pipelines.transfer_function_kernel | validate_save_fc_settings | FC Layer already exists -- forcing processing config save_fcs=False\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:517 |aurora.pipelines.process_mth5 | process_mth5_legacy | Processing config indicates 4 decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:445 |aurora.pipelines.transfer_function_kernel | valid_decimations | After validation there are 4 valid decimation levels\u001b[0m\n", + "\u001b[1m24:10:01T07:35:37 | INFO | line:890 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | row channel_scale_factors {'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '...\n", + "duration 39999.0\n", + "end 1980-01-01 11:06:39+00:00\n", + "has_data True\n", + "input_channels [hx, hy]\n", + "mth5_path /home/kkappler/software/irismt/mth5/mth5/data/...\n", + "n_samples 40000\n", + "output_channels [ex, ey, hz]\n", + "run 001\n", + "sample_rate 1.0\n", + "start 1980-01-01 00:00:00+00:00\n", + "station test1\n", + "survey EMTF Synthetic\n", + "run_hdf5_reference \n", + "station_hdf5_reference \n", + "fc True\n", + "remote False\n", + "run_dataarray [[ Size: 8B\\narray(345)\\n...\n", + "stft None\n", + "mth5_obj /:\\n====================\\n |- Group: Survey...\n", + "Name: 0, dtype: object already has fcs prescribed by processing config-- skipping time series initialisation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:38 | INFO | line:890 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | row channel_scale_factors {'ex': 1.0, 'ey': 1.0, 'hx': 1.0, 'hy': 1.0, '...\n", + "duration 39999.0\n", + "end 1980-01-01 11:06:39+00:00\n", + "has_data True\n", + "input_channels [hx, hy]\n", + "mth5_path /home/kkappler/software/irismt/mth5/mth5/data/...\n", + "n_samples 40000\n", + "output_channels [ex, ey, hz]\n", + "run 001\n", + "sample_rate 1.0\n", + "start 1980-01-01 00:00:00+00:00\n", + "station test2\n", + "survey EMTF Synthetic\n", + "run_hdf5_reference \n", + "station_hdf5_reference \n", + "fc True\n", + "remote True\n", + "run_dataarray [[ Size: 8B\\narray(520)\\n...\n", + "stft None\n", + "mth5_obj /:\\n====================\\n |- Group: Survey...\n", + "Name: 1, dtype: object already has fcs prescribed by processing config-- skipping time series initialisation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:38 | INFO | line:899 |mtpy.processing.kernel_dataset | initialize_dataframe_for_processing | Dataset dataframe initialized successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:38 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 0 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 25.728968s (0.038867Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 19.929573s (0.050177Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 15.164131s (0.065945Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 11.746086s (0.085135Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 9.195791s (0.108745Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 7.362526s (0.135823Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 5.856115s (0.170762Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 4.682492s (0.213562Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 1\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test1, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test2, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 1 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 102.915872s (0.009717Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 85.631182s (0.011678Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:39 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 68.881694s (0.014518Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 54.195827s (0.018452Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 43.003958s (0.023254Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 33.310722s (0.030020Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 2\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test1, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test2, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 2 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 411.663489s (0.002429Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 342.524727s (0.002919Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 275.526776s (0.003629Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 216.783308s (0.004613Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 172.015831s (0.005813Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 133.242890s (0.007505Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:124 |aurora.pipelines.transfer_function_kernel | update_dataset_df | DECIMATION LEVEL 3\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test1, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:134 |aurora.pipelines.transfer_function_kernel | update_dataset_df | FC already exists for survey: EMTF Synthetic, station: test2, run: 001 -- skipping decimation\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:143 |aurora.pipelines.transfer_function_kernel | update_dataset_df | Dataset Dataframe Updated for decimation level 3 Successfully\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1514.701336s (0.000660Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 1042.488956s (0.000959Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:40 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 723.371271s (0.001382Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 532.971560s (0.001876Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:41 | INFO | line:35 |aurora.time_series.frequency_band_helpers | get_band_for_tf_estimate | Processing band 412.837995s (0.002422Hz)\u001b[0m\n", + "\u001b[1m24:10:01T07:35:41 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n", + "\u001b[1m24:10:01T07:35:41 | INFO | line:771 |mth5.mth5 | close_mth5 | Flushing and closing /home/kkappler/software/irismt/mth5/mth5/data/mth5/test12rr.h5\u001b[0m\n" ] } ], @@ -2407,7 +2688,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -2421,7 +2702,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -2444,7 +2725,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 35, "metadata": { "tags": [] }, @@ -2497,7 +2778,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -2528,7 +2809,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -2539,7 +2820,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -2560,7 +2841,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -2571,7 +2852,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -2593,7 +2874,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 41, "metadata": {}, "outputs": [], "source": [ @@ -2603,7 +2884,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 42, "metadata": {}, "outputs": [], "source": [ @@ -2615,7 +2896,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -2624,7 +2905,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 44, "metadata": {}, "outputs": [], "source": [ @@ -2655,7 +2936,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.10" + "version": "3.9.19" } }, "nbformat": 4, diff --git a/tests/synthetic/test_processing.py b/tests/synthetic/test_processing.py index d5a10eda..f126f884 100644 --- a/tests/synthetic/test_processing.py +++ b/tests/synthetic/test_processing.py @@ -1,4 +1,5 @@ import logging +import pathlib import unittest from aurora.pipelines.process_mth5 import process_mth5 @@ -14,6 +15,7 @@ # from mtpy-v2 from mtpy.processing import RunSummary, KernelDataset +from typing import Optional, Union synthetic_test_paths = SyntheticTestPaths() synthetic_test_paths.mkdirs() @@ -145,14 +147,14 @@ def test_can_process_remote_reference_data_with_channel_nomenclature(self): def process_synthetic_1( - config_keyword="test1", - z_file_path="", - test_scale_factor=False, - simultaneous_regression=False, - file_version="0.1.0", - return_collection=False, - channel_nomenclature="default", - reload_config=False, + config_keyword: Optional[str] = "test1", + z_file_path: Optional[Union[str, pathlib.Path]] = "", + test_scale_factor: Optional[bool] = False, + simultaneous_regression: Optional[bool] = False, + file_version: Optional[str] = "0.1.0", # TODO: set to Literal["0.1.0", "0.2.0"] + return_collection: Optional[bool] = False, + channel_nomenclature: Optional[str] = "default", + reload_config: Optional[bool] = False, ): """ @@ -170,6 +172,7 @@ def process_synthetic_1( usual, channel-by-channel method file_version: str one of ["0.1.0", "0.2.0"] + Returns ------- tf_result: TransferFunctionCollection or mt_metadata.transfer_functions.TF @@ -178,18 +181,17 @@ def process_synthetic_1( mth5_path = create_test1_h5( file_version=file_version, channel_nomenclature=channel_nomenclature ) - run_summary = RunSummary() - run_summary.from_mth5s( - [ - mth5_path, - ] + mth5_paths = [ + mth5_path, + ] + station_id = "test1" + tfk_dataset, processing_config = _make_processing_config_and_kernel_dataset( + config_keyword=station_id, + station_id=station_id, + remote_id=None, # TODO: allow empty str instead of None + mth5s=mth5_paths, + channel_nomenclature=channel_nomenclature, ) - # next two lines purely for codecov - run_summary.print_mini_summary - run_summary_clone = run_summary.clone() - # run_summary.drop_runs_shorter_than(100000) - tfk_dataset = KernelDataset() - tfk_dataset.from_run_summary(run_summary_clone, "test1") # Test that channel_scale_factors column is optional if test_scale_factor: @@ -204,9 +206,6 @@ def process_synthetic_1( else: tfk_dataset.df.drop(columns=["channel_scale_factors"], inplace=True) - processing_config = create_test_run_config( - config_keyword, tfk_dataset, channel_nomenclature=channel_nomenclature - ) # Relates to issue #172 # reload_config = True # if reload_config: @@ -243,7 +242,11 @@ def process_synthetic_1( def process_synthetic_2( - force_make_mth5=True, z_file_path=None, save_fc=False, file_version="0.2.0" + force_make_mth5: Optional[bool] = True, + z_file_path: Optional[Union[str, pathlib.Path, None]] = None, + save_fc: Optional[bool] = False, + file_version: Optional[str] = "0.2.0", + channel_nomenclature: Optional[str] = "default", ): """""" station_id = "test2" @@ -253,11 +256,15 @@ def process_synthetic_2( mth5_paths = [ mth5_path, ] - run_summary = RunSummary() - run_summary.from_mth5s(mth5_paths) - tfk_dataset = KernelDataset() - tfk_dataset.from_run_summary(run_summary, station_id) - processing_config = create_test_run_config(station_id, tfk_dataset) + + tfk_dataset, processing_config = _make_processing_config_and_kernel_dataset( + config_keyword=station_id, + station_id=station_id, + remote_id=None, + mth5s=mth5_paths, + channel_nomenclature=channel_nomenclature, + ) + for decimation_level in processing_config.decimations: if save_fc: decimation_level.save_fcs = True @@ -281,13 +288,15 @@ def process_synthetic_1r2( mth5_paths = [ mth5_path, ] - run_summary = RunSummary() - run_summary.from_mth5s(mth5_paths) - tfk_dataset = KernelDataset() - tfk_dataset.from_run_summary(run_summary, "test1", "test2") - processing_config = create_test_run_config( - config_keyword, tfk_dataset, channel_nomenclature=channel_nomenclature + + tfk_dataset, processing_config = _make_processing_config_and_kernel_dataset( + config_keyword, + station_id="test1", + remote_id="test2", + mth5s=mth5_paths, + channel_nomenclature=channel_nomenclature, ) + tfc = process_mth5( processing_config, tfk_dataset=tfk_dataset, @@ -296,6 +305,50 @@ def process_synthetic_1r2( return tfc +def _make_processing_config_and_kernel_dataset( + config_keyword: str, + station_id: str, + remote_id: Optional[ + Union[str, None] + ] = None, # TODO: allow empty str instead of None + mth5s: Optional[Union[list, tuple, None]] = None, + channel_nomenclature: Optional[str] = "default", +): + """ + Gets the processing config and the tfk_dataset + + TODO: Move this to aurora/test_utils/synthetic/ + - this can then be used by test_fourier_coefficients to validate that the FCs are there before processing + + Parameters + ---------- + station_id + remote_id + mth5s + channel_nomenclature + + Returns + ------- + + """ + run_summary = RunSummary() + run_summary.from_mth5s(mth5s) + + # next two lines purely for codecov + run_summary.print_mini_summary + run_summary_clone = run_summary.clone() + + # run_summary.drop_runs_shorter_than(100000) + tfk_dataset = KernelDataset() + tfk_dataset.from_run_summary( + run_summary_clone, local_station_id=station_id, remote_station_id=remote_id + ) + processing_config = create_test_run_config( + config_keyword, tfk_dataset, channel_nomenclature=channel_nomenclature + ) + return tfk_dataset, processing_config + + def main(): """ Testing the processing of synthetic data