Commit 4a802e16 authored by panos's avatar panos

Examples updated for testing

parent 95117c78
...@@ -29,7 +29,7 @@ from dream.KnowledgeExtraction.JSONOutput import JSONOutput ...@@ -29,7 +29,7 @@ from dream.KnowledgeExtraction.JSONOutput import JSONOutput
from dream.KnowledgeExtraction.ReplaceMissingValues import HandleMissingValues from dream.KnowledgeExtraction.ReplaceMissingValues import HandleMissingValues
import dream.simulation.LineGenerationJSON as ManPyMain #import ManPy main JSON script import dream.simulation.LineGenerationJSON as ManPyMain #import ManPy main JSON script
from xml.etree import ElementTree as et from xml.etree import ElementTree as et
from CMSDOutput import CMSDOutput from dream.KnowledgeExtraction.CMSDOutput import CMSDOutput
import xlrd import xlrd
import json import json
...@@ -39,66 +39,85 @@ import json ...@@ -39,66 +39,85 @@ import json
#In the following example the operation times of the topology's two machines are given in an Excel document. #In the following example the operation times of the topology's two machines are given in an Excel document.
#Import_Excel object imports data from the Excel document to the tool and DistFittest object fits the data to a statistical distribution using Kolmogorov-Smirnov test #Import_Excel object imports data from the Excel document to the tool and DistFittest object fits the data to a statistical distribution using Kolmogorov-Smirnov test
workbook = xlrd.open_workbook('inputsTwoServers.xls') #Using xlrd library opens the Excel document with the input data def main(test=0, ExcelFileName='inputsTwoServers.xls',
worksheets = workbook.sheet_names() JSONFileName='JSON_TwoServers.json',
worksheet_OperationTime = worksheets[0] #It creates a variable that holds the first Excel worksheet CMSDFileName='CMSD_TwoServers.xml',
workbook=None,
X=Import_Excel() #Call the import_Excel object jsonFile=None, cmsdFile=None):
OperationTimes= X.Input_data(worksheet_OperationTime,workbook) #It defines a Python dictionary, giving as name OpearationTimes and as value the returned dictionary from the import_Excel object if not workbook:
Machine1_OpearationTimes = OperationTimes.get('Machine1',[]) #Two lists are defined (Machine1_OpearationTimes, Machine2_OpearationTimes) with the operation times data of each machine workbook = xlrd.open_workbook(ExcelFileName) #Using xlrd library opens the Excel document with the input data
Machine2_OpearationTimes = OperationTimes.get('Machine2',[]) worksheets = workbook.sheet_names()
worksheet_OperationTime = worksheets[0] #It creates a variable that holds the first Excel worksheet
A=HandleMissingValues() #Call the HandleMissingValues object
Machine1_OpearationTimes= A.DeleteMissingValue(Machine1_OpearationTimes) #It deletes the missing values in the lists with the operation times data X=Import_Excel() #Call the import_Excel object
Machine2_OpearationTimes= A.DeleteMissingValue(Machine2_OpearationTimes) OperationTimes= X.Input_data(worksheet_OperationTime,workbook) #It defines a Python dictionary, giving as name OpearationTimes and as value the returned dictionary from the import_Excel object
Machine1_OpearationTimes = OperationTimes.get('Machine1',[]) #Two lists are defined (Machine1_OpearationTimes, Machine2_OpearationTimes) with the operation times data of each machine
Dict={} Machine2_OpearationTimes = OperationTimes.get('Machine2',[])
B=DistFittest() #It calls the DistFittest object
Dict['M1']=B.ks_test(Machine1_OpearationTimes) #It conducts the Kolmogorov-Smirnov test in the list with the operation times data A=HandleMissingValues() #Call the HandleMissingValues object
Dict['M2']=B.ks_test(Machine2_OpearationTimes) Machine1_OpearationTimes= A.DeleteMissingValue(Machine1_OpearationTimes) #It deletes the missing values in the lists with the operation times data
M1=Dict.get('M1') Machine2_OpearationTimes= A.DeleteMissingValue(Machine2_OpearationTimes)
M2=Dict.get('M2')
Dict={}
B=DistFittest() #It calls the DistFittest object
#==================================== Output preparation: output the updated values in the CMSD information model ====================================================# Dict['M1']=B.ks_test(Machine1_OpearationTimes) #It conducts the Kolmogorov-Smirnov test in the list with the operation times data
Dict['M2']=B.ks_test(Machine2_OpearationTimes)
datafile=('CMSD_TwoServers.xml') #It defines the name or the directory of the XML file that is manually written the CMSD information model M1=Dict.get('M1')
tree = et.parse(datafile) #This file will be parsed using the XML.ETREE Python library M2=Dict.get('M2')
exportCMSD=CMSDOutput() #==================================== Output preparation: output the updated values in the CMSD information model ====================================================#
stationId1='A020' if not cmsdFile:
stationId2='A040' datafile=CMSDFileName #It defines the name or the directory of the XML file that is manually written the CMSD information model
procTime1=exportCMSD.ProcessingTimes(tree, stationId1, M1) tree = et.parse(datafile) #This file will be parsed using the XML.ETREE Python library
procTime2=exportCMSD.ProcessingTimes(procTime1, stationId2, M2)
exportCMSD=CMSDOutput()
procTime2.write('CMSD_TwoServers_Output.xml',encoding="utf8") #It writes the element tree to a specified file, using the 'utf8' output encoding stationId1='A020'
#================================= Output preparation: output the updated values in the JSON file of Topology10 =========================================================# stationId2='A040'
jsonFile= open('JSON_TwoServers.json','r') #It opens the Topology10 JSON file procTime1=exportCMSD.ProcessingTimes(tree, stationId1, M1)
data = json.load(jsonFile) #It loads the file procTime2=exportCMSD.ProcessingTimes(procTime1, stationId2, M2)
jsonFile.close()
procTime2.write('CMSD_TwoServers_Output.xml',encoding="utf8") #It writes the element tree to a specified file, using the 'utf8' output encoding
exportJSON=JSONOutput() #================================= Output preparation: output the updated values in the JSON file of Topology10 =========================================================#
stationId1='M1' if not jsonFile:
stationId2='M2' jsonFile = open(JSONFileName,'r') #It opens the JSON file
data=exportJSON.ProcessingTimes(data, stationId1, M1) data = json.load(jsonFile) #It loads the file
data1=exportJSON.ProcessingTimes(data, stationId2, M2) jsonFile.close()
else:
jsonFile = open('JSON_TwoServers_Output.json',"w") #It opens the JSON file data = json.load(jsonFile)
jsonFile.write(json.dumps(data1, indent=True)) #It writes the updated data to the JSON file
jsonFile.close() #It closes the file exportJSON=JSONOutput()
stationId1='M1'
#================================ Calling the ExcelOutput object, outputs the outcomes of the statistical analysis in Excel files =============================================# stationId2='M2'
C=Output() data=exportJSON.ProcessingTimes(data, stationId1, M1)
C.PrintDistributionFit(Machine1_OpearationTimes,'Machine1_DistFitResults.xls') data1=exportJSON.ProcessingTimes(data, stationId2, M2)
C.PrintStatisticalMeasures(Machine1_OpearationTimes,'Machine1_StatResults.xls')
C.PrintDistributionFit(Machine2_OpearationTimes,'Machine2_DistFitResults.xls') #================================ Call ManPy and run the simulation model =============================================#
C.PrintStatisticalMeasures(Machine2_OpearationTimes,'Machine2_StatResults.xls') #calls ManPy main script with the input
simulationOutput=ManPyMain.main(input_data=json.dumps(data1))
#================================ Call ManPy and run the simulation model =============================================#
#calls ManPy main script with the input # if we run from test return the ManPy result
simulationOutput=ManPyMain.main(input_data=json.dumps(data)) if test:
# save the simulation output return simulationOutput
jsonFile = open('ManPyOutput.json',"w") #It opens the JSON file
jsonFile.write(simulationOutput) #It writes the updated data to the JSON file #=================== Ouput the JSON file ==========================#
jsonFile.close() #It closes the file jsonFile = open('JSON_TwoServers_Output.json',"w") #It opens the JSON file
jsonFile.write(json.dumps(data1, indent=True)) #It writes the updated data to the JSON file
\ No newline at end of file jsonFile.close() #It closes the file
#================================ Calling the ExcelOutput object, outputs the outcomes of the statistical analysis in Excel files =============================================#
C=Output()
C.PrintDistributionFit(Machine1_OpearationTimes,'Machine1_DistFitResults.xls')
C.PrintStatisticalMeasures(Machine1_OpearationTimes,'Machine1_StatResults.xls')
C.PrintDistributionFit(Machine2_OpearationTimes,'Machine2_DistFitResults.xls')
C.PrintStatisticalMeasures(Machine2_OpearationTimes,'Machine2_StatResults.xls')
#================================ Call ManPy and run the simulation model =============================================#
#calls ManPy main script with the input
simulationOutput=ManPyMain.main(input_data=json.dumps(data))
# save the simulation output
jsonFile = open('ManPyOutput.json',"w") #It opens the JSON file
jsonFile.write(simulationOutput) #It writes the updated data to the JSON file
jsonFile.close() #It closes the file
if __name__ == '__main__':
main()
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment