average files in directory
This commit is contained in:
parent
6caab18f76
commit
d3a48822a2
|
@ -22,5 +22,6 @@ psr = ArgumentParser(
|
|||
)
|
||||
psr.add_argument("dir", nargs="+")
|
||||
|
||||
cntr = 0
|
||||
for i in psr.parse_args().dir:
|
||||
process(i)
|
||||
process(i,cntr)
|
||||
|
|
|
@ -2,6 +2,8 @@ import os
|
|||
import sys
|
||||
from brukeropusreader import read_file
|
||||
import re
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
|
||||
match_opus = re.compile(r"_[0-9]+(\.[0-9]+)?T.0$")
|
||||
|
||||
|
@ -19,7 +21,26 @@ class BlankSpace:
|
|||
def __getitem__(self, _):
|
||||
return " "
|
||||
|
||||
def process(s):
|
||||
def average(fn, freq, fields):
|
||||
frame = pd.DataFrame()
|
||||
frame["f"] = np.linspace(freq[0], freq[1], num=freq[2])
|
||||
keys=[]
|
||||
|
||||
for k,v in fields.items():
|
||||
keys.append(k)
|
||||
frame[k] = np.zeros(freq[2])
|
||||
for i in v:
|
||||
frame[k] = frame[k] + np.asarray(i)
|
||||
frame[k] = frame[k] / len(v)
|
||||
|
||||
keys.sort(key=lambda x:float(x))
|
||||
keys.insert(0, "f")
|
||||
frame[keys].to_csv(
|
||||
path_or_buf = fn,
|
||||
index = False
|
||||
)
|
||||
|
||||
def process(s,cntr):
|
||||
groupings = {}
|
||||
dir = os.listdir(s)
|
||||
i = 0
|
||||
|
@ -30,7 +51,8 @@ def process(s):
|
|||
v = re.search(match_opus, fn)
|
||||
if v is None:
|
||||
continue
|
||||
field = v.group()[1:len(v.group())-2]
|
||||
# lob off "T.0"
|
||||
field = v.group()[1:len(v.group())-3]
|
||||
|
||||
dat = read_file(f"{s}/{fn}")
|
||||
if "ScSm" not in dat:
|
||||
|
@ -42,3 +64,7 @@ def process(s):
|
|||
|
||||
blanks = f"Processed {i}/{len(dir)}".translate(BlankSpace())
|
||||
sys.stderr.write(f"{blanks}\rProcessed {i} files\n")
|
||||
|
||||
i = 1
|
||||
for k,v in groupings.items():
|
||||
average(f"avg-{i}-{cntr}.csv", k, v)
|
||||
|
|
Loading…
Reference in New Issue