Files
Stream_PHX_A7/Gateways/FE/projects/.resources/b827b6eab05d770cfdeaf81fe90651b3a30e13c747fe0f0fc78e0c865608e065

75 lines
2.7 KiB
Plaintext

from datetime import datetime
def getBaseTagPaths(locations=[]):
"""
Get a list of tagpaths from SES1A/SES1B or the selected datahalls.
"""
baseTagPaths = []
if len(locations) > 0:
for location in locations:
baseTagPaths+= reports.MBR.common.util.getBaseTagPaths(reports.MBR.common.static.getPQMBase(), location)
else:
baseTagPaths = reports.MBR.common.util.getBaseTagPaths(reports.MBR.common.static.getUtilitySES(), "Yard")
return baseTagPaths
def getEnergyPaths(locations):
return ["%s/Real Energy"%(path) for path in getBaseTagPaths(locations)]
def getRawData(startDate, endDate, locations):
"""
Get per minute data for all of the energy paths.
"""
energyTagPathsSES = getEnergyPaths([])
energyTagPathsAreas = getEnergyPaths(locations)
sesHist = reports.MBR.common.util.getHistory(energyTagPathsSES, startDate, endDate, customArgs={})
areaHist = reports.MBR.common.util.getHistory(energyTagPathsAreas, startDate, endDate, customArgs={})
return sesHist, areaHist
def calculateDelta(dataset, sumColName):
"""
Pass in the dataset and use the sumColName to indicate which column the delta will be performed
Args:
dataset: PyDataset of rawhist and sum column
sumColname: name of the column the sum resides in
Returns:
List of calculated deltas
"""
deltaList = []
for i,row in enumerate(dataset):
if i == 0:
deltaList.append(0)
else:
deltaList.append(row[sumColName]-dataset[i-1][sumColName])
return deltaList
def processRawData(startDate, endDate, locations, intervalMins=15):
"""
Retrieve the raw history minute data, then create the new columns
"""
# PyDS
sesDS, areaDS = getRawData(startDate, endDate, locations)
sesDS = reports.MBR.common.util.generateSumCol(reports.MBR.common.util.averageIntervalData(sesDS, intervalMins), sumColName="SESTotalEnergy")
areaDS = reports.MBR.common.util.generateSumCol(reports.MBR.common.util.averageIntervalData(areaDS, intervalMins), sumColName="ExclAreaTotalEnergy")
sesDeltaList = calculateDelta(sesDS, "SESTotalEnergy")
areaDeltaList = calculateDelta(areaDS, "ExclAreaTotalEnergy")
finalDS = sesDS
if len(sesDeltaList) == len(areaDeltaList):
deltaDiffList = [a-b for a,b in zip(sesDeltaList, areaDeltaList)]
# merge the 2 SES and Area Datasets
# try:
finalDS = reports.MBR.common.util.mergeHistorianData(sesDS, areaDS)
finalDS = system.dataset.addColumn(finalDS, sesDeltaList, "SES Consumed", float)
finalDS = system.dataset.addColumn(finalDS, areaDeltaList, "Excluded Area Consumed", float)
finalDS = system.dataset.addColumn(finalDS, deltaDiffList, "Tenant Consumed", float)
# except:
# pass
else:
finalDS = system.dataset.addColumn(finalDS, col= sesDeltaList, colName="SES Consumed", colType=float)
return finalDS