-
Notifications
You must be signed in to change notification settings - Fork 0
/
perlRCjsonData.py
executable file
·89 lines (67 loc) · 1.99 KB
/
perlRCjsonData.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/home/mpet/local/bin/python2.7
import sys
sys.path.append('/home/mpet/Aaron/perlRCdb/')
#import MidasToEvaSubClass as MidasToEvaSDA
from midas2eva import SDA
from collections import Counter
import json
import extractFromPerlRCLog as exprc
def getjson(filename):
#M2E = MidasToEvaSDA.SDA(filename)
M2E = SDA(filename)
M2E.versionMID = 2
M2E.extractXML()
M2E.getStartFreq(None)
M2E.getStopFreq(None)
M2E.getStartTime(None)
M2E.getEndTime(None)
M2E.getNumFreqSteps(None)
M2E.getNumCycles()
M2E.getCycleTime()
M2E.getElem(None)
M2E.getZ(None)
M2E.collectMdumpData()
M2E.reorganizeMdumpData()
M2E.binMdumpData(0.2, 200)
bindata = M2E.getbindata()
numFreq = M2E.numfreqsteps
jsonData = []
for i in xrange(len(bindata)):
hist = Counter(bindata[i])
for j in hist:
jsonData.append({'f': i % numFreq, 'c': j, 'N': hist[j]})
return jsonData
def getAllJson():
prc = exprc.extractFromPerlRCLog()
prc.get_last_scan()
prc.last_scan_runs()
prc.last_scan_filenames()
files = prc.runFilenames
date = prc.last_scan_date()
files = [prc.datapath + date + '/' + f for f in files]
data = [getjson(f) for f in files]
scanvals = prc.last_scan_values()
scanvar = prc.last_scan_variable()
for d, y in zip(data, scanvals):
for x in d:
x['scanval'] = float(y)
x['scanvar'] = scanvar
x['scan'] = 1
if prc.last_scan_type() == "Scan2D":
for d in data[1::2]:
for x in d:
x['scan'] = 2
return flatten(data)
def dumpJson():
data = getAllJson()
with open('/home/mpet/online/custom/jsondump.json', 'w') as outfile:
json.dump(data, outfile, indent=4, separators=(',', ': '))
def flatten(a, result=[]):
for elem in a:
if isinstance(elem, list):
flatten(elem, result)
else:
result.append(elem)
return result
if __name__ == "__main__":
dumpJson()