in src/modules/sitewise/lib/util/SiteWiseTelemetryUtils.py [0:0]
def get_data_set(self, csv_file):
# {
# compType : { # compData
# measureName : { # measureData
# entities: {
# entityId: [{ time, measure_value } ],
# }
# measureDataType : {},
# . minTime: #init with current epoch
# }
# }
# }
# compType -> AssetMode
# measureName, measureType -> properties: [ { measure_name, measure_type} ]
# entityId -> assetId
# timeseries -> values
data = {}
with open(csv_file, 'r') as dataFile:
csv_reader = csv.reader(dataFile)
self.log('0:time, 1:comp_type, 2:entity_id, 3:measure_name, 4:measure_value, 5:measure_type')
i = 0
for row in csv_reader:
i += 1
epochInMs = int(row[0])
compType = row[1]
compData = data.get(compType)
if compData is None:
data[compType] = {}
compData = data[compType]
measureName = row[3]
measureData = compData.get(measureName)
if measureData is None:
compData[measureName] = {
'minTime': epochInMs,
'measureDataType': row[5],
'entities': {}
}
measureData = compData[measureName]
measureMinTime = measureData['minTime']
measureData['minTime'] = self.min_epoch(measureMinTime, epochInMs)
entities = measureData['entities']
entityId = row[2]
entityData = entities.get(entityId)
if entityData is None:
entities[entityId] = []
entityData = entities[entityId]
tsData = {
'time': epochInMs,
'measureValue': row[4]
}
entityData.append(tsData)
self.log(f'lines: {i}')
return data