Skip to content

Instantly share code, notes, and snippets.

@d3v-null
Last active January 12, 2023 09:24
Show Gist options
  • Save d3v-null/edc40a17724921af3e104a5a4ac0417b to your computer and use it in GitHub Desktop.
Save d3v-null/edc40a17724921af3e104a5a4ac0417b to your computer and use it in GitHub Desktop.
How to get the timestamps from MWA uvfits and measurement sets, what it looks like if --ignore-dut1 is enabled
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Successful readonly open of default-locked table /data/dev/importuvfits/1088370912/cal-dut1/hyp_1088370912_30l_src4k_8s_80kHz.ms: 23 columns, 112014 rows\n",
"Successful readonly open of default-locked table /data/dev/importuvfits/1088370912/cal-dut1/hyp_1088370912_30l_src4k_8s_80kHz.importuv.ms: 23 columns, 112014 rows\n",
"Successful readonly open of default-locked table /data/dev/importuvfits/1088370912/cal-nodut1/hyp_1088370912_30l_src4k_8s_80kHz.ms: 23 columns, 112014 rows\n",
"Successful readonly open of default-locked table /data/dev/importuvfits/1088370912/cal-nodut1/hyp_1088370912_30l_src4k_8s_80kHz.importuv.ms: 23 columns, 112014 rows\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cal-dut1.uvfits</th>\n",
" <th>cal-dut1.ms</th>\n",
" <th>cal-dut1.importuv.ms</th>\n",
" <th>cal-nodut1.uvfits</th>\n",
" <th>cal-nodut1.ms</th>\n",
" <th>cal-nodut1.importuv.ms</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1088370915.9998</td>\n",
" <td>1088370916.0000</td>\n",
" <td>1088370915.9998</td>\n",
" <td>1088370915.9998</td>\n",
" <td>1088370916.0000</td>\n",
" <td>1088370915.9998</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1088370924.0001</td>\n",
" <td>1088370924.0000</td>\n",
" <td>1088370924.0001</td>\n",
" <td>1088370924.0001</td>\n",
" <td>1088370924.0000</td>\n",
" <td>1088370924.0001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1088370931.9997</td>\n",
" <td>1088370932.0000</td>\n",
" <td>1088370931.9997</td>\n",
" <td>1088370931.9997</td>\n",
" <td>1088370932.0000</td>\n",
" <td>1088370931.9997</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1088370940.0000</td>\n",
" <td>1088370940.0000</td>\n",
" <td>1088370940.0000</td>\n",
" <td>1088370940.0000</td>\n",
" <td>1088370940.0000</td>\n",
" <td>1088370940.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1088370948.0003</td>\n",
" <td>1088370948.0000</td>\n",
" <td>1088370948.0003</td>\n",
" <td>1088370948.0003</td>\n",
" <td>1088370948.0000</td>\n",
" <td>1088370948.0003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1088370955.9999</td>\n",
" <td>1088370956.0000</td>\n",
" <td>1088370955.9999</td>\n",
" <td>1088370955.9999</td>\n",
" <td>1088370956.0000</td>\n",
" <td>1088370955.9999</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1088370964.0002</td>\n",
" <td>1088370964.0000</td>\n",
" <td>1088370964.0002</td>\n",
" <td>1088370964.0002</td>\n",
" <td>1088370964.0000</td>\n",
" <td>1088370964.0002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1088370971.9998</td>\n",
" <td>1088370972.0000</td>\n",
" <td>1088370971.9998</td>\n",
" <td>1088370971.9998</td>\n",
" <td>1088370972.0000</td>\n",
" <td>1088370971.9998</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1088370980.0001</td>\n",
" <td>1088370980.0000</td>\n",
" <td>1088370980.0001</td>\n",
" <td>1088370980.0001</td>\n",
" <td>1088370980.0000</td>\n",
" <td>1088370980.0001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1088370987.9997</td>\n",
" <td>1088370988.0000</td>\n",
" <td>1088370987.9997</td>\n",
" <td>1088370987.9997</td>\n",
" <td>1088370988.0000</td>\n",
" <td>1088370987.9997</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1088370996.0000</td>\n",
" <td>1088370996.0000</td>\n",
" <td>1088370996.0000</td>\n",
" <td>1088370996.0000</td>\n",
" <td>1088370996.0000</td>\n",
" <td>1088370996.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1088371004.0003</td>\n",
" <td>1088371004.0000</td>\n",
" <td>1088371004.0003</td>\n",
" <td>1088371004.0003</td>\n",
" <td>1088371004.0000</td>\n",
" <td>1088371004.0003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1088371011.9999</td>\n",
" <td>1088371012.0000</td>\n",
" <td>1088371011.9999</td>\n",
" <td>1088371011.9999</td>\n",
" <td>1088371012.0000</td>\n",
" <td>1088371011.9999</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1088371020.0002</td>\n",
" <td>1088371020.0000</td>\n",
" <td>1088371020.0002</td>\n",
" <td>1088371020.0002</td>\n",
" <td>1088371020.0000</td>\n",
" <td>1088371020.0002</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cal-dut1.uvfits cal-dut1.ms cal-dut1.importuv.ms cal-nodut1.uvfits \\\n",
"0 1088370915.9998 1088370916.0000 1088370915.9998 1088370915.9998 \n",
"1 1088370924.0001 1088370924.0000 1088370924.0001 1088370924.0001 \n",
"2 1088370931.9997 1088370932.0000 1088370931.9997 1088370931.9997 \n",
"3 1088370940.0000 1088370940.0000 1088370940.0000 1088370940.0000 \n",
"4 1088370948.0003 1088370948.0000 1088370948.0003 1088370948.0003 \n",
"5 1088370955.9999 1088370956.0000 1088370955.9999 1088370955.9999 \n",
"6 1088370964.0002 1088370964.0000 1088370964.0002 1088370964.0002 \n",
"7 1088370971.9998 1088370972.0000 1088370971.9998 1088370971.9998 \n",
"8 1088370980.0001 1088370980.0000 1088370980.0001 1088370980.0001 \n",
"9 1088370987.9997 1088370988.0000 1088370987.9997 1088370987.9997 \n",
"10 1088370996.0000 1088370996.0000 1088370996.0000 1088370996.0000 \n",
"11 1088371004.0003 1088371004.0000 1088371004.0003 1088371004.0003 \n",
"12 1088371011.9999 1088371012.0000 1088371011.9999 1088371011.9999 \n",
"13 1088371020.0002 1088371020.0000 1088371020.0002 1088371020.0002 \n",
"\n",
" cal-nodut1.ms cal-nodut1.importuv.ms \n",
"0 1088370916.0000 1088370915.9998 \n",
"1 1088370924.0000 1088370924.0001 \n",
"2 1088370932.0000 1088370931.9997 \n",
"3 1088370940.0000 1088370940.0000 \n",
"4 1088370948.0000 1088370948.0003 \n",
"5 1088370956.0000 1088370955.9999 \n",
"6 1088370964.0000 1088370964.0002 \n",
"7 1088370972.0000 1088370971.9998 \n",
"8 1088370980.0000 1088370980.0001 \n",
"9 1088370988.0000 1088370987.9997 \n",
"10 1088370996.0000 1088370996.0000 \n",
"11 1088371004.0000 1088371004.0003 \n",
"12 1088371012.0000 1088371011.9999 \n",
"13 1088371020.0000 1088371020.0002 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from astropy.io import fits\n",
"from astropy.time import Time\n",
"from casacore.tables import table\n",
"\n",
"def get_time_ms(name):\n",
" tb = table(name)\n",
" raw = tb.getcol('TIME') / 86400.0\n",
" timescale = tb.getcolkeyword('TIME', 'MEASINFO')['Ref'].lower()\n",
" timesteps = Time(raw, format='mjd', scale=timescale)\n",
" tb.close()\n",
" return timesteps.to_value('gps')\n",
"\n",
"\n",
"def get_time_uvfits(name):\n",
" hdus = fits.open(name)\n",
" raw = hdus[0].data.par('DATE')\n",
" timesteps = Time(raw, format='jd')\n",
" return timesteps.to_value('gps')\n",
"\n",
"\n",
"def get_time(name):\n",
" ext = name.split('.')[-1]\n",
" if ext == 'ms':\n",
" return get_time_ms(name)\n",
" else:\n",
" return get_time_uvfits(name)\n",
"\n",
"data = {}\n",
"for prefix in [\"cal-dut1\", \"cal-nodut1\"]:\n",
" for suffix in [\"uvfits\", \"ms\", \"importuv.ms\"]:\n",
" name = f\"{prefix}.{suffix}\"\n",
" data[name] = np.unique(get_time(f\"/data/dev/importuvfits/1088370912/{prefix}/hyp_1088370912_30l_src4k_8s_80kHz.{suffix}\"))\n",
"\n",
"pd.set_option(\"display.float_format\", \"{:12.4f}\".format)\n",
"df = pd.DataFrame(data)\n",
"df"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"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.10.8"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "de0978090da8cb06fe5c589826b392744f0ad2c6aba2abdb12885a5fd86a22c0"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment