def fetchSection1_9Context(appDbConnStr: str, startDt: dt.datetime, endDt: dt.datetime) -> ISection_1_9: constituentsInfos = getConstituentsMappings() constConfig = {} for c in constituentsInfos: constConfig[c["entity_tag"]] = c["display_name"] dataRecords = pd.DataFrame() mRepo = MetricsDataRepo(appDbConnStr) # get schedule and drawal MUs values for this month allEntityScheduleMuVals = mRepo.getAllEntityMetricMonthlyData( 'Schedule (MU)', startDt, endDt) allEntityDrawalMuVals = mRepo.getAllEntityMetricMonthlyData( 'Drawl (MU)', startDt, endDt) allEntityScheduleMuDf = pd.DataFrame(allEntityScheduleMuVals) allEntityDrawalMuDf = pd.DataFrame(allEntityDrawalMuVals) allEntityScheduleMuDf = allEntityScheduleMuDf.rename(columns={ 'metric_value': 'Schedule (MU)'}) allEntityDrawalMuDf = allEntityDrawalMuDf.rename(columns={ 'metric_value': 'Drawl (MU)'}) tempList = allEntityDrawalMuDf['Drawl (MU)'] allEntityScheduleMuDf['Drawl (MU)'] = tempList allEntityScheduleMuDf['difference'] = round( (allEntityScheduleMuDf['Drawl (MU)'] - allEntityScheduleMuDf['Schedule (MU)']), 2) # print(allEntityReqMuDf) dataRecords = allEntityScheduleMuDf newNames = [] for rIter in range(dataRecords.shape[0]): row = dataRecords.iloc[rIter, :] if row['entity_tag'] in constConfig: newNames.append(constConfig[row['entity_tag']]) else: newNames.append(np.nan) dataRecords['entity_tag'] = newNames scheduleDrawalList: ISection_1_9["schedule_drawal"] = [] for i in dataRecords.index: scheduleDrawal: IScheduleDrawalDetails = { 'entity': dataRecords['entity_tag'][i], 'schedule': round(dataRecords['Schedule (MU)'][i], 2), 'drawal': round(dataRecords['Drawl (MU)'][i], 2), 'difference': round(dataRecords['difference'][i], 2) } scheduleDrawalList.append(scheduleDrawal) sectionData: ISection_1_9 = { "schedule_drawal": scheduleDrawalList } return sectionData
def fetchSection1_3_aContext(appDbConnStr: str, startDt: dt.datetime, endDt: dt.datetime) -> ISection_1_3_a: constituentsInfos = getConstituentsMappings() constConfig = {} for c in constituentsInfos: constConfig[c["entity_tag"]] = c["display_name"] dataRecords = pd.DataFrame() mRepo = MetricsDataRepo(appDbConnStr) prevFinYrStartDt = getFinYrDt(startDt) # get WR Unrestricted demand hourly values for this month and prev yr month allEntityReqMuVals = mRepo.getAllEntityMetricMonthlyData( 'Requirement (MU)', startDt, endDt) allEntityAvailMuVals = mRepo.getAllEntityMetricMonthlyData( 'Consumption(MU)', startDt, endDt) allEntityReqMuDf = pd.DataFrame(allEntityReqMuVals) allEntityAvailMuDf = pd.DataFrame(allEntityAvailMuVals) allEntityAvailMuDf = allEntityAvailMuDf.rename(columns={ 'metric_value': 'Consumption(MU)'}) allEntityReqMuDf = allEntityReqMuDf.rename(columns={ 'metric_value': 'Requirement (MU)'}) tempList = allEntityAvailMuDf['Consumption(MU)'] allEntityReqMuDf['Consumption(MU)'] = tempList allEntityReqMuDf['shortage'] = round(100 * (allEntityReqMuDf['Requirement (MU)'] - allEntityReqMuDf['Consumption(MU)']) / allEntityReqMuDf['Consumption(MU)'], 2) # print(allEntityReqMuDf) prevYrAllEntityReqMuVals = mRepo.getAllEntityMetricMonthlyData( 'Requirement (MU)', prevFinYrStartDt, endDt) prevYrAllEntityAvailMuVals = mRepo.getAllEntityMetricMonthlyData( 'Consumption(MU)', prevFinYrStartDt, endDt) prevYrAllEntityReqMuDf = pd.DataFrame(prevYrAllEntityReqMuVals) prevYrAllEntityAvailMuDf = pd.DataFrame(prevYrAllEntityAvailMuVals) prevYrAllEntityAvailMuDf = prevYrAllEntityAvailMuDf.rename(columns={ 'metric_value': 'Consumption(MU)'}) prevYrAllEntityReqMuDf = prevYrAllEntityReqMuDf.rename(columns={ 'metric_value': 'Requirement (MU)'}) tempList = prevYrAllEntityAvailMuDf['Consumption(MU)'] prevYrAllEntityReqMuDf['Consumption(MU)'] = tempList prevYrAllEntityReqMuDf['shortage'] = round(100 * (prevYrAllEntityReqMuDf['Requirement (MU)'] - prevYrAllEntityAvailMuDf['Consumption(MU)']) / prevYrAllEntityAvailMuDf['Consumption(MU)'], 2) prevYrAllEntityReqMuDf.set_index('entity_tag') dataRecords = pd.merge( allEntityReqMuDf, prevYrAllEntityReqMuDf, on='entity_tag') newNames = [] for rIter in range(dataRecords.shape[0]): row = dataRecords.iloc[rIter, :] if row['entity_tag'] in constConfig: newNames.append(constConfig[row['entity_tag']]) else: newNames.append(np.nan) dataRecords['entity_tag'] = newNames energyReqAvailList: ISection_1_3_a["energy_req_avail"] = [] for i in dataRecords.index: energyReq: ISection_1_3_a = { 'entity': dataRecords['entity_tag'][i], 'reqMu_X': round(dataRecords['Requirement (MU)_x'][i]), 'availMu_X': round(dataRecords['Consumption(MU)_x'][i]), 'shortage_X': round(dataRecords['shortage_x'][i], 2), 'reqMu_Y': round(dataRecords['Requirement (MU)_y'][i]), 'availMu_Y': round(dataRecords['Consumption(MU)_y'][i]), 'shortage_Y': round(dataRecords['shortage_y'][i], 2) } energyReqAvailList.append(energyReq) prevFinYrDateStr = dt.datetime.strftime(prevFinYrStartDt, "%b %y") sectionData: ISection_1_3_a = { "energy_req_avail": energyReqAvailList, "recent_fin_month_name": prevFinYrDateStr } return sectionData