Analysis of Decimated Geo-Sense DAS Data

Paul McGill
May 28, 2025

Importing decimated dataset

Our goal is to decimate the 1 kHz DAS data down to 1 Hz, a factor of 1000. The 1 Hz data can then be processed to look for long-period effects such as internal waves, infragravity waves, and tides. This will require first low-pass filtering the signal to limit its bandwidth, followed by downsampling (i.e. throwing out 999 out of every 1000 samples). Richard Lyons describes the process in [1], section 10.1.

Instead of decimating by a factor D of 1000 in one stage, it’s more efficient to use two stages, D1 and D2, resulting in much shorter filters. The optimum factor for the first stage D1 is defined in Lyons (Eq 10-2) as:

dasDat1Hz=Import["/Volumes/1\ TB/decimated8Hz/decimated1Hz/out1HzDat.dat","Real32"];

dasDat1Hz=Partition[dasDat1Hz,Length[dasDat1Hz]/162];

Manipulate[ListPlot[dasDat1Hz[[chan,1+day Round[86400 1.051];;(day+1) Round[86400 1.051]]],PlotRange->{All,{-200,200}},Joined->True,ImageSize->Full],{chan,1,162,1},{day,0,7,1}]

chan=7;day=2;

Spectrogram[dasDat1Hz[[chan,1+day Round[86400 1.051];;(day+1) Round[86400 1.051]]],SampleRate->Quantity[1,"Hertz"],PlotRange->0.5,DataRange->{{0,24},{0,0.5}},Frame->True,FrameLabel->{{"Frequency (Hz)",""},{"Time (Hours)",""}},FrameTicks->{{Automatic,None},{Range[0,24,3],None}},ImageSize->Full]

Spectrogram[dasDat1Hz[[chan,1+day Round[86400 1.051];;(day+1) Round[86400 1.051]]],SampleRate->Quantity[1,"Hertz"],PlotRange->0.5,Frame->True,FrameLabel->{{"Frequency (Hz)",""},{"Time (Hours)",""}},FrameTicks->{{Automatic,None},{Range[0,24,3],None}},ImageSize->Full]

Periodogram[dasDat1Hz[[chan,1+day Round[86400 1.051];;(day+1) Round[86400 1.051]]],PlotRange->{{0,0.5},All},SampleRate->Quantity[1,"Hertz"],Frame->True,ImageSize->Full]

Periodogram[dasDat1Hz[[chan,1+day Round[86400 1.051];;(day+1) Round[86400 1.051]]],PlotRange->{{0,0.1},All},SampleRate->Quantity[1,"Hertz"],ImageSize->Full]

chan=7;day=2;

Spectrogram[dasDat1Hz[[chan,1+day Round[86400 1.051];;(day+1) Round[86400 1.051]]],SampleRate->Quantity[1,"Hertz"],ImageSize->Full]

Spectrogram[dasDat1Hz[[chan,All]],SampleRate->Quantity[1,"Hertz"],PlotRange->0.1,Frame->True,FrameLabel->{{"Frequency (Hz)",""},{"Warp Time (Seconds x 1.051)","Geo-Sense DAS Ch "<>ToString[chan]<>"\rJan 28 to Feb 5, 2025"}},ImageSize->Full]

Dimensions@dasDat1Hz

depDurSecs=792870/1.051

depDurSecs/86400

chan