-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPYF_pstFraction.py
74 lines (71 loc) · 3.23 KB
/
PYF_pstFraction.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
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import numpy as np
from glob import glob
import PYF_aux as aux
import PYF_gene as drv
import PYF_land as lnd
from datetime import datetime
import compress_pickle as pkl
import MoNeT_MGDrivE as monet
if monet.isNotebook():
(USR, DRV, AOI, LND) = ('dsk', 'PGS', 'HLT', 'PAN')
else:
(USR, DRV, AOI, LND) = (sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
(gIx, hIx, OVW) = (1, 0, True)
###############################################################################
# Setting up paths
###############################################################################
(PT_ROT, PT_IMG, PT_DTA, PT_PRE, PT_OUT, PT_MTR, PT_MOD) = aux.selectPath(
USR, LND
)
tS = datetime.now()
monet.printExperimentHead(PT_DTA, PT_OUT, tS, 'PYF PstFraction '+AOI)
###############################################################################
# Load landscape and drive
###############################################################################
(drive, land) = (
drv.driveSelector(DRV, AOI, popSize=11000),
lnd.landSelector(LND, PT_ROT)
)
(gene, fldr) = (drive.get('gDict'), drive.get('folder'))
# #########################################################################
# Base experiments
# These are the experiments without any releases (for fractions)
# #########################################################################
# Get releases number set -------------------------------------------------
ren = aux.getExperimentsIDSets(PT_PRE, skip=-1)[2]
# Get base experiments pattern --------------------------------------------
basePat = aux.patternForReleases('000', AOI, 'sum')
baseFiles = sorted(glob(PT_PRE+basePat))
# #########################################################################
# Probe experiments
# sum: Analyzed data aggregated into one node
# srp: Garbage data aggregated into one node
# #########################################################################
(xpNum, digs) = monet.lenAndDigits(ren)
for (i, rnIt) in enumerate(ren):
monet.printProgress(i+1, xpNum, digs)
# Mean data (Analyzed) ------------------------------------------------
meanPat = aux.patternForReleases(rnIt, AOI, 'sum')
meanFiles = sorted(glob(PT_PRE+meanPat))
# Repetitions data (Garbage) ------------------------------------------
tracePat = aux.patternForReleases(rnIt, AOI, 'srp')
traceFiles = sorted(glob(PT_PRE+tracePat))
# #####################################################################
# Load data
# #####################################################################
# if len({len(baseFiles), len(meanFiles), len(traceFiles)}) > 1:
# print('ERROR IN EXPERIMENT SET {}'.format(meanPat))
# continue
expNum = len(meanFiles)
for pIx in range(expNum):
(bFile, mFile, tFile) = (baseFiles[pIx], meanFiles[pIx], traceFiles[pIx])
(base, mean, trace) = [pkl.load(file) for file in (bFile, mFile, tFile)]
# #################################################################
# Process data
# #################################################################
fName = '{}{}rto'.format(PT_OUT, mFile.split('/')[-1][:-6])
repsRatios = monet.getPopRepsRatios(base, trace, gIx)
np.save(fName, repsRatios)