logger.warning("predict handler: failed to send message")
-def nbcells(ue):
+def cells(ue):
"""
Extract neighbor cell id for a given UE
"""
db.read_data(meas='liveUE', limit=1, ueid=ue)
df = db.data
- nbc = df.filter(regex='nbCell').values[0]
- return nbc
+ nbc = df.filter(regex='nbCell').values[0].tolist()
+ srvc = df.filter(regex='nrCell').values[0].tolist()
+ return srvc+nbc
def predict(payload):
payload = json.loads(payload)
ueid = payload['UEPredictionSet'][0]
- nbc = nbcells(ueid)
- for cid in nbc:
+ cell_list = cells(ueid)
+ for cid in cell_list:
mcid = cid.replace('/', '')
db.read_data(meas='liveCell', cellid=cid, limit=11)
if len(db.data) != 0:
import joblib
+class DataNotMatchError(Exception):
+ pass
+
+
class PROCESS(object):
def __init__(self, data):
""" Filter throughput parameters, call make_stationary() to check for Stationarity time series
"""
df = self.data.copy()
- df = df[['pdcpBytesDl', 'pdcpBytesUl']]
+ try:
+ df = df[['pdcpBytesDl', 'pdcpBytesUl']]
+ except DataNotMatchError:
+ print('Parameters pdcpBytesDl, pdcpBytesUl does not exist in provided data')
+ self.data = None
self.data = df.loc[:, (df != 0).any(axis=0)]
self.make_stationary() # check for Stationarity and make the Time Series Stationary
def valid(self):
- df = self.data.copy()
- df = df.loc[:, (df != 0).any(axis=0)]
- if len(df) != 0 and df.shape[1] == 2:
- return True
- else:
- return False
+ val = False
+ if self.data is not None:
+ df = self.data.copy()
+ df = df.loc[:, (df != 0).any(axis=0)]
+ if len(df) != 0 and df.shape[1] == 2:
+ val = True
+ return val
def train(db, cid):