Commit 44b13701 authored by Peters, Wouter's avatar Peters, Wouter
Browse files

changed initialize to setup

parent 845f7c35
...@@ -9,7 +9,7 @@ Revision History: ...@@ -9,7 +9,7 @@ Revision History:
File created on 28 Jul 2010. File created on 28 Jul 2010.
.. autoclass:: da.baseclasses.obs.Observations .. autoclass:: da.baseclasses.obs.Observations
:members: initialize, Validate, add_observations, add_simulations, add_model_data_mismatch, write_sample_coords :members: setup, Validate, add_observations, add_simulations, add_model_data_mismatch, write_sample_coords
.. autoclass:: da.baseclasses.obs.ObservationList .. autoclass:: da.baseclasses.obs.ObservationList
:members: __init__ :members: __init__
...@@ -61,7 +61,7 @@ class Observations(object): ...@@ -61,7 +61,7 @@ class Observations(object):
def getlength(self): def getlength(self):
return len(self.datalist) return len(self.datalist)
def initialize(self, cycleparams): def setup(self, cycleparams):
""" Perform all steps needed to start working with observational data, this can include moving data, concatenating files, """ Perform all steps needed to start working with observational data, this can include moving data, concatenating files,
selecting datasets, etc. selecting datasets, etc.
""" """
......
...@@ -52,7 +52,7 @@ class ObservationOperator(object): ...@@ -52,7 +52,7 @@ class ObservationOperator(object):
def get_initial_data(self): def get_initial_data(self):
""" This method places all initial data needed by an ObservationOperator in the proper folder for the model """ """ This method places all initial data needed by an ObservationOperator in the proper folder for the model """
def initialize(self): def setup(self):
""" Perform all steps necessary to start the observation operator through a simple Run() call """ """ Perform all steps necessary to start the observation operator through a simple Run() call """
def validate_input(self): def validate_input(self):
......
...@@ -34,7 +34,7 @@ class Optimizer(object): ...@@ -34,7 +34,7 @@ class Optimizer(object):
logging.info('Optimizer object initialized: %s' % self.ID) logging.info('Optimizer object initialized: %s' % self.ID)
def initialize(self, dims): def setup(self, dims):
self.nlag = dims[0] self.nlag = dims[0]
self.nmembers = dims[1] self.nmembers = dims[1]
self.nparams = dims[2] self.nparams = dims[2]
......
...@@ -80,7 +80,7 @@ class StateVector(object): ...@@ -80,7 +80,7 @@ class StateVector(object):
modified to be used in other parts of the pipeline: modified to be used in other parts of the pipeline:
* nobs * nobs
These values are set as soon as the :meth:`~da.baseclasses.statevector.StateVector.initialize` is called from the :ref:`pipeline`. These values are set as soon as the :meth:`~da.baseclasses.statevector.StateVector.setup` is called from the :ref:`pipeline`.
Additionally, the value of attribute `isOptimized` is set to `False` indicating that the StateVector holds a-priori values Additionally, the value of attribute `isOptimized` is set to `False` indicating that the StateVector holds a-priori values
and has not been modified by the :ref:`optimizer`. and has not been modified by the :ref:`optimizer`.
...@@ -98,7 +98,7 @@ class StateVector(object): ...@@ -98,7 +98,7 @@ class StateVector(object):
The methods are described below: The methods are described below:
.. automethod:: da.baseclasses.statevector.StateVector.initialize .. automethod:: da.baseclasses.statevector.StateVector.setup
.. automethod:: da.baseclasses.statevector.StateVector.read_from_file .. automethod:: da.baseclasses.statevector.StateVector.read_from_file
.. automethod:: da.baseclasses.statevector.StateVector.write_to_file .. automethod:: da.baseclasses.statevector.StateVector.write_to_file
.. automethod:: da.baseclasses.statevector.StateVector.make_new_ensemble .. automethod:: da.baseclasses.statevector.StateVector.make_new_ensemble
...@@ -123,9 +123,9 @@ class StateVector(object): ...@@ -123,9 +123,9 @@ class StateVector(object):
logging.info('Statevector object initialized: %s' % self.ID) logging.info('Statevector object initialized: %s' % self.ID)
def initialize(self, dacycle): def setup(self, dacycle):
""" """
initialize the object by specifying the dimensions. setup the object by specifying the dimensions.
There are two major requirements for each statvector that you want to build: There are two major requirements for each statvector that you want to build:
(1) is that the statevector can map itself onto a regular grid (1) is that the statevector can map itself onto a regular grid
......
...@@ -31,7 +31,7 @@ import da.tools.rc as rc ...@@ -31,7 +31,7 @@ import da.tools.rc as rc
class CO2Observations(Observations): class CO2Observations(Observations):
""" an object that holds data + methods and attributes needed to manipulate mixing ratio values """ """ an object that holds data + methods and attributes needed to manipulate mixing ratio values """
def initialize(self, dacycle): def setup(self, dacycle):
self.startdate = dacycle['time.sample.start'] self.startdate = dacycle['time.sample.start']
self.enddate = dacycle['time.sample.end'] self.enddate = dacycle['time.sample.end']
......
...@@ -33,7 +33,7 @@ version = '0.0' ...@@ -33,7 +33,7 @@ version = '0.0'
class ObsPackObservations(Observations): class ObsPackObservations(Observations):
""" an object that holds data + methods and attributes needed to manipulate mixing ratio values """ """ an object that holds data + methods and attributes needed to manipulate mixing ratio values """
def initialize(self, dacycle): def setup(self, dacycle):
self.startdate = dacycle['time.sample.start'] self.startdate = dacycle['time.sample.start']
self.enddate = dacycle['time.sample.end'] self.enddate = dacycle['time.sample.end']
......
...@@ -58,7 +58,7 @@ class TM5ObservationOperator(ObservationOperator): ...@@ -58,7 +58,7 @@ class TM5ObservationOperator(ObservationOperator):
[]> tm.WriteRunRc() []> tm.WriteRunRc()
[]> tm.run() []> tm.run()
To use this class inside a data assimilation cycle, a stand-alone method "initialize()" is included which modifies the TM5 To use this class inside a data assimilation cycle, a stand-alone method "setup()" is included which modifies the TM5
settings according to an external dictionary of values to overwrite, and then runs the TM5 model. settings according to an external dictionary of values to overwrite, and then runs the TM5 model.
...@@ -78,7 +78,7 @@ class TM5ObservationOperator(ObservationOperator): ...@@ -78,7 +78,7 @@ class TM5ObservationOperator(ObservationOperator):
logging.info('Observation Operator initialized: %s (%s)' % (self.ID, self.version)) logging.info('Observation Operator initialized: %s (%s)' % (self.ID, self.version))
def initialize(self, dacycle): def setup(self, dacycle):
""" """
Execute all steps needed to prepare the ObsOperator for use inside CTDAS, only done at the very first cycle normally Execute all steps needed to prepare the ObsOperator for use inside CTDAS, only done at the very first cycle normally
......
...@@ -40,7 +40,7 @@ like this::: ...@@ -40,7 +40,7 @@ like this:::
The most important method of the CycleControl object are listed below: The most important method of the CycleControl object are listed below:
.. autoclass:: da.tools.initexit.CycleControl .. autoclass:: da.tools.initexit.CycleControl
:members: initialize, finalize, collect_restart_data, move_restart_data, :members: setup, finalize, collect_restart_data, move_restart_data,
submit_next_cycle, setup_file_structure, recover_run, random_seed submit_next_cycle, setup_file_structure, recover_run, random_seed
Two important attributes of the CycleControl object are: Two important attributes of the CycleControl object are:
...@@ -263,7 +263,7 @@ class CycleControl(dict): ...@@ -263,7 +263,7 @@ class CycleControl(dict):
logging.info("Retrieved the random seed generator values of last cycle from file") logging.info("Retrieved the random seed generator values of last cycle from file")
def initialize(self): def setup(self):
""" """
This method determines how to proceed with the cycle. Three options are implemented: This method determines how to proceed with the cycle. Three options are implemented:
......
...@@ -120,12 +120,12 @@ def start_job(dacycle, dasystem, platform, statevector, samples, obsoperator): ...@@ -120,12 +120,12 @@ def start_job(dacycle, dasystem, platform, statevector, samples, obsoperator):
dasystem.validate() dasystem.validate()
dacycle.dasystem = dasystem dacycle.dasystem = dasystem
dacycle.daplatform = platform dacycle.daplatform = platform
dacycle.initialize() dacycle.setup()
#statevector.dacycle = dacycle # also embed object in statevector so it can access cycle information for I/O etc #statevector.dacycle = dacycle # also embed object in statevector so it can access cycle information for I/O etc
#samples.dacycle = dacycle # also embed object in samples object so it can access cycle information for I/O etc #samples.dacycle = dacycle # also embed object in samples object so it can access cycle information for I/O etc
#obsoperator.dacycle = dacycle # also embed object in obsoperator object so it can access cycle information for I/O etc #obsoperator.dacycle = dacycle # also embed object in obsoperator object so it can access cycle information for I/O etc
obsoperator.initialize(dacycle) # Setup Observation Operator obsoperator.setup(dacycle) # Setup Observation Operator
statevector.initialize(dacycle) statevector.setup(dacycle)
def prepare_state(dacycle, statevector): def prepare_state(dacycle, statevector):
""" Set up the input data for the forward model: obs and parameters/fluxes""" """ Set up the input data for the forward model: obs and parameters/fluxes"""
...@@ -214,7 +214,7 @@ def sample_step(dacycle, samples, statevector, obsoperator, lag, advance=False): ...@@ -214,7 +214,7 @@ def sample_step(dacycle, samples, statevector, obsoperator, lag, advance=False):
statevector.write_members_to_file(lag, dacycle['dir.input']) statevector.write_members_to_file(lag, dacycle['dir.input'])
samples.initialize(dacycle) samples.setup(dacycle)
samples.add_observations() samples.add_observations()
# Add model-data mismatch to all samples, this *might* use output from the ensemble in the future?? # Add model-data mismatch to all samples, this *might* use output from the ensemble in the future??
...@@ -280,7 +280,7 @@ def invert(dacycle, statevector, optimizer): ...@@ -280,7 +280,7 @@ def invert(dacycle, statevector, optimizer):
logging.info("Using the bulk minimum least squares algorithm to solve ENKF equations") logging.info("Using the bulk minimum least squares algorithm to solve ENKF equations")
optimizer.set_algorithm('Bulk') optimizer.set_algorithm('Bulk')
optimizer.initialize(dims) optimizer.setup(dims)
optimizer.state_to_matrix(statevector) optimizer.state_to_matrix(statevector)
diagnostics_file = os.path.join(dacycle['dir.output'], 'optimizer.%s.nc' % dacycle['time.start'].strftime('%Y%m%d')) diagnostics_file = os.path.join(dacycle['dir.output'], 'optimizer.%s.nc' % dacycle['time.start'].strftime('%Y%m%d'))
......
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