From 4c93610727b52a91e8cbc7fd4532bb2453a32939 Mon Sep 17 00:00:00 2001 From: jrhosk Date: Tue, 10 Mar 2026 15:53:02 +0900 Subject: [PATCH 1/3] Removed deprecated notebooks. Update some of the remaining notebooks. --- docs/airflow_tutorial.ipynb | 296 +----- docs/client_tutorial.ipynb | 902 ------------------ docs/download_example.ipynb | 557 ----------- docs/graph_building_tutorial.ipynb | 793 +++------------ docs/graph_building_tutorial_image.ipynb | 345 ++++--- .../toolviper-logger-formatting-example.ipynb | 422 -------- 6 files changed, 358 insertions(+), 2957 deletions(-) delete mode 100644 docs/client_tutorial.ipynb delete mode 100644 docs/download_example.ipynb delete mode 100644 docs/toolviper-logger-formatting-example.ipynb diff --git a/docs/airflow_tutorial.ipynb b/docs/airflow_tutorial.ipynb index 0071f90..c4089f1 100644 --- a/docs/airflow_tutorial.ipynb +++ b/docs/airflow_tutorial.ipynb @@ -33,103 +33,20 @@ }, { "cell_type": "code", - "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/Users/jsteeb\n" - ] - } - ], "source": [ "import os\n", "#dags_folder = \"/Users/jsteeb/Dropbox/graphviper/docs/airflow_dags\"\n", "dags_folder = \"~\"\n", "dags_folder = os.path.expanduser(dags_folder)\n", "print(dags_folder)" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "code", - "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2025-10-07 10:42:23,368\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m Module path: \u001b[38;2;50;50;205m/Users/jsteeb/Dropbox/toolviper/src/toolviper\u001b[0m \n", - "[\u001b[38;2;128;05;128m2025-10-07 10:42:23,370\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m Downloading from [cloudflare] .... \n" - ] - }, - { - "data": { - "text/html": [ - "
                                    \n",
-       "  Download List                     \n",
-       " ────────────────────────────────── \n",
-       "  Antennae_North.cal.lsrk.split.ms  \n",
-       "                                    \n",
-       "
\n" - ], - "text/plain": [ - " \n", - " \u001b[1m \u001b[0m\u001b[1mDownload List \u001b[0m\u001b[1m \u001b[0m \n", - " ────────────────────────────────── \n", - " \u001b[35mAntennae_North.cal.lsrk.split.ms\u001b[0m \n", - " \n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2025-10-07 10:42:23,373\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m File exists: Antennae_North.cal.lsrk.split.ms \n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "491bd20147564a299b47ee17706cd642", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[\u001b[38;2;128;05;128m2025-10-07 10:42:24,419\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Updated partition scheme used: ['DATA_DESC_ID', 'OBS_MODE', 'OBSERVATION_ID'] \n",
-      "[\u001b[38;2;128;05;128m2025-10-07 10:42:24,421\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Number of partitions: 4 \n",
-      "[\u001b[38;2;128;05;128m2025-10-07 10:42:24,421\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [0], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [9, 17, 21, 25], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2025-10-07 10:42:24,613\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [1], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [26, 34, 38, 42], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2025-10-07 10:42:24,761\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [2], DDI [0], STATE [32, 33, 34], FIELD [0, 1, 2], SCAN [43], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2025-10-07 10:42:24,909\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [3], DDI [0], STATE [39, 40, 41, 46, 47, 48, 49, 50, 53], FIELD [0, 1, 2], SCAN [48, 56, 60, 64], EPHEMERIS [None] \n"
-     ]
-    }
-   ],
    "source": [
     "from toolviper.utils.data import download\n",
     "\n",
@@ -149,192 +66,13 @@
     "    persistence_mode=\"w\",\n",
     "    main_chunksize=chunks_on_disk,\n",
     ")"
-   ]
+   ],
+   "outputs": [],
+   "execution_count": null
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
    "metadata": {},
-   "outputs": [
-    {
-     "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", - " \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", - "
namescan_intentsshapeexecution_block_UIDpolarizationscan_namespw_namespw_intentsfield_namesource_nameline_namefield_coordssession_reference_UIDscheduling_block_UIDproject_UIDstart_frequencyend_frequency
0Antennae_North.cal.lsrk.split_0[OBSERVE_TARGET#ON_SOURCE](50, 45, 8, 2)uid://A002/X1ff7b0/Xb[XX, YY][17, 21, 25, 9]spw_0UNSPECIFIED[NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2][NGC4038 - Antennae North_0][]Multi-Phase-Center---uid://A002/X1fd4e7/X64dT.B.D.3.439281e+113.440067e+11
1Antennae_North.cal.lsrk.split_1[OBSERVE_TARGET#ON_SOURCE](50, 55, 8, 2)uid://A002/X207fe4/X3a[XX, YY][26, 34, 38, 42]spw_0UNSPECIFIED[NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2][NGC4038 - Antennae North_0][]Multi-Phase-Center---uid://A002/X1fd4e7/X64dT.B.D.3.439281e+113.440067e+11
2Antennae_North.cal.lsrk.split_2[OBSERVE_TARGET#ON_SOURCE](15, 55, 8, 2)uid://A002/X207fe4/X3b9[XX, YY][43]spw_0UNSPECIFIED[NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2][NGC4038 - Antennae North_0][]Multi-Phase-Center---uid://A002/X1fd4e7/X64dT.B.D.3.439281e+113.440067e+11
3Antennae_North.cal.lsrk.split_3[OBSERVE_TARGET#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE](50, 77, 8, 2)uid://A002/X2181fb/X49[XX, YY][48, 56, 60, 64]spw_0UNSPECIFIED[NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2][NGC4038 - Antennae North_0][]Multi-Phase-Center---uid://A002/X1fd4e7/X64dT.B.D.3.439281e+113.440067e+11
\n", - "
" - ], - "text/plain": [ - " name \\\n", - "0 Antennae_North.cal.lsrk.split_0 \n", - "1 Antennae_North.cal.lsrk.split_1 \n", - "2 Antennae_North.cal.lsrk.split_2 \n", - "3 Antennae_North.cal.lsrk.split_3 \n", - "\n", - " scan_intents shape \\\n", - "0 [OBSERVE_TARGET#ON_SOURCE] (50, 45, 8, 2) \n", - "1 [OBSERVE_TARGET#ON_SOURCE] (50, 55, 8, 2) \n", - "2 [OBSERVE_TARGET#ON_SOURCE] (15, 55, 8, 2) \n", - "3 [OBSERVE_TARGET#ON_SOURCE, CALIBRATE_WVR#ON_SOURCE] (50, 77, 8, 2) \n", - "\n", - " execution_block_UID polarization scan_name spw_name \\\n", - "0 uid://A002/X1ff7b0/Xb [XX, YY] [17, 21, 25, 9] spw_0 \n", - "1 uid://A002/X207fe4/X3a [XX, YY] [26, 34, 38, 42] spw_0 \n", - "2 uid://A002/X207fe4/X3b9 [XX, YY] [43] spw_0 \n", - "3 uid://A002/X2181fb/X49 [XX, YY] [48, 56, 60, 64] spw_0 \n", - "\n", - " spw_intents \\\n", - "0 UNSPECIFIED \n", - "1 UNSPECIFIED \n", - "2 UNSPECIFIED \n", - "3 UNSPECIFIED \n", - "\n", - " field_name \\\n", - "0 [NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2] \n", - "1 [NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2] \n", - "2 [NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2] \n", - "3 [NGC4038 - Antennae North_0, NGC4038 - Antennae North_1, NGC4038 - Antennae North_2] \n", - "\n", - " source_name line_name field_coords \\\n", - "0 [NGC4038 - Antennae North_0] [] Multi-Phase-Center \n", - "1 [NGC4038 - Antennae North_0] [] Multi-Phase-Center \n", - "2 [NGC4038 - Antennae North_0] [] Multi-Phase-Center \n", - "3 [NGC4038 - Antennae North_0] [] Multi-Phase-Center \n", - "\n", - " session_reference_UID scheduling_block_UID project_UID start_frequency \\\n", - "0 --- uid://A002/X1fd4e7/X64d T.B.D. 3.439281e+11 \n", - "1 --- uid://A002/X1fd4e7/X64d T.B.D. 3.439281e+11 \n", - "2 --- uid://A002/X1fd4e7/X64d T.B.D. 3.439281e+11 \n", - "3 --- uid://A002/X1fd4e7/X64d T.B.D. 3.439281e+11 \n", - "\n", - " end_frequency \n", - "0 3.440067e+11 \n", - "1 3.440067e+11 \n", - "2 3.440067e+11 \n", - "3 3.440067e+11 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], "source": [ "from toolviper.utils.data import download\n", "\n", @@ -352,21 +90,13 @@ " scan_intents=intents,\n", ")\n", "display(ps.xr_ps.summary())" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "code", - "execution_count": 4, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'map': {'node_task': , 'input_params': [{'test_input': 42, 'chunk_indices': (np.int64(0),), 'parallel_dims': ['frequency'], 'data_selection': {'Antennae_North.cal.lsrk.split_0': {'frequency': slice(np.int64(0), np.int64(3), None)}, 'Antennae_North.cal.lsrk.split_1': {'frequency': slice(np.int64(0), np.int64(3), None)}, 'Antennae_North.cal.lsrk.split_2': {'frequency': slice(np.int64(0), np.int64(3), None)}, 'Antennae_North.cal.lsrk.split_3': {'frequency': slice(np.int64(0), np.int64(3), None)}}, 'task_coords': {'frequency': {'data': array([3.43928097e+11, 3.43939328e+11, 3.43950560e+11]), 'dims': 'frequency', 'attrs': {'units': 'Hz', 'type': 'spectral_coord', 'velocity_frame': 'lsrk'}}}, 'task_id': 0, 'input_data': None, 'date_time': None}, {'test_input': 42, 'chunk_indices': (np.int64(1),), 'parallel_dims': ['frequency'], 'data_selection': {'Antennae_North.cal.lsrk.split_0': {'frequency': slice(np.int64(3), np.int64(6), None)}, 'Antennae_North.cal.lsrk.split_1': {'frequency': slice(np.int64(3), np.int64(6), None)}, 'Antennae_North.cal.lsrk.split_2': {'frequency': slice(np.int64(3), np.int64(6), None)}, 'Antennae_North.cal.lsrk.split_3': {'frequency': slice(np.int64(3), np.int64(6), None)}}, 'task_coords': {'frequency': {'data': array([3.43961791e+11, 3.43973023e+11, 3.43984254e+11]), 'dims': 'frequency', 'attrs': {'units': 'Hz', 'type': 'spectral_coord', 'velocity_frame': 'lsrk'}}}, 'task_id': 1, 'input_data': None, 'date_time': None}, {'test_input': 42, 'chunk_indices': (np.int64(2),), 'parallel_dims': ['frequency'], 'data_selection': {'Antennae_North.cal.lsrk.split_0': {'frequency': slice(np.int64(6), np.int64(8), None)}, 'Antennae_North.cal.lsrk.split_1': {'frequency': slice(np.int64(6), np.int64(8), None)}, 'Antennae_North.cal.lsrk.split_2': {'frequency': slice(np.int64(6), np.int64(8), None)}, 'Antennae_North.cal.lsrk.split_3': {'frequency': slice(np.int64(6), np.int64(8), None)}}, 'task_coords': {'frequency': {'data': array([3.43995486e+11, 3.44006717e+11]), 'dims': 'frequency', 'attrs': {'units': 'Hz', 'type': 'spectral_coord', 'velocity_frame': 'lsrk'}}}, 'task_id': 2, 'input_data': None, 'date_time': None}]}, 'reduce': {'mode': 'single_node', 'node_task': , 'input_params': {'test_input': 5}}}\n" - ] - } - ], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", @@ -453,14 +183,16 @@ "\n", "generate_airflow_workflow(viper_graph,filename=os.path.join(dags_folder,'map_reduce_4.py'),dag_name='map_reduce_4')\n", "\n" - ] + ], + "outputs": [], + "execution_count": null }, { "cell_type": "code", - "execution_count": null, "metadata": {}, + "source": [], "outputs": [], - "source": [] + "execution_count": null } ], "metadata": { diff --git a/docs/client_tutorial.ipynb b/docs/client_tutorial.ipynb deleted file mode 100644 index 7d6b091..0000000 --- a/docs/client_tutorial.ipynb +++ /dev/null @@ -1,902 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "ee62edf6-8a86-486a-aa81-61a8289146b1", - "metadata": {}, - "outputs": [], - "source": [ - "import toolviper\n", - "from toolviper.dask import menrva\n", - "from toolviper.dask.client import local_client\n", - "\n", - "from xradio.measurement_set import convert_msv2_to_processing_set" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "ad746bbe-5e1b-442b-bba7-e706b845d95f", - "metadata": {}, - "outputs": [], - "source": [ - "!rm -rf Antennae_North.cal.lsrk.split.vis.zarr" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "070929df-e262-4d47-a3b1-c915bc0d58ad", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2026-01-22 10:14:12,677\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m Downloading from [cloudflare] .... \n" - ] - }, - { - "data": { - "text/html": [ - "
                                    \n",
-       "  Download List                     \n",
-       " ────────────────────────────────── \n",
-       "  Antennae_North.cal.lsrk.split.ms  \n",
-       "                                    \n",
-       "
\n" - ], - "text/plain": [ - " \n", - " \u001b[1m \u001b[0m\u001b[1mDownload List \u001b[0m\u001b[1m \u001b[0m \n", - " ────────────────────────────────── \n", - " \u001b[35mAntennae_North.cal.lsrk.split.ms\u001b[0m \n", - " \n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2026-01-22 10:14:12,685\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m File exists: Antennae_North.cal.lsrk.split.ms \n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "503ba3deb9974298b50649e12d929d39", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "toolviper.utils.data.download(file=\"Antennae_North.cal.lsrk.split.ms\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "5a1ed235-79df-4a7e-9798-7614efcd41de",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def main():\n",
-    "    chunks_on_disk = {\n",
-    "        \"frequency\": 3\n",
-    "    }\n",
-    "\n",
-    "    input_file = \"Antennae_North.cal.lsrk.split.ms\"\n",
-    "    output_file = \"Antennae_North.cal.lsrk.split.ps.zarr\"\n",
-    "\n",
-    "    convert_msv2_to_processing_set(\n",
-    "        in_file=input_file,\n",
-    "        out_file=output_file,\n",
-    "        \n",
-    "        parallel_mode=\"None\",\n",
-    "        persistence_mode=\"w\",\n",
-    "        main_chunksize=chunks_on_disk,\n",
-    "    )"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "id": "0ee2e155-b0d8-41c6-a81e-bf59fe581991",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "log_params = {\n",
-    "    \"logger_name\": \"main-logger\",\n",
-    "    \"log_level\": \"INFO\",\n",
-    "    \"log_to_term\": True,\n",
-    "    \"log_to_file\": False,\n",
-    "}\n",
-    "\n",
-    "worker_log_params = {\n",
-    "    \"logger_name\": \"worker-logger\",\n",
-    "    \"log_level\": \"INFO\",\n",
-    "    \"log_to_term\": True,\n",
-    "    \"log_to_file\": False,\n",
-    "    \"log_file\": None,\n",
-    "}"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "id": "1e9b47f9-9d8e-4022-b763-74eb6a590071",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:12,804\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Module path: \u001b[38;2;50;50;205m/Users/jsteeb/miniforge3/envs/timg/lib/python3.13/site-packages/toolviper\u001b[0m \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:12,826\u001b[0m] \u001b[38;2;255;160;0m WARNING\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m It is recommended that the local cache directory be set using the \u001b[38;2;50;50;205mdask_local_dir\u001b[0m parameter. \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:13,727\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Client  \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:13,805\u001b[0m] \u001b[38;2;255;160;0m WARNING\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m `parallel_mode` None not recognosed. Defauling to 'none'. \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:13,834\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Updated partition scheme used: ['DATA_DESC_ID', 'OBS_MODE', 'OBSERVATION_ID'] \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:13,836\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Number of partitions: 4 \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:13,837\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [0], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [9, 17, 21, 25], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:14,033\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [1], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [26, 34, 38, 42], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:14,196\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [2], DDI [0], STATE [32, 33, 34], FIELD [0, 1, 2], SCAN [43], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2026-01-22 10:14:14,429\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m OBSERVATION_ID [3], DDI [0], STATE [39, 40, 41, 46, 47, 48, 49, 50, 53], FIELD [0, 1, 2], SCAN [48, 56, 60, 64], EPHEMERIS [None] \n"
-     ]
-    }
-   ],
-   "source": [
-    "client = local_client(\n",
-    "    cores=2,\n",
-    "    memory_limit=\"8GB\",\n",
-    "    log_params=log_params,\n",
-    "    worker_log_params=worker_log_params,\n",
-    "    serial_execution=False,\n",
-    ")\n",
-    "\n",
-    "main()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "92375ac2-de6a-40ab-8459-68fd8416e40a",
-   "metadata": {},
-   "source": [
-    "### Client | Cluster | Thread Information\n",
-    "An instance of the Client or Cluster, if they exist, can be retrieved using the client module. These helper functions \n",
-    "are useful in determining the current Dask client status. It can be useful to check the cluster status becuase sometimes \n",
-    "even if the client is closed out the cluster instance will persist and multiple ports can be opened if a new client is \n",
-    "not opened correctly."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "id": "fb71ca4a-4716-489b-89fc-3de041b1711e",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "
\n", - "
\n", - "
\n", - "

Client

\n", - "

MenrvaClient-02c30b36-f7a5-11f0-9b62-80a9970f900d

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
Connection method: Cluster objectCluster type: distributed.LocalCluster
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - "
\n", - "\n", - " \n", - "\n", - " \n", - "
\n", - "

Cluster Info

\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

LocalCluster

\n", - "

7c8bc62d

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - "
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - " \n", - " Workers: 2\n", - "
\n", - " Total threads: 2\n", - " \n", - " Total memory: 14.90 GiB\n", - "
Status: runningUsing processes: True
\n", - "\n", - "
\n", - " \n", - "

Scheduler Info

\n", - "
\n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Scheduler

\n", - "

Scheduler-139b565c-7ef8-4437-a7c5-79676c89e099

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " Comm: tcp://127.0.0.1:53465\n", - " \n", - " Workers: 2 \n", - "
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - " \n", - " Total threads: 2\n", - "
\n", - " Started: Just now\n", - " \n", - " Total memory: 14.90 GiB\n", - "
\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "

Workers

\n", - "
\n", - "\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 0

\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", - " Comm: tcp://127.0.0.1:53472\n", - " \n", - " Total threads: 1\n", - "
\n", - " Dashboard: http://127.0.0.1:53475/status\n", - " \n", - " Memory: 7.45 GiB\n", - "
\n", - " Nanny: tcp://127.0.0.1:53468\n", - "
\n", - " Local directory: /var/folders/b7/dx896v1x4yjb9v6rvs_n2hs00000gp/T/dask-scratch-space/worker-n5odcxf8\n", - "
\n", - " Tasks executing: \n", - " \n", - " Tasks in memory: \n", - "
\n", - " Tasks ready: \n", - " \n", - " Tasks in flight: \n", - "
\n", - " CPU usage: 0.0%\n", - " \n", - " Last seen: Just now\n", - "
\n", - " Memory usage: 67.48 MiB\n", - " \n", - " Spilled bytes: 0 B\n", - "
\n", - " Read bytes: 0.0 B\n", - " \n", - " Write bytes: 0.0 B\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 1

\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", - " Comm: tcp://127.0.0.1:53473\n", - " \n", - " Total threads: 1\n", - "
\n", - " Dashboard: http://127.0.0.1:53474/status\n", - " \n", - " Memory: 7.45 GiB\n", - "
\n", - " Nanny: tcp://127.0.0.1:53470\n", - "
\n", - " Local directory: /var/folders/b7/dx896v1x4yjb9v6rvs_n2hs00000gp/T/dask-scratch-space/worker-7cbgdxxl\n", - "
\n", - " Tasks executing: \n", - " \n", - " Tasks in memory: \n", - "
\n", - " Tasks ready: \n", - " \n", - " Tasks in flight: \n", - "
\n", - " CPU usage: 0.0%\n", - " \n", - " Last seen: Just now\n", - "
\n", - " Memory usage: 67.72 MiB\n", - " \n", - " Spilled bytes: 0 B\n", - "
\n", - " Read bytes: 0.0 B\n", - " \n", - " Write bytes: 0.0 B\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "toolviper.dask.client.get_client()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "4c797f8c-82f0-48c0-94cc-60bcff25f232", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "45afba3d41e747b581ae85ba9b145b66", - "version_major": 2, - "version_minor": 0 - }, - "text/html": [ - "
\n", - "
\n", - "
\n", - "
\n", - "

LocalCluster

\n", - "

7c8bc62d

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - "
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - " \n", - " Workers: 2\n", - "
\n", - " Total threads: 2\n", - " \n", - " Total memory: 14.90 GiB\n", - "
Status: runningUsing processes: True
\n", - "\n", - "
\n", - " \n", - "

Scheduler Info

\n", - "
\n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Scheduler

\n", - "

Scheduler-139b565c-7ef8-4437-a7c5-79676c89e099

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " Comm: tcp://127.0.0.1:53465\n", - " \n", - " Workers: 2 \n", - "
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - " \n", - " Total threads: 2\n", - "
\n", - " Started: Just now\n", - " \n", - " Total memory: 14.90 GiB\n", - "
\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "

Workers

\n", - "
\n", - "\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 0

\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", - " Comm: tcp://127.0.0.1:53472\n", - " \n", - " Total threads: 1\n", - "
\n", - " Dashboard: http://127.0.0.1:53475/status\n", - " \n", - " Memory: 7.45 GiB\n", - "
\n", - " Nanny: tcp://127.0.0.1:53468\n", - "
\n", - " Local directory: /var/folders/b7/dx896v1x4yjb9v6rvs_n2hs00000gp/T/dask-scratch-space/worker-n5odcxf8\n", - "
\n", - " Tasks executing: \n", - " \n", - " Tasks in memory: \n", - "
\n", - " Tasks ready: \n", - " \n", - " Tasks in flight: \n", - "
\n", - " CPU usage: 0.0%\n", - " \n", - " Last seen: Just now\n", - "
\n", - " Memory usage: 67.48 MiB\n", - " \n", - " Spilled bytes: 0 B\n", - "
\n", - " Read bytes: 0.0 B\n", - " \n", - " Write bytes: 0.0 B\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 1

\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", - " Comm: tcp://127.0.0.1:53473\n", - " \n", - " Total threads: 1\n", - "
\n", - " Dashboard: http://127.0.0.1:53474/status\n", - " \n", - " Memory: 7.45 GiB\n", - "
\n", - " Nanny: tcp://127.0.0.1:53470\n", - "
\n", - " Local directory: /var/folders/b7/dx896v1x4yjb9v6rvs_n2hs00000gp/T/dask-scratch-space/worker-7cbgdxxl\n", - "
\n", - " Tasks executing: \n", - " \n", - " Tasks in memory: \n", - "
\n", - " Tasks ready: \n", - " \n", - " Tasks in flight: \n", - "
\n", - " CPU usage: 0.0%\n", - " \n", - " Last seen: Just now\n", - "
\n", - " Memory usage: 67.72 MiB\n", - " \n", - " Spilled bytes: 0 B\n", - "
\n", - " Read bytes: 0.0 B\n", - " \n", - " Write bytes: 0.0 B\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "\n", - "
\n", - "
\n", - "
" - ], - "text/plain": [ - "LocalCluster(7c8bc62d, 'tcp://127.0.0.1:53465', workers=2, threads=2, memory=14.90 GiB)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "toolviper.dask.client.get_cluster()" - ] - }, - { - "cell_type": "markdown", - "id": "c3bb1a28-1fcd-4626-905a-2ee4adc8a6d6", - "metadata": {}, - "source": [ - "There are two ways to get information about the client thread info. If a client instance exists, within the code block the user can simply run the `.thread_info()` method available from the client class. If the user is not usre if a client already exists or was instantiated in another code block, a helper method is available to get the thread info for the client. If a client instance does not exist, an estimation of the available local system resource is returned." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "9d9199ca-a46c-46b4-ac0f-891e1aef55e0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'n_threads': 2, 'memory_per_thread': 7.450580596923828}" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "client.thread_info()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "e3f0404c-6055-4c7a-a90b-2f5daa073b00", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'n_threads': 2, 'memory_per_thread': 7.450580596923828}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "toolviper.dask.client.get_thread_info()" - ] - }, - { - "cell_type": "markdown", - "id": "f86ffa02-bf56-4d19-a192-9a51e8368d56", - "metadata": {}, - "source": [ - "The client instance should shutdown once the python kernel is reset or the code runtime is finished, however if the user would like or needs to shutdown the client instance, they can call the `.shutdown()` method. Calling the client instance again the user should no longer see the html output showing the client information." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "7ae09dc1-1c3e-43d2-945c-ccd645b12953", - "metadata": {}, - "outputs": [], - "source": [ - "client.shutdown()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "20f62ef9-84ee-4617-aedb-cdb486f366fe", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "client" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "timg", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/download_example.ipynb b/docs/download_example.ipynb deleted file mode 100644 index 7812692..0000000 --- a/docs/download_example.ipynb +++ /dev/null @@ -1,557 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "5d86886d-fa1d-4c53-8c07-cf0ee1378211", - "metadata": {}, - "outputs": [], - "source": [ - "import toolviper" - ] - }, - { - "cell_type": "markdown", - "id": "01bc8397-af47-48df-8391-733bba286588", - "metadata": {}, - "source": [ - "## Getting download metadata version\n", - "#### This will retireve the current file download metadata version; if the file is not found it will attempt to update to the most recent version." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "16a174c2-5d8a-4cfc-a423-a1541adcaf21", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2025-10-07 10:34:30,387\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m None \n" - ] - } - ], - "source": [ - "toolviper.utils.data.version()" - ] - }, - { - "cell_type": "markdown", - "id": "fe18a0d9-bd21-4ce5-91fd-6348e5f1369e", - "metadata": {}, - "source": [ - "### Manually update metdata info." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "deeee662-94d9-44a0-95e7-f062f55223ca", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2025-10-07 10:34:30,391\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m Updating file metadata information ... \n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "256faab66daa4b4f9fa84c20f910b0b5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "toolviper.utils.data.update()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "0351dda7-7559-449d-9ebb-c853beb0861e",
-   "metadata": {},
-   "source": [
-    "## Getting available downloadable file in a python list.\n",
-    "#### This will return an unordered list of the available file on the remote dropbox in a python list. This can be used as an input to thie download function as well."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "2912a5ae-7a4b-42f3-a633-cbe5ecaffc74",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "['ea25_cal_small_before_fixed.split.ms',\n",
-       " 'ea25_cal_small_after_fixed.split.ms',\n",
-       " 'J1924-2914.ms.calibrated.split.SPW3',\n",
-       " 'extract_holog_verification.json',\n",
-       " 'holog_numerical_verification.json',\n",
-       " 'locit-input-pha.cal',\n",
-       " 'panel_cutoff_mask',\n",
-       " 'heuristic_model',\n",
-       " 'panel-input-data',\n",
-       " 'AA2-Mid-sim_00000.ms',\n",
-       " 'Antennae_M8.img.zarr',\n",
-       " 'Antennae_North.cal.lsrk.ms',\n",
-       " 'Antennae_North.cal.lsrk.split.ms',\n",
-       " 'complex_valued_uv.im',\n",
-       " 'demo_simulated.im',\n",
-       " 'no_mask.im',\n",
-       " 'small_lofar.ms',\n",
-       " 'small_meerkat.ms',\n",
-       " 'global_vlbi_gg084b_reduced.ms',\n",
-       " 'VLBA_TL016B_split_lsrk.ms',\n",
-       " 'ngEHT_E17A10.0.bin0000.source0000_split_lsrk.ms',\n",
-       " 'venus_ephem_test.ms',\n",
-       " 'sdimaging.ms',\n",
-       " 'ALMA_uid___A002_X1003af4_X75a3.split.avg.ms',\n",
-       " 'VLASS3.2.sb45755730.eb46170641.60480.16266136574.split.v6.ms',\n",
-       " 'feather_sim_vla_c1_pI.im',\n",
-       " 'feather_sim_sd_c1_pI.im',\n",
-       " 'Antennae_fld1_casa_lsrk.ps.zarr',\n",
-       " 'Antennae_fld1_topo.ps.zarr',\n",
-       " 'Antennae_North.cal.lsrk.split.ps.zarr',\n",
-       " 'Antennae_North.cal.lsrk.ps.zarr',\n",
-       " 'feather_model_convolved',\n",
-       " 'feather.im',\n",
-       " 'int.zarr',\n",
-       " 'sd.zarr',\n",
-       " 'ska_low_sim_18s.ms',\n",
-       " 'VLBA_TL016B_split.ms',\n",
-       " 'ngEHT_E17A10.0.bin0000.source0000_split.ms',\n",
-       " 'uid___A002_X1015532_X1926f.small.ms',\n",
-       " 'uid___A002_Xae00c5_X2e6b.small.ms',\n",
-       " 'uid___A002_Xced5df_Xf9d9.small.ms',\n",
-       " 'uid___A002_Xe3a5fd_Xe38e.small.ms',\n",
-       " 'SNR_G55_10s.split.ms',\n",
-       " '59749_bp_8beams_pattern.ms',\n",
-       " '59750_altaz_2settings.ms',\n",
-       " '59754_altaz_2weights_0.ms',\n",
-       " '59754_altaz_2weights_15.ms',\n",
-       " '59755_eq_interleave_0.ms',\n",
-       " '59755_eq_interleave_15.ms',\n",
-       " 'gmrt.ms',\n",
-       " 'checksum.hash',\n",
-       " 'refim_point_im_casa_hogbom_cleaned.residual',\n",
-       " '3c286_Band6_5chans_lsrk_compare_weights.ps.zarr',\n",
-       " 'twhya_selfcal_5chans_lsrk_compare_weights.ps.zarr',\n",
-       " 'twhya_selfcal_5chans_lsrk_xx_compare_weights.ps.zarr',\n",
-       " 'twhya_selfcal_11chans_lsrk_robust_0.5_niter_0.psf',\n",
-       " 'casa_hogbom_deconv.residual',\n",
-       " 'test_hogbom_multisrc.psf',\n",
-       " 'test_hogbom_multisrc.residual',\n",
-       " 'refim_point_im.psf',\n",
-       " 'refim_point_im.residual']"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "files = toolviper.utils.data.get_files()\n",
-    "files"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "id": "28c8b343-3a05-4217-a581-e51c7db95d02",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[\u001b[38;2;128;05;128m2025-10-07 10:34:30,714\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Module path: \u001b[38;2;50;50;205m/Users/jsteeb/Dropbox/toolviper/src/toolviper\u001b[0m \n",
-      "[\u001b[38;2;128;05;128m2025-10-07 10:34:30,716\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m    viperlog: \u001b[0m Downloading from [cloudflare] .... \n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "
                                        \n",
-       "  Download List                         \n",
-       " ────────────────────────────────────── \n",
-       "  ea25_cal_small_before_fixed.split.ms  \n",
-       "  ea25_cal_small_after_fixed.split.ms   \n",
-       "                                        \n",
-       "
\n" - ], - "text/plain": [ - " \n", - " \u001b[1m \u001b[0m\u001b[1mDownload List \u001b[0m\u001b[1m \u001b[0m \n", - " ────────────────────────────────────── \n", - " \u001b[35mea25_cal_small_before_fixed.split.ms\u001b[0m \n", - " \u001b[35mea25_cal_small_after_fixed.split.ms\u001b[0m \n", - " \n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2025-10-07 10:34:30,718\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m File exists: data/ea25_cal_small_before_fixed.split.ms \n", - "[\u001b[38;2;128;05;128m2025-10-07 10:34:30,719\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m viperlog: \u001b[0m File exists: data/ea25_cal_small_after_fixed.split.ms \n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ae877fb0ac174abe95f3c8003c668269", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "toolviper.utils.data.download(file=files[:2], folder=\"data\")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "fdf5ec65-a98b-412b-b5c6-3b4bb23e8312",
-   "metadata": {},
-   "source": [
-    "## Getting available files and metadata in table form."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "id": "2439445a-d7fe-4bea-bc43-6edb131447cc",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
-       "┃ file                                     dtype           telescope    size       mode                       ┃\n",
-       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
-       "│ ea25_cal_small_before_fixed.split.ms     CASA MS v2      VLA          150170225  Holography                 │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ ea25_cal_small_after_fixed.split.ms      CASA MS v2      VLA          150031008  Holography                 │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ J1924-2914.ms.calibrated.split.SPW3      CASA MS v2      ALMA         35000000   Holography                 │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ extract_holog_verification.json          json            na           967        na                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ holog_numerical_verification.json        json            na           1033       na                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ locit-input-pha.cal                      CASA Cal Table  VLA          92293      antenna location cal table │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ panel_cutoff_mask                        npy             na           27150      na                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ heuristic_model                          bin             na           556        na                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ panel-input-data                         na              na           402916     na                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ AA2-Mid-sim_00000.ms                     CASA MS v2      SKA Mid      14710912   Simulated Interferometer   │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_M8.img.zarr                     zarr            ALMA         12626417   Interferometer Mosaic      │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_North.cal.lsrk.ms               CASA MS v2      ALMA         189716793  Interferometer Mosaic      │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_North.cal.lsrk.split.ms         CASA MS v2      ALMA         1560578    Interferometer Mosaic      │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ complex_valued_uv.im                     image           Simulated    562110     Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ demo_simulated.im                        image           Simulated    15321745   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ no_mask.im                               image           Simulated    4252       Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ small_lofar.ms                           CASA MS v2      LOFAR        10091260   Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ small_meerkat.ms                         CASA MS v2      MeerKAT      2392258    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ global_vlbi_gg084b_reduced.ms            CASA MS v2      GLOBAL VLBI  15701018   VLBI                       │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ VLBA_TL016B_split_lsrk.ms                CASA MS v2      VLBA         9399847    VLBI                       │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ ngEHT_E17A10.0.bin0000.source0000_spli…  CASA MS v2      ngEHT        11082603   Simulated Interferometer   │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ venus_ephem_test.ms                      CASA MS v2      ALMA         16758430   Interferometer Ephemeris   │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ sdimaging.ms                             CASA MS v2      ALMA         29718841   Single Dish                │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ ALMA_uid___A002_X1003af4_X75a3.split.a…  CASA MS v2      ALMA         29593547   Interferometer Ephemeris   │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ VLASS3.2.sb45755730.eb46170641.60480.1…  CASA MS v2      VLA          69019704   Interferometer Ephemeris   │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ feather_sim_vla_c1_pI.im                 image           Simulated    62246951   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ feather_sim_sd_c1_pI.im                  image           Simulated    67218042   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_fld1_casa_lsrk.ps.zarr          Msv4            ALMA         9314803    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_fld1_topo.ps.zarr               Msv4            ALMA         9867649    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_North.cal.lsrk.split.ps.zarr    Msv4            ALMA         3430000    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ Antennae_North.cal.lsrk.ps.zarr          Msv4            ALMA         2040000    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ feather_model_convolved                  Model                        61364929   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ feather.im                               CASA Image                   67150892   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ int.zarr                                 Zarr Image                   65512355   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ sd.zarr                                  Zarr Image                   67150892   Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ ska_low_sim_18s.ms                       CASA MS v2      SKA Low      8866100    Simulated                  │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ VLBA_TL016B_split.ms                     CASA MS v2      VLBA         9402465    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ ngEHT_E17A10.0.bin0000.source0000_spli…  CASA MS v2      ngEHT        11099488   Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ uid___A002_X1015532_X1926f.small.ms      CASA MS v2      ALMA         6299859    Single Dish                │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ uid___A002_Xae00c5_X2e6b.small.ms        CASA MS v2      ALMA         7351298    Single Dish                │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ uid___A002_Xced5df_Xf9d9.small.ms        CASA MS v2      ALMA         7351298    Single Dish                │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ uid___A002_Xe3a5fd_Xe38e.small.ms        CASA MS v2      ALMA         16122776   Single Dish                │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ SNR_G55_10s.split.ms                     CASA MS v2      VLA          8648349    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 59749_bp_8beams_pattern.ms               CASA MS v2      ASKAP        8137335    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 59750_altaz_2settings.ms                 CASA MS v2      ASKAP        3669608    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 59754_altaz_2weights_0.ms                CASA MS v2      ASKAP        3521937    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 59754_altaz_2weights_15.ms               CASA MS v2      ASKAP        3538081    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 59755_eq_interleave_0.ms                 CASA MS v2      ASKAP        7525050    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 59755_eq_interleave_15.ms                CASA MS v2      ASKAP        7493404    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ gmrt.ms                                  CASA MS v2      GMRT         2125130    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ checksum.hash                            hash            NA           20         NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ refim_point_im_casa_hogbom_cleaned.res…  NA              NA           257051     NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ 3c286_Band6_5chans_lsrk_compare_weight…  NA              NA           22762594   NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ twhya_selfcal_5chans_lsrk_compare_weig…  NA              NA           7027733    NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ twhya_selfcal_5chans_lsrk_xx_compare_w…  NA              NA           5271957    NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ twhya_selfcal_11chans_lsrk_robust_0.5_…  CASA MS v2      ALMA         2555984    Interferometer             │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ casa_hogbom_deconv.residual              CASA MS v2      NA           968492     NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ test_hogbom_multisrc.psf                 CASA MS v2      NA           972188     NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ test_hogbom_multisrc.residual            CASA MS v2      NA           959913     NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ refim_point_im.psf                       CASA MS v2      NA           238662     NA                         │\n",
-       "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n",
-       "│ refim_point_im.residual                  CASA MS v2      NA           242965     NA                         │\n",
-       "└─────────────────────────────────────────┴────────────────┴─────────────┴───────────┴────────────────────────────┘\n",
-       "
\n" - ], - "text/plain": [ - "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", - "┃\u001b[1m \u001b[0m\u001b[1mfile \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mdtype \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mtelescope \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1msize \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mmode \u001b[0m\u001b[1m \u001b[0m┃\n", - "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", - "│\u001b[34m \u001b[0m\u001b[34mea25_cal_small_before_fixed.split.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m150170225\u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mHolography \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mea25_cal_small_after_fixed.split.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m150031008\u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mHolography \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mJ1924-2914.ms.calibrated.split.SPW3 \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m35000000 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mHolography \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mextract_holog_verification.json \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mjson \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m967 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mholog_numerical_verification.json \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mjson \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m1033 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mlocit-input-pha.cal \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA Cal Table\u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m92293 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mantenna location cal table\u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mpanel_cutoff_mask \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mnpy \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m27150 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mheuristic_model \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mbin \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m556 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mpanel-input-data \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m402916 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mna \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAA2-Mid-sim_00000.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSKA Mid \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m14710912 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated Interferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_M8.img.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mzarr \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m12626417 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer Mosaic \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_North.cal.lsrk.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m189716793\u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer Mosaic \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_North.cal.lsrk.split.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m1560578 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer Mosaic \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mcomplex_valued_uv.im \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mimage \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m562110 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mdemo_simulated.im \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mimage \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m15321745 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mno_mask.im \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mimage \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m4252 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34msmall_lofar.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mLOFAR \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m10091260 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34msmall_meerkat.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mMeerKAT \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m2392258 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mglobal_vlbi_gg084b_reduced.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mGLOBAL VLBI\u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m15701018 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLBI \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mVLBA_TL016B_split_lsrk.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLBA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m9399847 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLBI \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mngEHT_E17A10.0.bin0000.source0000_spli…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mngEHT \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m11082603 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated Interferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mvenus_ephem_test.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m16758430 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer Ephemeris \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34msdimaging.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m29718841 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSingle Dish \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mALMA_uid___A002_X1003af4_X75a3.split.a…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m29593547 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer Ephemeris \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mVLASS3.2.sb45755730.eb46170641.60480.1…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m69019704 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer Ephemeris \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mfeather_sim_vla_c1_pI.im \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mimage \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m62246951 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mfeather_sim_sd_c1_pI.im \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mimage \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m67218042 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_fld1_casa_lsrk.ps.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mMsv4 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m9314803 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_fld1_topo.ps.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mMsv4 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m9867649 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_North.cal.lsrk.split.ps.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mMsv4 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m3430000 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mAntennae_North.cal.lsrk.ps.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mMsv4 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m2040000 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mfeather_model_convolved \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mModel \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m61364929 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mfeather.im \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA Image \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m67150892 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mint.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mZarr Image \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m65512355 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34msd.zarr \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mZarr Image \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m67150892 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mska_low_sim_18s.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSKA Low \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m8866100 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSimulated \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mVLBA_TL016B_split.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLBA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m9402465 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mngEHT_E17A10.0.bin0000.source0000_spli…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mngEHT \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m11099488 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34muid___A002_X1015532_X1926f.small.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m6299859 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSingle Dish \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34muid___A002_Xae00c5_X2e6b.small.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m7351298 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSingle Dish \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34muid___A002_Xced5df_Xf9d9.small.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m7351298 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSingle Dish \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34muid___A002_Xe3a5fd_Xe38e.small.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m16122776 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mSingle Dish \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mSNR_G55_10s.split.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mVLA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m8648349 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m59749_bp_8beams_pattern.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mASKAP \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m8137335 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m59750_altaz_2settings.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mASKAP \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m3669608 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m59754_altaz_2weights_0.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mASKAP \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m3521937 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m59754_altaz_2weights_15.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mASKAP \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m3538081 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m59755_eq_interleave_0.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mASKAP \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m7525050 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m59755_eq_interleave_15.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mASKAP \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m7493404 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mgmrt.ms \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mGMRT \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m2125130 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mchecksum.hash \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mhash \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m20 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mrefim_point_im_casa_hogbom_cleaned.res…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m257051 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34m3c286_Band6_5chans_lsrk_compare_weight…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m22762594 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mtwhya_selfcal_5chans_lsrk_compare_weig…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m7027733 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mtwhya_selfcal_5chans_lsrk_xx_compare_w…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m5271957 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mtwhya_selfcal_11chans_lsrk_robust_0.5_…\u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mALMA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m2555984 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mInterferometer \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mcasa_hogbom_deconv.residual \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m968492 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mtest_hogbom_multisrc.psf \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m972188 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mtest_hogbom_multisrc.residual \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m959913 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mrefim_point_im.psf \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m238662 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "├─────────────────────────────────────────┼────────────────┼─────────────┼───────────┼────────────────────────────┤\n", - "│\u001b[34m \u001b[0m\u001b[34mrefim_point_im.residual \u001b[0m\u001b[34m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mCASA MS v2 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32m242965 \u001b[0m\u001b[32m \u001b[0m│\u001b[32m \u001b[0m\u001b[32mNA \u001b[0m\u001b[32m \u001b[0m│\n", - "└─────────────────────────────────────────┴────────────────┴─────────────┴───────────┴────────────────────────────┘\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "toolviper.utils.data.list_files()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "zinc", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/graph_building_tutorial.ipynb b/docs/graph_building_tutorial.ipynb index 3b96cb5..8d26ece 100644 --- a/docs/graph_building_tutorial.ipynb +++ b/docs/graph_building_tutorial.ipynb @@ -57,13 +57,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "GraphVIPER version 0.0.38 already installed.\n" + "GraphVIPER version 0.0.39 already installed.\n" ] } ], "source": [ "import os\n", "import dask\n", + "import toolviper\n", "\n", "import numpy as np\n", "\n", @@ -103,8 +104,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,111\u001b[0m] \u001b[38;2;255;160;0m WARNING\u001b[0m\u001b[38;2;112;128;144m graphviper: \u001b[0m It is recommended that the local cache directory be set using the \u001b[38;2;50;50;205mdask_local_dir\u001b[0m parameter. \n", - "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,111\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m graphviper: \u001b[0m Running client in synchronous mode. \n" + "[\u001b[38;2;128;05;128m2026-03-10 15:46:25,378\u001b[0m] \u001b[38;2;255;160;0m WARNING\u001b[0m\u001b[38;2;112;128;144m client: \u001b[0m It is recommended that the local cache directory be set using the \u001b[38;2;50;50;205mdask_local_dir\u001b[0m parameter. \n", + "[\u001b[38;2;128;05;128m2026-03-10 15:46:25,378\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m client: \u001b[0m Running client in synchronous mode. \n" ] } ], @@ -135,81 +136,19 @@ "name": "stdout", "output_type": "stream", "text": [ - "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,117\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m graphviper: \u001b[0m Downloading from [cloudflare] .... \n" - ] - }, - { - "data": { - "text/html": [ - "
                                    \n",
-       "  Download List                     \n",
-       " ────────────────────────────────── \n",
-       "  Antennae_North.cal.lsrk.split.ms  \n",
-       "                                    \n",
-       "
\n" - ], - "text/plain": [ - " \n", - " \u001b[1m \u001b[0m\u001b[1mDownload List \u001b[0m\u001b[1m \u001b[0m \n", - " ────────────────────────────────── \n", - " \u001b[35mAntennae_North.cal.lsrk.split.ms\u001b[0m \n", - " \n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,119\u001b[0m] \u001b[38;2;50;50;205m INFO\u001b[0m\u001b[38;2;112;128;144m graphviper: \u001b[0m File exists: Antennae_North.cal.lsrk.split.ms \n" - ] - }, - { - "data": { - "text/html": [ - "
/Users/jsteeb/miniforge3/envs/zinc/lib/python3.13/site-packages/rich/live.py:260: UserWarning: install \"ipywidgets\"\n",
-       "for Jupyter support\n",
-       "  warnings.warn('install \"ipywidgets\" for Jupyter support')\n",
-       "
\n" - ], - "text/plain": [ - "/Users/jsteeb/miniforge3/envs/zinc/lib/python3.13/site-packages/rich/live.py:260: UserWarning: install \"ipywidgets\"\n", - "for Jupyter support\n", - " warnings.warn('install \"ipywidgets\" for Jupyter support')\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,707\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m  graphviper: \u001b[0m Updated partition scheme used: ['DATA_DESC_ID', 'OBS_MODE', 'OBSERVATION_ID'] \n",
-      "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,715\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m  graphviper: \u001b[0m Number of partitions: 4 \n",
-      "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,715\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m  graphviper: \u001b[0m OBSERVATION_ID [0], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [9, 17, 21, 25], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2026-03-05 12:05:48,900\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m  graphviper: \u001b[0m OBSERVATION_ID [1], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [26, 34, 38, 42], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2026-03-05 12:05:49,063\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m  graphviper: \u001b[0m OBSERVATION_ID [2], DDI [0], STATE [32, 33, 34], FIELD [0, 1, 2], SCAN [43], EPHEMERIS [None] \n",
-      "[\u001b[38;2;128;05;128m2026-03-05 12:05:49,211\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m  graphviper: \u001b[0m OBSERVATION_ID [3], DDI [0], STATE [39, 40, 41, 46, 47, 48, 49, 50, 53], FIELD [0, 1, 2], SCAN [48, 56, 60, 64], EPHEMERIS [None] \n"
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:25,381\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m Initializing download... \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:25,382\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m File already exists: /Users/joshua/Development/graphviper/docs/Antennae_North.cal.lsrk.split.ms \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:27,886\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m Updated partition scheme used: ['DATA_DESC_ID', 'OBS_MODE', 'OBSERVATION_ID'] \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:27,888\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m Number of partitions: 4 \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:27,888\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m OBSERVATION_ID [0], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [9, 17, 21, 25], EPHEMERIS [None] \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:28,070\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m OBSERVATION_ID [1], DDI [0], STATE [23, 24, 25, 30, 31, 32, 33, 34, 37], FIELD [0, 1, 2], SCAN [26, 34, 38, 42], EPHEMERIS [None] \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:28,209\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m OBSERVATION_ID [2], DDI [0], STATE [32, 33, 34], FIELD [0, 1, 2], SCAN [43], EPHEMERIS [None] \n",
+      "[\u001b[38;2;128;05;128m2026-03-10 15:46:28,321\u001b[0m] \u001b[38;2;50;50;205m    INFO\u001b[0m\u001b[38;2;112;128;144m      client: \u001b[0m OBSERVATION_ID [3], DDI [0], STATE [39, 40, 41, 46, 47, 48, 49, 50, 53], FIELD [0, 1, 2], SCAN [48, 56, 60, 64], EPHEMERIS [None] \n"
      ]
     }
    ],
    "source": [
-    "from toolviper.utils.data import download\n",
-    "\n",
-    "download(file=\"Antennae_North.cal.lsrk.split.ms\")\n",
+    "toolviper.utils.data.download(file=\"Antennae_North.cal.lsrk.split.ms\")\n",
     "\n",
     "from xradio.measurement_set.convert_msv2_to_processing_set import convert_msv2_to_processing_set\n",
     "\n",
@@ -1018,11 +957,11 @@
        "│       FLAG                        (time, baseline_id, frequency, polarization) bool 36kB dask.array<chunksize=(50, 45, 3, 2), meta=np.ndarray>\n",
        "│       TIME_CENTROID               (time, baseline_id) float64 18kB dask.array<chunksize=(50, 45), meta=np.ndarray>\n",
        "│       UVW                         (time, baseline_id, uvw_label) float64 54kB dask.array<chunksize=(50, 45, 3), meta=np.ndarray>\n",
-       "│       VISIBILITY                  (time, baseline_id, frequency, polarization) complex64 288kB dask.array<chunksize=(50, 45, 3, 2), meta=np.ndarray>\n",
-       "│       WEIGHT                      (time, baseline_id, frequency, polarization) float32 144kB dask.array<chunksize=(50, 45, 3, 2), meta=np.ndarray>\n",
+       "│       VISIBILITY                  (time, baseline_id, frequency, polarization) complex128 576kB dask.array<chunksize=(50, 45, 3, 2), meta=np.ndarray>\n",
+       "│       WEIGHT                      (time, baseline_id, frequency, polarization) float64 288kB dask.array<chunksize=(50, 45, 3, 2), meta=np.ndarray>\n",
        "│   Attributes:\n",
-       "│       creation_date:     2026-03-05T17:05:48.735585+00:00\n",
-       "│       creator:           {'software_name': 'xradio', 'version': '1.1.1'}\n",
+       "│       creation_date:     2026-03-10T06:46:27.899663+00:00\n",
+       "│       creator:           {'software_name': 'xradio', 'version': '1.1.2'}\n",
        "│       data_groups:       {'base': {'correlated_data': 'VISIBILITY', 'date': '20...\n",
        "│       observation_info:  {'execution_block_UID': 'uid://A002/X1ff7b0/Xb', 'obse...\n",
        "│       processor_info:    {'sub_type': 'ALMA_CORRELATOR_MODE', 'type': 'CORRELAT...\n",
@@ -1074,7 +1013,7 @@
        "            WIND_DIRECTION       (station_name, time_weather) float64 4kB dask.array<chunksize=(2, 259), meta=np.ndarray>\n",
        "            WIND_SPEED           (station_name, time_weather) float64 4kB dask.array<chunksize=(2, 259), meta=np.ndarray>\n",
        "        Attributes:\n",
-       "            type:     weather