Source code for RCAIDE.Framework.Analyses.Analysis
# RCAIDE/Framework/Analyses/Analysis.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
from RCAIDE.Framework.Core import Data
from RCAIDE.Framework.Core import Container as ContainerBase
# ----------------------------------------------------------------------------------------------------------------------
# Analysis
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Analysis(Data):
""" RCAIDE.Framework.Analyses.Analysis()
The Top Level Analysis Class
Assumptions:
None
Source:
N/A
"""
def __defaults__(self):
"""This sets the default values and methods for the analysis.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
self.tag = 'analysis'
self.features = Data()
self.settings = Data()
[docs]
def initialize(self,*args,**kwarg):
"""This is used to initialize the analysis' specific algorithms.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
return
[docs]
def evaluate(self,*args,**kwarg):
"""This is used to execute the analysis' specific algorithms.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
raise NotImplementedError
return Data()
[docs]
def post_process(self,*args,**kwarg):
"""This is used to post_process
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
return
def __call__(self,*args,**kwarg):
"""This is used to set the class' call behavior to the evaluate function.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
return self.evaluate(*args,**kwarg)
# ----------------------------------------------------------------------------------------------------------------------
# CONFIG CONTAINER
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Container(ContainerBase):
""" RCAIDE.Framework.Analyses.Analysis.Container()
The Analysis Container Class
Assumptions:
None
Source:
N/A
"""
[docs]
def initialize(self,*args,**kwarg):
"""This is used to execute the initialize functions of the analyses
stored in the container.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
for tag,analysis in self.items:
if hasattr(analysis,'initialize'):
analysis.initialize(*args,**kwarg)
[docs]
def evaluate(self,*args,**kwarg):
"""This is used to execute the evaluate functions of the analyses
stored in the container.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
Results of the Evaluate Functions
Properties Used:
N/A
"""
results = Data()
for tag,analysis in self.items():
if hasattr(analysis,'evaluate'):
result = analysis.evaluate(*args,**kwarg)
else:
result = analysis(*args,**kwarg)
results[tag] = result
return results
[docs]
def post_process(self,*args,**kwarg):
"""This is used to execute post processing functions
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
for tag,analysis in self.items():
if hasattr(analysis,'post_process'):
analysis.post_process(*args,**kwarg)
def __call__(self,*args,**kwarg):
"""This is used to set the class' call behavior to the evaluate functions.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
return self.evaluate(*args,**kwarg)
# ----------------------------------------------------------------------------------------------------------------------
# LINKING
# ----------------------------------------------------------------------------------------------------------------------
Analysis.Container = Container