average files in directory
This commit is contained in:
parent
6caab18f76
commit
d3a48822a2
|
@ -22,5 +22,6 @@ psr = ArgumentParser(
|
||||||
)
|
)
|
||||||
psr.add_argument("dir", nargs="+")
|
psr.add_argument("dir", nargs="+")
|
||||||
|
|
||||||
|
cntr = 0
|
||||||
for i in psr.parse_args().dir:
|
for i in psr.parse_args().dir:
|
||||||
process(i)
|
process(i,cntr)
|
||||||
|
|
|
@ -2,6 +2,8 @@ import os
|
||||||
import sys
|
import sys
|
||||||
from brukeropusreader import read_file
|
from brukeropusreader import read_file
|
||||||
import re
|
import re
|
||||||
|
import numpy as np
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
match_opus = re.compile(r"_[0-9]+(\.[0-9]+)?T.0$")
|
match_opus = re.compile(r"_[0-9]+(\.[0-9]+)?T.0$")
|
||||||
|
|
||||||
|
@ -19,7 +21,26 @@ class BlankSpace:
|
||||||
def __getitem__(self, _):
|
def __getitem__(self, _):
|
||||||
return " "
|
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 = {}
|
groupings = {}
|
||||||
dir = os.listdir(s)
|
dir = os.listdir(s)
|
||||||
i = 0
|
i = 0
|
||||||
|
@ -30,7 +51,8 @@ def process(s):
|
||||||
v = re.search(match_opus, fn)
|
v = re.search(match_opus, fn)
|
||||||
if v is None:
|
if v is None:
|
||||||
continue
|
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}")
|
dat = read_file(f"{s}/{fn}")
|
||||||
if "ScSm" not in dat:
|
if "ScSm" not in dat:
|
||||||
|
@ -42,3 +64,7 @@ def process(s):
|
||||||
|
|
||||||
blanks = f"Processed {i}/{len(dir)}".translate(BlankSpace())
|
blanks = f"Processed {i}/{len(dir)}".translate(BlankSpace())
|
||||||
sys.stderr.write(f"{blanks}\rProcessed {i} files\n")
|
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