def writeYamlFileAndReturnRandomProbabilities(Result, houseNumber, requests, unit, folderName, approachName, houseLayout, requestNameMinMap, S_ZipList, lengthMvList): ''' This method used to get the random RLC result list, and request start time. Result, int, [request, ...], int, str, str, [int, int,..], {str:int,...} => files, [[int, int,...]] ''' # deal with the random output, and start time at same time fileCount = 0 totalRequestNumber = yamlLargeHouseNumber.getTotalRequestNumber(requests) restRequestNumber = int(totalRequestNumber) # tempList = folderName.split('_'); # subFolder = ''.join((tempList[0][-1], '_', tempList[1][0])); while restRequestNumber != 0: if restRequestNumber < houseNumber: repeatNumber = restRequestNumber else: repeatNumber = houseNumber # fileName = ''.join(('~/project/SmartGridToolbox/examples/ResidentialA/resident/', subFolder, '/', folderName, '_', str(fileCount), '.yaml')) fileName = ''.join(('CSVdata/', folderName, '/resident/' 'resident_', folderName, '_', str(fileCount), '.yaml')) applianceMap = getApplianceMap(repeatNumber, requests, unit) # get the start time and request name dict # tempNumber = 0 # for element in applianceMap.keys(): # tempNumber = tempNumber + len(applianceMap[element]) # if tempNumber > houseNumber: # for key in applianceMap.keys(): # print key, # print len(applianceMap[key]) # tempCount = 0 # for element in applianceMap.keys(): # if len(applianceMap[element]) != 0: # tempCount = tempCount + 1 # if tempCount > 1: # print 'FILE NAME IS', # print fileCount # for element in applianceMap.keys(): # if len(applianceMap[element]) != 0: # print element, # print len(applianceMap[element]) deleteRequests = setNewRequests(requests) # delete the request which quantity is zero writeFile = open(fileName, 'w') yamlWriteMethods.writeConstParameters(writeFile) yamlWriteMethods.writeHouseLayout(writeFile, houseLayout) yamlWriteMethods.writeVariableList(writeFile, houseLayout, S_ZipList, lengthMvList) yamlWriteMethods.writeConstSimulation(writeFile) yamlWriteMethods.writeConstNetwork(writeFile) yamlWriteMethods.writeConstHeartbeat(writeFile) yamlWriteMethods.writeTimeSerialLoop(writeFile, applianceMap, folderName) # write load / time_series content yamlWriteMethods.writeConstBus(writeFile) yamlWriteMethods.writeConstGenericgen(writeFile) yamlWriteMethods.writeConstLoop(writeFile) applianceCount = 0 yamlWriteMethods.writeAllAppliance(houseLayout, writeFile, applianceMap, applianceCount, requestNameMinMap) writeFile.close() print 'No.', print fileCount, print 'yaml file had constructed' fileCount = fileCount + 1 # after constructed request number, reduce the rest request number restRequestNumber = restRequestNumber - repeatNumber deleteRequests = setTempProbabilitiesToProbabilities(deleteRequests) ## get the RLC random result random_observed_load = calculateExpectedLoad(requests, unit) # get observed load ## get output relative parameters random_observed_loads = [random_observed_load] return random_observed_loads
def writeYamlFileAndReturnRandomProbabilitiesOneRequest(Result, houseNumber, requests, unit, folderName, approachName, houseLayout, requestNameMinMap, S_ZipList, lengthMvList): ''' This method used to constructed yaml file and return load information, and each yaml file only had one kind of request. ''' fileCount = 0 totalRequestNumber = yamlLargeHouseNumber.getTotalRequestNumber(requests) restRequestNumber = int(totalRequestNumber) createdRequestNum = 0 while restRequestNumber != 0: if restRequestNumber < houseNumber: repeatNumber = restRequestNumber else: repeatNumber = houseNumber fileName = ''.join(('CSVdata/', folderName, '/resident/' 'resident_', folderName, '_', str(fileCount), '.yaml')) tempResult = getApplianceMapOneRequest(repeatNumber, requests, unit) # get the start time and request name dict applianceMap = tempResult[0] usedNumber = int(tempResult[1]) writeFile = open(fileName, 'w') yamlWriteMethods.writeConstParameters(writeFile) yamlWriteMethods.writeHouseLayout(writeFile, houseLayout) yamlWriteMethods.writeVariableList(writeFile, houseLayout, S_ZipList, lengthMvList) yamlWriteMethods.writeConstSimulation(writeFile) yamlWriteMethods.writeConstNetwork(writeFile) yamlWriteMethods.writeConstHeartbeat(writeFile) yamlWriteMethods.writeTimeSerialLoop(writeFile, applianceMap, folderName) # write load / time_series content yamlWriteMethods.writeConstBus(writeFile) yamlWriteMethods.writeConstGenericgen(writeFile) yamlWriteMethods.writeConstLoop(writeFile) applianceCount = 0 yamlWriteMethods.writeAllAppliance(houseLayout, writeFile, applianceMap, applianceCount, requestNameMinMap) writeFile.close() print 'FileCount is:', print fileCount for key in applianceMap.keys(): print key, print len(applianceMap[key]) deleteRequests = RLCSimulate.setNewRequests(requests) # delete the request which quantity is zero fileCount = fileCount + 1 restRequestNumber = restRequestNumber - usedNumber createdRequestNum = createdRequestNum + usedNumber print 'created request number is: ', print createdRequestNum deleteRequests = RLCSimulate.setTempProbabilitiesToProbabilities(deleteRequests) ## get the RLC random result random_observed_load = RLCSimulate.calculateExpectedLoad(requests, unit) # get observed load ## get output relative parameters random_observed_loads = [random_observed_load] return random_observed_loads