feat: finished autoencoder and classifier by LTD

This commit is contained in:
2024-10-06 22:59:01 +02:00
parent aea4816827
commit 75f262460b
5 changed files with 945 additions and 818 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,452 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 10,
"id": "9f49724a-a1cc-4973-8919-68d31c6186f1",
"metadata": {},
"outputs": [],
"source": [
"# imports\n",
"\n",
"import numpy as np\n",
"import tensorflow as tf\n",
"from tensorflow.keras import layers, models\n",
"from tensorflow.keras.utils import to_categorical\n",
"import scipy\n",
"import pandas as pd\n",
"from obspy import read\n",
"from datetime import datetime, timedelta\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "8a233e36-5810-4cfb-b6d1-452acf432793",
"metadata": {},
"outputs": [],
"source": [
"# three types of fake data for testing\n",
"\n",
"# def signal1(A, t):\n",
"# return A * np.sin(30*t) * np.exp(-t) + np.random.randn(t.shape[0])\n",
"\n",
"# def signal2(A, t):\n",
"# return A * np.sin(30.5*t) * np.exp(-t)+ np.random.randn(t.shape[0])\n",
"\n",
"# def signal3(A, t):\n",
"# return A * np.sin(31*t) * np.exp(-t) + np.random.randn(t.shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f9d9086a-538e-4410-afd3-333093722ff1",
"metadata": {},
"outputs": [],
"source": [
"# tests\n",
"A = 2\n",
"# t = np.linspace(0.0001, 5, 40000)\n",
"# s1 = signal1(A, t)\n",
"# s2 = signal2(A, t)\n",
"# s3 = signal3(A, t)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "d7510935-dd2c-4484-96b5-eefec9837f33",
"metadata": {},
"outputs": [],
"source": [
"# plot fn for convenience\n",
"def plot(x, y, title):\n",
" plt.figure()\n",
" plt.plot(x, y, linewidth=0.7, c='blue')\n",
" plt.title(title)\n",
" plt.savefig(title + '.png')\n",
" plt.show()\n",
"\n",
"# plot(t, s1, 'Example1')\n",
"# plot(t, s2, 'Example2')\n",
"# plot(t, s3, 'Example3')\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "3cfb129b-0ce8-4790-94ae-cb31fa3e0ec4",
"metadata": {},
"outputs": [],
"source": [
"# # Number of samples and length of each signal\n",
"# n_samples = 200\n",
"# signal_length = 40000\n",
"\n",
"# # Initialize arrays\n",
"# X_data = np.zeros((n_samples, signal_length))\n",
"# y_labels = np.zeros(n_samples)\n",
"\n",
"# # time array\n",
"# t = np.linspace(0, 1, signal_length)\n",
"\n",
"# # Generate samples\n",
"# for i in range(n_samples):\n",
"# if i < n_samples // 3:\n",
"# X_data[i] = signal1(A, t)\n",
"# y_labels[i] = 0\n",
"# elif i < 2 * n_samples // 3:\n",
"# X_data[i] = signal2(A, t)\n",
"# y_labels[i] = 1\n",
"# else:\n",
"# X_data[i] = signal3(A, t)\n",
"# y_labels[i] = 2\n",
"\n",
"# # One-hot encode the labels\n",
"# y_labels_one_hot = to_categorical(y_labels, num_classes=3)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "f09275a3-2673-4d61-9903-8719b9e1b161",
"metadata": {},
"outputs": [],
"source": [
"test_filename = 'xa.s12.00.mhz.1970-03-25HR00_evid00003_trimmed_7000_sec'\n",
"\n",
"data_directory = './'\n",
"mseed_file = f'{data_directory}{test_filename}.mseed'\n",
"st = read(mseed_file)\n",
"st\n",
"\n",
"tr = st.traces[0].copy()\n",
"tr_times = tr.times()\n",
"tr_data = tr.data\n",
"\n",
"# plot(tr_times, tr_data, 'Mseed Example')\n",
"\n",
"# print(tr_times.shape)\n",
"\n",
"def read_all_mseed_files(data_directory, target_length=None):\n",
" # List all files in the directory with \".mseed\" extension\n",
" mseed_files = [f for f in os.listdir(data_directory) if f.endswith('.mseed')]\n",
" \n",
" data_matrix = []\n",
" \n",
" # Loop through all the mseed files and extract time and data series\n",
" for filename in mseed_files:\n",
" st = read(os.path.join(data_directory, filename))\n",
" tr = st.traces[0].copy() \n",
" tr_data = tr.data \n",
" \n",
" if target_length is None:\n",
" target_length = len(tr_data) # Set target length to the first trace's length\n",
" \n",
" # Pad or trim the data to the target length\n",
" if len(tr_data) < target_length:\n",
" # Pad with zeros if shorter\n",
" tr_data = np.pad(tr_data, (0, target_length - len(tr_data)), mode='constant')\n",
" else:\n",
" # Trim if longer\n",
" tr_data = tr_data[:target_length]\n",
" \n",
" data_matrix.append(tr_data)\n",
" \n",
" # Convert the list to a numpy matrix\n",
" data_matrix = np.array(data_matrix)\n",
" \n",
" return data_matrix\n",
"\n",
"X_data = read_all_mseed_files(data_directory, 46376)\n",
"\n",
"# plot(tr_times, data[3], 'Example 3')"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "47c0ecea-e0fa-4ebf-99db-f6c8e77a72e0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1., 0., 0.])"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"from sklearn.preprocessing import OneHotEncoder\n",
"\n",
"# read csv\n",
"df = pd.read_csv('catalog.csv', header=None, names=['data'], skiprows=1)\n",
"\n",
"# split cells\n",
"df['label'] = df['data'].apply(lambda x: x.split(',')[-1].strip())\n",
"\n",
"# Step 3: One-hot encode the labels\n",
"encoder = OneHotEncoder(sparse_output=False)\n",
"y_label = encoder.fit_transform(df['label'].values.reshape(-1, 1))\n",
"\n",
"\n",
"\n",
"y_label[4]\n",
"\n",
"# one-hot format: [deep, impact, shallow]"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "092a184e-a79f-462a-8017-741471a05ae9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"functional_2\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"functional_2\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ input_layer_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">InputLayer</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">46376</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_8 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">256</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">11,872,512</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_9 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">32,896</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_10 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">8,256</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_11 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">3</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">195</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
],
"text/plain": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ input_layer_2 (\u001b[38;5;33mInputLayer\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m46376\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_8 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m11,872,512\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_9 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m32,896\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_10 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m8,256\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_11 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m3\u001b[0m) │ \u001b[38;5;34m195\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">11,913,859</span> (45.45 MB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m11,913,859\u001b[0m (45.45 MB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">11,913,859</span> (45.45 MB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m11,913,859\u001b[0m (45.45 MB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"input_shape = (46376,)\n",
"\n",
"# Build the classifier model\n",
"def build_classifier(input_shape):\n",
" inputs = layers.Input(shape=input_shape)\n",
" x = layers.Dense(256, activation='relu')(inputs)\n",
" x = layers.Dense(128, activation='relu')(x)\n",
" x = layers.Dense(64, activation='relu')(x)\n",
" \n",
" # Output layer (one hot encoding)\n",
" outputs = layers.Dense(3, activation='softmax')(x)\n",
" \n",
" model = models.Model(inputs, outputs)\n",
" return model\n",
"\n",
"classifier = build_classifier(input_shape)\n",
"\n",
"# Compile the model\n",
"classifier.compile(optimizer='adam', \n",
" loss='categorical_crossentropy', \n",
" metrics=['CategoricalAccuracy'])\n",
"\n",
"# Display model\n",
"classifier.summary()"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "ec34ffe0-d4ed-484d-b82a-c3270083f082",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 374ms/step - CategoricalAccuracy: 0.3743 - loss: 1.0963 - val_CategoricalAccuracy: 0.8750 - val_loss: 1.0815\n",
"Epoch 2/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 100ms/step - CategoricalAccuracy: 0.8576 - loss: 1.0794 - val_CategoricalAccuracy: 0.8750 - val_loss: 1.0604\n",
"Epoch 3/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 99ms/step - CategoricalAccuracy: 0.8160 - loss: 1.0603 - val_CategoricalAccuracy: 0.8750 - val_loss: 1.0354\n",
"Epoch 4/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 101ms/step - CategoricalAccuracy: 0.8576 - loss: 1.0334 - val_CategoricalAccuracy: 0.8750 - val_loss: 1.0057\n",
"Epoch 5/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 103ms/step - CategoricalAccuracy: 0.8264 - loss: 1.0080 - val_CategoricalAccuracy: 0.8750 - val_loss: 0.9703\n",
"Epoch 6/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 101ms/step - CategoricalAccuracy: 0.8264 - loss: 0.9747 - val_CategoricalAccuracy: 0.8750 - val_loss: 0.9285\n",
"Epoch 7/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 106ms/step - CategoricalAccuracy: 0.8264 - loss: 0.9361 - val_CategoricalAccuracy: 0.8750 - val_loss: 0.8798\n",
"Epoch 8/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 101ms/step - CategoricalAccuracy: 0.8368 - loss: 0.8870 - val_CategoricalAccuracy: 0.8750 - val_loss: 0.8243\n",
"Epoch 9/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 101ms/step - CategoricalAccuracy: 0.8368 - loss: 0.8350 - val_CategoricalAccuracy: 0.8750 - val_loss: 0.7626\n",
"Epoch 10/10\n",
"\u001b[1m2/2\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 102ms/step - CategoricalAccuracy: 0.8368 - loss: 0.7783 - val_CategoricalAccuracy: 0.8750 - val_loss: 0.6969\n"
]
},
{
"data": {
"text/plain": [
"<keras.src.callbacks.history.History at 0x179aad80c50>"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# training\n",
"classifier.fit(X_data, y_label, epochs=10, batch_size=32, validation_split=0.2)"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "2bd36515-2777-4d49-82ec-b50f1e0904a0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step\n",
"[[0.23078983 0.55988955 0.20932065]]\n"
]
}
],
"source": [
"# test\n",
"\n",
"test = X_data[8]\n",
"test = test.reshape(1, -1)\n",
"\n",
"# Now call predict\n",
"prediction = classifier.predict(test)\n",
"\n",
"print(prediction)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "931bb66b-7171-4630-9753-d9ff7fa3cb78",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "077d77a2-c3bc-4606-b4bb-f420ff123817",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "711329a8-0b67-4afe-b455-3f8a296a622e",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -0,0 +1,77 @@
filename,time_abs(%Y-%m-%dT%H:%M:%S.%f),time_rel(sec),evid,mq_type
xa.s12.00.mhz.1970-01-19HR00_evid00002,1970-01-19T20:25:00.000000,73500.0,evid00002,impact_mq
xa.s12.00.mhz.1970-03-25HR00_evid00003,1970-03-25T03:32:00.000000,12720.0,evid00003,impact_mq
xa.s12.00.mhz.1970-03-26HR00_evid00004,1970-03-26T20:17:00.000000,73020.0,evid00004,impact_mq
xa.s12.00.mhz.1970-04-25HR00_evid00006,1970-04-25T01:14:00.000000,4440.0,evid00006,impact_mq
xa.s12.00.mhz.1970-04-26HR00_evid00007,1970-04-26T14:29:00.000000,52140.0,evid00007,deep_mq
xa.s12.00.mhz.1970-06-15HR00_evid00008,1970-06-15T19:00:00.000000,68400.0,evid00008,impact_mq
xa.s12.00.mhz.1970-06-26HR00_evid00009,1970-06-26T20:01:00.000000,72060.0,evid00009,impact_mq
xa.s12.00.mhz.1970-07-20HR00_evid00010,1970-07-20T05:06:00.000000,18360.0,evid00010,impact_mq
xa.s12.00.mhz.1970-07-20HR00_evid00011,1970-07-20T11:44:00.000000,42240.0,evid00011,deep_mq
xa.s12.00.mhz.1970-09-26HR00_evid00013,1970-09-26T19:57:00.000000,71820.0,evid00013,impact_mq
xa.s12.00.mhz.1970-10-24HR00_evid00014,1970-10-24T11:31:00.000000,41460.0,evid00014,impact_mq
xa.s12.00.mhz.1970-11-12HR00_evid00015,1970-11-12T12:50:00.000000,46200.0,evid00015,impact_mq
xa.s12.00.mhz.1970-12-11HR00_evid00017,1970-12-11T07:22:00.000000,26520.0,evid00017,impact_mq
xa.s12.00.mhz.1970-12-27HR00_evid00019,1970-12-27T20:34:00.000000,74040.0,evid00019,deep_mq
xa.s12.00.mhz.1970-12-31HR00_evid00021,1970-12-31T15:41:00.000000,56460.0,evid00021,deep_mq
xa.s12.00.mhz.1971-01-15HR00_evid00022,1971-01-15T12:40:00.000000,45600.0,evid00022,impact_mq
xa.s12.00.mhz.1971-01-28HR00_evid00023,1971-01-28T14:59:00.000000,53940.0,evid00023,deep_mq
xa.s12.00.mhz.1971-01-29HR00_evid00024,1971-01-29T18:21:00.000000,66060.0,evid00024,impact_mq
xa.s12.00.mhz.1971-02-09HR00_evid00026,1971-02-09T03:42:00.000000,13320.0,evid00026,impact_mq
xa.s12.00.mhz.1971-03-25HR00_evid00028,1971-03-25T15:18:00.000000,55080.0,evid00028,impact_mq
xa.s12.00.mhz.1971-04-13HR00_evid00029,1971-04-13T12:55:00.000000,46500.0,evid00029,impact_mq
xa.s12.00.mhz.1971-04-17HR00_evid00030,1971-04-17T07:04:00.000000,25440.0,evid00030,shallow_mq
xa.s12.00.mhz.1971-05-12HR00_evid00031,1971-05-12T08:05:00.000000,29100.0,evid00031,impact_mq
xa.s12.00.mhz.1971-05-12HR00_evid00032,1971-05-12T09:45:00.000000,35100.0,evid00032,impact_mq
xa.s12.00.mhz.1971-05-13HR00_evid00033,1971-05-13T03:00:00.000000,10800.0,evid00033,impact_mq
xa.s12.00.mhz.1971-05-23HR00_evid00034,1971-05-23T22:20:00.000000,80400.0,evid00034,impact_mq
xa.s12.00.mhz.1971-06-12HR00_evid00035,1971-06-12T10:51:00.000000,39060.0,evid00035,impact_mq
xa.s12.00.mhz.1971-09-25HR00_evid00042,1971-09-25T08:57:00.000000,32220.0,evid00042,impact_mq
xa.s12.00.mhz.1971-10-18HR00_evid00043,1971-10-18T03:19:00.000000,11940.0,evid00043,impact_mq
xa.s12.00.mhz.1971-10-20HR00_evid00044,1971-10-20T18:08:00.000000,65280.0,evid00044,impact_mq
xa.s12.00.mhz.1971-10-31HR00_evid00045,1971-10-31T05:30:00.000000,19800.0,evid00045,impact_mq
xa.s12.00.mhz.1971-11-14HR00_evid00046,1971-11-14T04:17:00.000000,15420.0,evid00046,impact_mq
xa.s12.00.mhz.1972-01-04HR00_evid00049,1972-01-04T06:35:00.000000,23700.0,evid00049,impact_mq
xa.s12.00.mhz.1972-03-12HR00_evid00052,1972-03-12T18:00:00.000000,64800.0,evid00052,impact_mq
xa.s12.00.mhz.1972-05-11HR00_evid00055,1972-05-11T13:35:00.000000,48900.0,evid00055,impact_mq
xa.s12.00.mhz.1972-06-16HR00_evid00060,1972-06-16T16:11:00.000000,58260.0,evid00060,impact_mq
xa.s12.00.mhz.1972-07-17HR00_evid00067,1972-07-17T07:50:00.000000,28200.0,evid00067,impact_mq
xa.s12.00.mhz.1972-07-17HR00_evid00068,1972-07-17T21:56:00.000000,78960.0,evid00068,impact_mq
xa.s12.00.mhz.1972-07-28HR00_evid00070,1972-07-28T02:23:00.000000,8580.0,evid00070,impact_mq
xa.s12.00.mhz.1972-07-31HR00_evid00071,1972-07-31T18:08:00.000000,65280.0,evid00071,impact_mq
xa.s12.00.mhz.1972-12-02HR00_evid00083,1972-12-02T07:58:00.000000,28680.0,evid00083,impact_mq
xa.s12.00.mhz.1972-12-03HR00_evid00084,1972-12-03T02:38:00.000000,9480.0,evid00084,impact_mq
xa.s12.00.mhz.1973-01-18HR00_evid00088,1973-01-18T23:01:00.000000,82860.0,evid00088,impact_mq
xa.s12.00.mhz.1973-01-31HR00_evid00091,1973-01-31T00:44:00.000000,2640.0,evid00091,impact_mq
xa.s12.00.mhz.1973-03-01HR00_evid00093,1973-03-01T07:15:00.000000,26100.0,evid00093,deep_mq
xa.s12.00.mhz.1973-03-13HR00_evid00094,1973-03-13T08:01:00.000000,28860.0,evid00094,shallow_mq
xa.s12.00.mhz.1973-03-24HR00_evid00097,1973-03-24T19:23:00.000000,69780.0,evid00097,impact_mq
xa.s12.00.mhz.1973-05-14HR00_evid00104,1973-05-14T00:44:00.000000,2640.0,evid00104,impact_mq
xa.s12.00.mhz.1973-06-05HR00_evid00107,1973-06-05T02:38:00.000000,9480.0,evid00107,impact_mq
xa.s12.00.mhz.1973-06-05HR00_evid00108,1973-06-05T11:10:00.000000,40200.0,evid00108,deep_mq
xa.s12.00.mhz.1973-06-18HR00_evid00109,1973-06-18T01:42:00.000000,6120.0,evid00109,impact_mq
xa.s12.00.mhz.1973-06-27HR00_evid00112,1973-06-27T18:36:00.000000,66960.0,evid00112,impact_mq
xa.s12.00.mhz.1973-07-03HR00_evid00113,1973-07-03T18:15:00.000000,65700.0,evid00113,impact_mq
xa.s12.00.mhz.1973-07-04HR00_evid00114,1973-07-04T02:46:00.000000,9960.0,evid00114,impact_mq
xa.s12.00.mhz.1973-07-20HR00_evid00117,1973-07-20T19:02:00.000000,68520.0,evid00117,deep_mq
xa.s12.00.mhz.1973-07-28HR00_evid00120,1973-07-28T00:52:00.000000,3120.0,evid00120,impact_mq
xa.s12.00.mhz.1973-07-29HR00_evid00121,1973-07-29T23:31:00.000000,84660.0,evid00121,impact_mq
xa.s12.00.mhz.1973-08-21HR00_evid00127,1973-08-21T12:17:00.000000,44220.0,evid00127,impact_mq
xa.s12.00.mhz.1974-01-10HR00_evid00136,1974-01-10T23:21:00.000000,84060.0,evid00136,impact_mq
xa.s12.00.mhz.1974-02-07HR00_evid00137,1974-02-07T06:21:00.000000,22860.0,evid00137,impact_mq
xa.s12.00.mhz.1974-02-12HR00_evid00138,1974-02-12T22:30:00.000000,81000.0,evid00138,impact_mq
xa.s12.00.mhz.1974-03-25HR00_evid00140,1974-03-25T16:58:00.000000,61080.0,evid00140,impact_mq
xa.s12.00.mhz.1974-04-08HR00_evid00141,1974-04-08T08:40:00.000000,31200.0,evid00141,impact_mq
xa.s12.00.mhz.1974-04-19HR00_evid00142,1974-04-19T18:34:00.000000,66840.0,evid00142,impact_mq
xa.s12.00.mhz.1974-04-26HR00_evid00144,1974-04-26T09:18:00.000000,33480.0,evid00144,deep_mq
xa.s12.00.mhz.1974-04-27HR00_evid00145,1974-04-27T14:18:00.000000,51480.0,evid00145,impact_mq
xa.s12.00.mhz.1974-06-25HR00_evid00149,1974-06-25T00:23:00.000000,1380.0,evid00149,impact_mq
xa.s12.00.mhz.1974-07-06HR00_evid00150,1974-07-06T02:57:00.000000,10620.0,evid00150,impact_mq
xa.s12.00.mhz.1974-07-06HR00_evid00151,1974-07-06T14:14:00.000000,51240.0,evid00151,impact_mq
xa.s12.00.mhz.1974-07-11HR00_evid00152,1974-07-11T00:52:00.000000,3120.0,evid00152,shallow_mq
xa.s12.00.mhz.1974-07-17HR00_evid00153,1974-07-17T12:05:00.000000,43500.0,evid00153,impact_mq
xa.s12.00.mhz.1974-10-14HR00_evid00156,1974-10-14T17:43:00.000000,63780.0,evid00156,impact_mq
xa.s12.00.mhz.1975-04-12HR00_evid00191,1975-04-12T18:15:00.000000,65700.0,evid00191,impact_mq
xa.s12.00.mhz.1975-05-04HR00_evid00192,1975-05-04T10:05:00.000000,36300.0,evid00192,impact_mq
xa.s12.00.mhz.1975-06-24HR00_evid00196,1975-06-24T16:03:00.000000,57780.0,evid00196,impact_mq
xa.s12.00.mhz.1975-06-26HR00_evid00198,1975-06-26T03:24:00.000000,12240.0,evid00198,impact_mq
1 filename time_abs(%Y-%m-%dT%H:%M:%S.%f) time_rel(sec) evid mq_type
2 xa.s12.00.mhz.1970-01-19HR00_evid00002 1970-01-19T20:25:00.000000 73500.0 evid00002 impact_mq
3 xa.s12.00.mhz.1970-03-25HR00_evid00003 1970-03-25T03:32:00.000000 12720.0 evid00003 impact_mq
4 xa.s12.00.mhz.1970-03-26HR00_evid00004 1970-03-26T20:17:00.000000 73020.0 evid00004 impact_mq
5 xa.s12.00.mhz.1970-04-25HR00_evid00006 1970-04-25T01:14:00.000000 4440.0 evid00006 impact_mq
6 xa.s12.00.mhz.1970-04-26HR00_evid00007 1970-04-26T14:29:00.000000 52140.0 evid00007 deep_mq
7 xa.s12.00.mhz.1970-06-15HR00_evid00008 1970-06-15T19:00:00.000000 68400.0 evid00008 impact_mq
8 xa.s12.00.mhz.1970-06-26HR00_evid00009 1970-06-26T20:01:00.000000 72060.0 evid00009 impact_mq
9 xa.s12.00.mhz.1970-07-20HR00_evid00010 1970-07-20T05:06:00.000000 18360.0 evid00010 impact_mq
10 xa.s12.00.mhz.1970-07-20HR00_evid00011 1970-07-20T11:44:00.000000 42240.0 evid00011 deep_mq
11 xa.s12.00.mhz.1970-09-26HR00_evid00013 1970-09-26T19:57:00.000000 71820.0 evid00013 impact_mq
12 xa.s12.00.mhz.1970-10-24HR00_evid00014 1970-10-24T11:31:00.000000 41460.0 evid00014 impact_mq
13 xa.s12.00.mhz.1970-11-12HR00_evid00015 1970-11-12T12:50:00.000000 46200.0 evid00015 impact_mq
14 xa.s12.00.mhz.1970-12-11HR00_evid00017 1970-12-11T07:22:00.000000 26520.0 evid00017 impact_mq
15 xa.s12.00.mhz.1970-12-27HR00_evid00019 1970-12-27T20:34:00.000000 74040.0 evid00019 deep_mq
16 xa.s12.00.mhz.1970-12-31HR00_evid00021 1970-12-31T15:41:00.000000 56460.0 evid00021 deep_mq
17 xa.s12.00.mhz.1971-01-15HR00_evid00022 1971-01-15T12:40:00.000000 45600.0 evid00022 impact_mq
18 xa.s12.00.mhz.1971-01-28HR00_evid00023 1971-01-28T14:59:00.000000 53940.0 evid00023 deep_mq
19 xa.s12.00.mhz.1971-01-29HR00_evid00024 1971-01-29T18:21:00.000000 66060.0 evid00024 impact_mq
20 xa.s12.00.mhz.1971-02-09HR00_evid00026 1971-02-09T03:42:00.000000 13320.0 evid00026 impact_mq
21 xa.s12.00.mhz.1971-03-25HR00_evid00028 1971-03-25T15:18:00.000000 55080.0 evid00028 impact_mq
22 xa.s12.00.mhz.1971-04-13HR00_evid00029 1971-04-13T12:55:00.000000 46500.0 evid00029 impact_mq
23 xa.s12.00.mhz.1971-04-17HR00_evid00030 1971-04-17T07:04:00.000000 25440.0 evid00030 shallow_mq
24 xa.s12.00.mhz.1971-05-12HR00_evid00031 1971-05-12T08:05:00.000000 29100.0 evid00031 impact_mq
25 xa.s12.00.mhz.1971-05-12HR00_evid00032 1971-05-12T09:45:00.000000 35100.0 evid00032 impact_mq
26 xa.s12.00.mhz.1971-05-13HR00_evid00033 1971-05-13T03:00:00.000000 10800.0 evid00033 impact_mq
27 xa.s12.00.mhz.1971-05-23HR00_evid00034 1971-05-23T22:20:00.000000 80400.0 evid00034 impact_mq
28 xa.s12.00.mhz.1971-06-12HR00_evid00035 1971-06-12T10:51:00.000000 39060.0 evid00035 impact_mq
29 xa.s12.00.mhz.1971-09-25HR00_evid00042 1971-09-25T08:57:00.000000 32220.0 evid00042 impact_mq
30 xa.s12.00.mhz.1971-10-18HR00_evid00043 1971-10-18T03:19:00.000000 11940.0 evid00043 impact_mq
31 xa.s12.00.mhz.1971-10-20HR00_evid00044 1971-10-20T18:08:00.000000 65280.0 evid00044 impact_mq
32 xa.s12.00.mhz.1971-10-31HR00_evid00045 1971-10-31T05:30:00.000000 19800.0 evid00045 impact_mq
33 xa.s12.00.mhz.1971-11-14HR00_evid00046 1971-11-14T04:17:00.000000 15420.0 evid00046 impact_mq
34 xa.s12.00.mhz.1972-01-04HR00_evid00049 1972-01-04T06:35:00.000000 23700.0 evid00049 impact_mq
35 xa.s12.00.mhz.1972-03-12HR00_evid00052 1972-03-12T18:00:00.000000 64800.0 evid00052 impact_mq
36 xa.s12.00.mhz.1972-05-11HR00_evid00055 1972-05-11T13:35:00.000000 48900.0 evid00055 impact_mq
37 xa.s12.00.mhz.1972-06-16HR00_evid00060 1972-06-16T16:11:00.000000 58260.0 evid00060 impact_mq
38 xa.s12.00.mhz.1972-07-17HR00_evid00067 1972-07-17T07:50:00.000000 28200.0 evid00067 impact_mq
39 xa.s12.00.mhz.1972-07-17HR00_evid00068 1972-07-17T21:56:00.000000 78960.0 evid00068 impact_mq
40 xa.s12.00.mhz.1972-07-28HR00_evid00070 1972-07-28T02:23:00.000000 8580.0 evid00070 impact_mq
41 xa.s12.00.mhz.1972-07-31HR00_evid00071 1972-07-31T18:08:00.000000 65280.0 evid00071 impact_mq
42 xa.s12.00.mhz.1972-12-02HR00_evid00083 1972-12-02T07:58:00.000000 28680.0 evid00083 impact_mq
43 xa.s12.00.mhz.1972-12-03HR00_evid00084 1972-12-03T02:38:00.000000 9480.0 evid00084 impact_mq
44 xa.s12.00.mhz.1973-01-18HR00_evid00088 1973-01-18T23:01:00.000000 82860.0 evid00088 impact_mq
45 xa.s12.00.mhz.1973-01-31HR00_evid00091 1973-01-31T00:44:00.000000 2640.0 evid00091 impact_mq
46 xa.s12.00.mhz.1973-03-01HR00_evid00093 1973-03-01T07:15:00.000000 26100.0 evid00093 deep_mq
47 xa.s12.00.mhz.1973-03-13HR00_evid00094 1973-03-13T08:01:00.000000 28860.0 evid00094 shallow_mq
48 xa.s12.00.mhz.1973-03-24HR00_evid00097 1973-03-24T19:23:00.000000 69780.0 evid00097 impact_mq
49 xa.s12.00.mhz.1973-05-14HR00_evid00104 1973-05-14T00:44:00.000000 2640.0 evid00104 impact_mq
50 xa.s12.00.mhz.1973-06-05HR00_evid00107 1973-06-05T02:38:00.000000 9480.0 evid00107 impact_mq
51 xa.s12.00.mhz.1973-06-05HR00_evid00108 1973-06-05T11:10:00.000000 40200.0 evid00108 deep_mq
52 xa.s12.00.mhz.1973-06-18HR00_evid00109 1973-06-18T01:42:00.000000 6120.0 evid00109 impact_mq
53 xa.s12.00.mhz.1973-06-27HR00_evid00112 1973-06-27T18:36:00.000000 66960.0 evid00112 impact_mq
54 xa.s12.00.mhz.1973-07-03HR00_evid00113 1973-07-03T18:15:00.000000 65700.0 evid00113 impact_mq
55 xa.s12.00.mhz.1973-07-04HR00_evid00114 1973-07-04T02:46:00.000000 9960.0 evid00114 impact_mq
56 xa.s12.00.mhz.1973-07-20HR00_evid00117 1973-07-20T19:02:00.000000 68520.0 evid00117 deep_mq
57 xa.s12.00.mhz.1973-07-28HR00_evid00120 1973-07-28T00:52:00.000000 3120.0 evid00120 impact_mq
58 xa.s12.00.mhz.1973-07-29HR00_evid00121 1973-07-29T23:31:00.000000 84660.0 evid00121 impact_mq
59 xa.s12.00.mhz.1973-08-21HR00_evid00127 1973-08-21T12:17:00.000000 44220.0 evid00127 impact_mq
60 xa.s12.00.mhz.1974-01-10HR00_evid00136 1974-01-10T23:21:00.000000 84060.0 evid00136 impact_mq
61 xa.s12.00.mhz.1974-02-07HR00_evid00137 1974-02-07T06:21:00.000000 22860.0 evid00137 impact_mq
62 xa.s12.00.mhz.1974-02-12HR00_evid00138 1974-02-12T22:30:00.000000 81000.0 evid00138 impact_mq
63 xa.s12.00.mhz.1974-03-25HR00_evid00140 1974-03-25T16:58:00.000000 61080.0 evid00140 impact_mq
64 xa.s12.00.mhz.1974-04-08HR00_evid00141 1974-04-08T08:40:00.000000 31200.0 evid00141 impact_mq
65 xa.s12.00.mhz.1974-04-19HR00_evid00142 1974-04-19T18:34:00.000000 66840.0 evid00142 impact_mq
66 xa.s12.00.mhz.1974-04-26HR00_evid00144 1974-04-26T09:18:00.000000 33480.0 evid00144 deep_mq
67 xa.s12.00.mhz.1974-04-27HR00_evid00145 1974-04-27T14:18:00.000000 51480.0 evid00145 impact_mq
68 xa.s12.00.mhz.1974-06-25HR00_evid00149 1974-06-25T00:23:00.000000 1380.0 evid00149 impact_mq
69 xa.s12.00.mhz.1974-07-06HR00_evid00150 1974-07-06T02:57:00.000000 10620.0 evid00150 impact_mq
70 xa.s12.00.mhz.1974-07-06HR00_evid00151 1974-07-06T14:14:00.000000 51240.0 evid00151 impact_mq
71 xa.s12.00.mhz.1974-07-11HR00_evid00152 1974-07-11T00:52:00.000000 3120.0 evid00152 shallow_mq
72 xa.s12.00.mhz.1974-07-17HR00_evid00153 1974-07-17T12:05:00.000000 43500.0 evid00153 impact_mq
73 xa.s12.00.mhz.1974-10-14HR00_evid00156 1974-10-14T17:43:00.000000 63780.0 evid00156 impact_mq
74 xa.s12.00.mhz.1975-04-12HR00_evid00191 1975-04-12T18:15:00.000000 65700.0 evid00191 impact_mq
75 xa.s12.00.mhz.1975-05-04HR00_evid00192 1975-05-04T10:05:00.000000 36300.0 evid00192 impact_mq
76 xa.s12.00.mhz.1975-06-24HR00_evid00196 1975-06-24T16:03:00.000000 57780.0 evid00196 impact_mq
77 xa.s12.00.mhz.1975-06-26HR00_evid00198 1975-06-26T03:24:00.000000 12240.0 evid00198 impact_mq