From 47a1e7af7552379dfa7be4c2f3b366b59c5b280c Mon Sep 17 00:00:00 2001 From: Derisis13 Date: Sun, 6 Oct 2024 10:31:07 +0200 Subject: [PATCH] feat: detection on testing samples --- detect_in_testing.py | 43 ++++++++++++++++++ detect_moonquakes.py | 17 ++++--- lunar_test_arrivals.json | 98 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+), 6 deletions(-) create mode 100644 detect_in_testing.py create mode 100644 lunar_test_arrivals.json diff --git a/detect_in_testing.py b/detect_in_testing.py new file mode 100644 index 0000000..2509643 --- /dev/null +++ b/detect_in_testing.py @@ -0,0 +1,43 @@ +from os import path +from bisect_moonquake import from_mseed +import detect_moonquakes +import glob +from obspy import read +import create_matched_filter +from pathlib import Path +import matplotlib.pyplot as plt +import json +from tqdm import tqdm + +def process_file(file: str, matched_filter, outfolder): + st = read(file) + arrival, likelyhood = detect_moonquakes.do_detection(st, matched_filter) + outfile = outfolder.joinpath(path.basename(file) + "_correlation.svg") + fig,ax = plt.subplots(1,1,figsize=(10,3)) + ax.plot(st.traces[0].times(), likelyhood) + ax.axvline(x = arrival, color='green',label='Est. Arrival') + ax.set_xlabel("Likelyhood of event") + ax.set_ylabel("Time [sec]") + # plt.show() + plt.savefig(outfile) + plt.close(fig) + return float(arrival) + + +def main(): + matched_filter = create_matched_filter.create_matched_filter() + outfolder = Path(detect_moonquakes.IMGDIR + "/lunar/test/") + outfolder.mkdir(parents=True, exist_ok=True) + arrivals = {} + for dir in glob.glob("./space_apps_2024_seismic_detection/data/lunar/test/data/*"): + print(dir) + for file in tqdm(glob.glob(path.join(dir, "*.mseed"))): + arrival = process_file(file, matched_filter, outfolder) + arrivals.update({file: arrival}) + with open("lunar_test_arrivals.json", "w") as jsonfile: + json.dump(arrivals, jsonfile) + + + +if __name__ == "__main__": + main() diff --git a/detect_moonquakes.py b/detect_moonquakes.py index ebdb6ea..d8d96d9 100644 --- a/detect_moonquakes.py +++ b/detect_moonquakes.py @@ -1,4 +1,3 @@ -import os from scipy.signal import correlate from bisect_moonquake import CAT_LUNAR, LUNAR_DATA_DIR, PREPROCESSED_LUNAR_DIR, from_mseed from datetime import datetime @@ -8,6 +7,14 @@ from pathlib import Path from tqdm import tqdm IMGDIR = "./images" + +def do_detection(st, matched_filter): + st.traces[0].data *= 1 / st.traces[0].data.max() + st.traces[0].decimate(3) + likelyhood = correlate(st.traces[0].data, matched_filter, mode='same') + estimated_arrival = (likelyhood.argmax() - matched_filter.shape[0] / 2) * st.traces[0].stats.delta + return estimated_arrival, likelyhood + def main(): matched_filter = create_matched_filter.create_matched_filter() outfolder = Path(IMGDIR + "/lunar/training/") @@ -20,11 +27,8 @@ def main(): except FileNotFoundError: # Because csv is faulty... test_filename = test_filename.replace('HR00', 'HR02') - st, arrival = from_mseed(test_filename, LUNAR_DATA_DIR, arrival_time) - st.traces[0].data *= 1 / st.traces[0].data.max() - st.traces[0].decimate(3) - likelyhood = correlate(st.traces[0].data, matched_filter, mode='same') - estimated_arrival = (likelyhood.argmax() - matched_filter.shape[0] / 2) * st.traces[0].stats.delta + st, arrival = from_mseed(test_filename, LUNAR_DATA_DIR, arrival_time) + estimated_arrival, likelyhood = do_detection(st, matched_filter) print(arrival - estimated_arrival) # Plot trace outfile = outfolder.joinpath(test_filename + "_correlation.svg") @@ -34,6 +38,7 @@ def main(): ax.axvline(x = estimated_arrival, color='green',label='Est. Arrival') # plt.show() plt.savefig(outfile) + plt.close(fig) if __name__ == "__main__": diff --git a/lunar_test_arrivals.json b/lunar_test_arrivals.json new file mode 100644 index 0000000..ee2ecbc --- /dev/null +++ b/lunar_test_arrivals.json @@ -0,0 +1,98 @@ +{ + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeB/xa.s16.00.mhz.1973-12-18HR00_evid00487.mseed": 74960.83018867923, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeB/xa.s16.00.mhz.1974-11-14HR00_evid00587.mseed": 74748.90566037735, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeB/xa.s16.00.mhz.1973-08-25HR00_evid00443.mseed": 29805.509433962263, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeB/xa.s15.00.mhz.1974-08-04HR00_evid00557.mseed": 46527.16981132075, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeB/xa.s15.00.mhz.1974-06-16HR00_evid00536.mseed": 69470.26415094339, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeB/xa.s15.00.mhz.1975-05-20HR00_evid00653.mseed": 8548.754716981131, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeB/xa.s15.00.mhz.1974-02-06HR00_evid00497.mseed": 2698.641509433962, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeB/xa.s15.00.mhz.1974-06-30HR00_evid00542.mseed": 30431.320754716977, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1972-09-10HR00_evid00075.mseed": 46382.71698113207, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1977-06-02HR00_evid00255.mseed": 51371.094339622636, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1977-04-17HR00_evid00249.mseed": 82867.69811320755, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1974-12-15HR00_evid00172.mseed": 33094.415094339616, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1974-12-25HR00_evid00174.mseed": 76198.41509433961, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1975-02-19HR00_evid00180.mseed": 49701.05660377358, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1975-03-26HR00_evid00186.mseed": 2913.283018867924, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1973-07-31HR00_evid00123.mseed": 35506.64150943396, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1972-11-06HR00_evid00079.mseed": 15825.735849056602, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1972-11-14HR00_evid00081.mseed": 62666.490566037726, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1974-11-11HR00_evid00160.mseed": 60450.79245283018, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1974-05-19HR00_evid00146.mseed": 69189.05660377358, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1974-12-12HR02_evid00168.mseed": 55519.4716981132, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S16_GradeA/xa.s16.00.mhz.1972-11-08HR00_evid00080.mseed": 66056.83018867923, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-07-18HR00_evid00036.mseed": 1946.0377358490564, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-07-17HR00_evid00035.mseed": 55221.50943396226, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-03-15HR00_evid00073.mseed": 28735.471698113204, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-12-06HR00_evid00342.mseed": 50798.71698113207, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1974-03-30HR00_evid00512.mseed": 71109.50943396226, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1974-03-14HR00_evid00506.mseed": 27146.943396226412, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-05-15HR00_evid00223.mseed": 62413.35849056603, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-10-06HR00_evid00124.mseed": 39587.54716981132, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1973-03-12HR00_evid00384.mseed": 74220.45283018867, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-02-18HR00_evid00016.mseed": 43354.18867924528, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1973-10-03HR03_evid00461.mseed": 59625.7358490566, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-02-28HR00_evid00192.mseed": 45013.35849056603, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-11-03HR00_evid00051.mseed": 62028.90566037735, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-11-19HR00_evid00335.mseed": 66348.45283018867, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-06-27HR00_evid00101.mseed": 68774.26415094339, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-05-22HR00_evid00092.mseed": 64481.43396226414, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1974-10-02HR00_evid00572.mseed": 48924.90566037736, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-12-02HR00_evid00341.mseed": 28679.320754716977, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1973-10-10HR00_evid00463.mseed": 10709.66037735849, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1973-08-08HR00_evid00437.mseed": 63181.35849056603, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-01-17HR00_evid00060.mseed": 64694.26415094339, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1975-06-17HR00_evid00662.mseed": 44781.05660377358, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-12-15HR00_evid00349.mseed": 25068.905660377357, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-02-21HR00_evid00190.mseed": 75795.39622641509, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-11-24HR00_evid00156.mseed": 9636.905660377357, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-05-25HR00_evid00029.mseed": 43874.03773584905, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1973-04-23HR00_evid00399.mseed": 50361.28301886792, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-05-19HR00_evid00228.mseed": 67480.0754716981, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-05-24HR00_evid00028.mseed": 14026.64150943396, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-09-09HR00_evid00043.mseed": 43778.03773584905, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1973-11-22HR00_evid00475.mseed": 51167.32075471697, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1975-05-16HR00_evid00651.mseed": 80080.52830188678, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-07-27HR00_evid00039.mseed": 13128.679245283018, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-10-06HR00_evid00125.mseed": 39587.54716981132, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-10-26HR00_evid00049.mseed": 55308.452830188675, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1975-05-20HR00_evid00652.mseed": 62854.8679245283, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-10-26HR00_evid00133.mseed": 16691.09433962264, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-11-14HR00_evid00331.mseed": 69942.11320754717, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1977-04-26HR00_evid00924.mseed": 36163.24528301886, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-03-14HR00_evid00018.mseed": 43049.886792452824, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1974-07-25HR05_evid00553.mseed": 32855.773584905655, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-01-05HR00_evid00059.mseed": 2706.3396226415093, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-04-08HR01_evid00083.mseed": 26950.8679245283, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1975-06-15HR00_evid00660.mseed": 14177.43396226415, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-01-09HR00_evid00007.mseed": 7224.679245283018, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1975-04-21HR00_evid00638.mseed": 7090.641509433962, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-04-03HR00_evid00021.mseed": 38790.11320754717, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-03-30HR00_evid00020.mseed": 63612.90566037735, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1977-04-11HR00_evid00915.mseed": 48305.43396226415, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-05-23HR00_evid00027.mseed": 47274.339622641506, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-07-20HR00_evid00037.mseed": 18359.32075471698, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-06-19HR00_evid00031.mseed": 76303.4716981132, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-05-20HR00_evid00026.mseed": 61036.30188679245, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1974-06-30HR00_evid00543.mseed": 63689.43396226414, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-01-03HR00_evid00057.mseed": 39457.58490566038, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1971-06-11HR00_evid00096.mseed": 49970.94339622641, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1974-05-09HR00_evid00522.mseed": 48703.018867924526, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1972-01-26HR00_evid00186.mseed": 18759.169811320753, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1977-07-19HR00_evid00991.mseed": 74425.58490566038, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-02-07HR00_evid00014.mseed": 5440.981132075472, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1970-11-03HR00_evid00050.mseed": 62028.90566037735, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1969-12-16HR00_evid00006.mseed": 75156.90566037735, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1977-04-24HR00_evid00923.mseed": 58549.35849056603, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S12_GradeB/xa.s12.00.mhz.1977-09-13HR00_evid01012.mseed": 73298.03773584905, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1973-04-04HR00_evid00098.mseed": 65805.05660377358, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1973-10-27HR00_evid00134.mseed": 40061.207547169804, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1975-04-12HR00_evid00190.mseed": 65405.207547169804, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1974-12-15HR00_evid00170.mseed": 15568.075471698112, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1974-12-15HR00_evid00169.mseed": 15568.075471698112, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1974-11-17HR00_evid00162.mseed": 72177.28301886792, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1975-06-22HR00_evid00194.mseed": 70951.4716981132, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1974-10-19HR00_evid00157.mseed": 70508.6037735849, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1974-11-21HR00_evid00166.mseed": 47807.773584905655, + "./space_apps_2024_seismic_detection/data/lunar/test/data/S15_GradeA/xa.s15.00.mhz.1973-08-10HR00_evid00126.mseed": 64735.92452830188 +}