diff --git a/da/baseclasses/model.py b/da/baseclasses/model.py new file mode 100755 index 0000000000000000000000000000000000000000..f516e323b59e095beb18c89cda5caa186de4e180 --- /dev/null +++ b/da/baseclasses/model.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# model.py + +""" +Author : peters + +Revision History: +File created on 30 Aug 2010. + +""" + +import os +import sys +import logging +import datetime + +identifier = 'GeneralObservationOperator' +version = '0.0' + +################### Begin Class ObservationOperator ################### +class ObservationOperator(object): + """ + + This is a class that defines an ObervationOperator. This object is used to control the sampling of + a statevector in the ensemble Kalman filter framework. The methods of this class specify which (external) code + is called to perform the sampling, and which files should be read for input and are written for output. + + The baseclasses consist mainly of empty mehtods that require an application specific application + + """ + + def __init__(self): + """ The instance of an ObservationOperator is application dependent """ + self.Identifier = identifier # the identifier gives the model name + self.Version = version # the model version used + + msg = '%s object initialized'%self.Identifier ; logging.debug(msg) + msg = '%s version: %s'%(self.Identifier,self.Version) ; logging.info(msg) + + def __str__(self): + return "This is a %s object, version %s"%(self.Identifier,self.Version) + + def Initialize(self,DaCycle): + """ Perform all steps necessary to start the observation operator through a simple Run() call """ + + def ValidateInput(self,DaCycle): + """ Make sure that data needed for the ObservationOperator (such as observation input lists, or parameter files) + are present. + """ + def SaveData(self): + """ Write the data that is needed for a restart or recovery of the Observation Operator to the save directory """ + + + +################### End Class ObservationOperator ################### + + + +if __name__ == "__main__": + pass