average files in directory

This commit is contained in:
Peter McGoron 2021-08-09 23:30:51 -04:00
parent 6caab18f76
commit d3a48822a2
2 changed files with 30 additions and 3 deletions

View File

@ -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)

View File

@ -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)