76 lines
2.7 KiB
Plaintext
76 lines
2.7 KiB
Plaintext
from datetime import datetime
|
|
udtInstPath = "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU01"
|
|
|
|
|
|
def getMeasurementPaths():
|
|
return ["%s/Outside Air Dewpoint"%udtInstPath,
|
|
"%s/Outside Air Temperature"%udtInstPath,
|
|
"%s/Outside Air Humidity"%udtInstPath]
|
|
|
|
def getRawDataMeasurement(startDate, endDate, customArgs= {}):
|
|
tagpaths = getMeasurementPaths()
|
|
hist = reports.MBR.common.util.getHistory(tagpaths, startDate, endDate, customArgs={})
|
|
|
|
|
|
return hist
|
|
|
|
def getRawChillerDemand(startDate, endDate, location, customArgs= {}):
|
|
tagpaths = reports.MBR.common.util.getBaseTagPaths(reports.MBR.common.static.getChillerTonnage(), location)
|
|
tagpaths.sort()
|
|
hist = reports.MBR.common.util.getHistory(tagpaths, startDate, endDate, customArgs={})
|
|
|
|
return hist
|
|
|
|
def calculateValues(data):
|
|
"""
|
|
Calculate the Daily Average of each sensor's measurement
|
|
"""
|
|
data = system.dataset.toPyDataSet(data)
|
|
curHeaders = system.dataset.getColumnHeaders(data)
|
|
res = {"ResultTemp":None, "ResultHumidity":None}
|
|
dailyGroup= {}
|
|
allResultData = {}
|
|
allResultDS = {}
|
|
allAvgs = []
|
|
|
|
for row in data:
|
|
dayStr = system.date.format(row["t_stamp"],"yyyy-MM-dd")
|
|
dailyGroup.setdefault(dayStr, {})
|
|
dailyGroup[dayStr].setdefault("OATemp", [])
|
|
dailyGroup[dayStr].setdefault("OADew", [])
|
|
dailyGroup[dayStr].setdefault("OAHum", [])
|
|
|
|
dailyGroup[dayStr]["OADew"].append(row[curHeaders[1]])
|
|
dailyGroup[dayStr]["OATemp"].append(row[curHeaders[2]])
|
|
dailyGroup[dayStr]["OAHum"].append(row[curHeaders[3]])
|
|
|
|
sortedDateKeys = sorted(dailyGroup.keys(), key=lambda x: datetime.strptime(x, '%Y-%m-%d'))
|
|
temperatureRows= []
|
|
humidityRows= []
|
|
for date_str in sortedDateKeys:
|
|
try:
|
|
dpAvg = sum(dailyGroup[date_str]["OADew"])/len(dailyGroup[date_str]["OADew"])
|
|
tempAvg = sum(dailyGroup[date_str]["OATemp"])/len(dailyGroup[date_str]["OATemp"])
|
|
humAvg = sum(dailyGroup[date_str]["OAHum"])/len(dailyGroup[date_str]["OAHum"])
|
|
except:
|
|
dpAvg = 0
|
|
tempAvg = 0
|
|
humAvg = 0
|
|
|
|
temperatureRows.append([system.date.parse(date_str, "yyyy-MM-dd"), dpAvg, tempAvg])
|
|
humidityRows.append([system.date.parse(date_str, "yyyy-MM-dd"), humAvg])
|
|
|
|
res["ResultTemp"] = system.dataset.toDataSet(["Date","Dewpoint","Temperature"], temperatureRows)
|
|
res["ResultHumidity"] = system.dataset.toDataSet(["Date","Humidity"], humidityRows)
|
|
return res
|
|
|
|
def DoAll(startDate,endDate):
|
|
return calculateValues(getRawDataMeasurement(startDate,endDate))
|
|
|
|
def DoChillerDemand(startDate, endDate, interval= 60, locations=None):
|
|
histDS = reports.MBR.cooling.getRawChillerDemand(startDate, endDate, locations, customArgs= {})
|
|
histDS = reports.MBR.common.util.averageIntervalData(histDS, interval)
|
|
histDS = reports.MBR.common.util.generateSumCol(histDS, sumColName="Sum Tonnage")
|
|
|
|
return {"histDS":histDS}
|
|
|