From c62e21e1ef4860e80d2244ce0b5746211a869216 Mon Sep 17 00:00:00 2001
From: karolina <amvdw95@gmail.com>
Date: Thu, 6 Jun 2013 17:02:33 +0000
Subject: [PATCH] renamed package ct to carbondioxide and ctgridded to
 co2gridded renamed class names Ct- to CO2- changed class name Observation to
 Observations small cleanup changes to template.py

---
 gridded/da/analysis/expand_fluxes.py          | 16 ++--
 gridded/da/analysis/expand_mixingratios.py    |  5 +-
 gridded/da/analysis/siteseries.py             |  6 +-
 gridded/da/analysis/summarize_obs.py          |  4 +-
 gridded/da/baseclasses/obs.py                 | 29 +++----
 gridded/da/baseclasses/optimizer.py           |  2 +-
 gridded/da/{ct => carbondioxide}/__init__.py  |  0
 gridded/da/{ct => carbondioxide}/dasystem.py  |  6 +-
 gridded/da/{ct => carbondioxide}/obs.py       | 12 +--
 gridded/da/{ct => carbondioxide}/obspack.py   | 10 +--
 .../obspack_geocarbon.py                      | 12 +--
 gridded/da/{ct => carbondioxide}/optimizer.py |  8 +-
 .../standardvariables.py                      |  0
 .../da/{ct => carbondioxide}/statevector.py   |  8 +-
 .../da/{ctgridded => co2gridded}/__init__.py  |  0
 .../da/{ctgridded => co2gridded}/dasystem.py  |  2 +-
 .../{ctgridded => co2gridded}/statevector.py  |  2 +-
 gridded/da/examples/das.py                    | 18 ++---
 gridded/da/examples/dasgridded.py             | 16 ++--
 gridded/da/examples/dasjet.py                 | 16 ++--
 gridded/da/tm5/observationoperator.py         | 11 +--
 gridded/da/tools/initexit.py                  | 13 ++--
 gridded/da/tools/pipeline.py                  | 29 ++++---
 gridded/template.py                           | 78 +++++++++----------
 24 files changed, 141 insertions(+), 162 deletions(-)
 rename gridded/da/{ct => carbondioxide}/__init__.py (100%)
 rename gridded/da/{ct => carbondioxide}/dasystem.py (88%)
 rename gridded/da/{ct => carbondioxide}/obs.py (98%)
 rename gridded/da/{ct => carbondioxide}/obspack.py (98%)
 rename gridded/da/{ct => carbondioxide}/obspack_geocarbon.py (97%)
 rename gridded/da/{ct => carbondioxide}/optimizer.py (91%)
 rename gridded/da/{ct => carbondioxide}/standardvariables.py (100%)
 rename gridded/da/{ct => carbondioxide}/statevector.py (93%)
 rename gridded/da/{ctgridded => co2gridded}/__init__.py (100%)
 rename gridded/da/{ctgridded => co2gridded}/dasystem.py (97%)
 rename gridded/da/{ctgridded => co2gridded}/statevector.py (99%)

diff --git a/gridded/da/analysis/expand_fluxes.py b/gridded/da/analysis/expand_fluxes.py
index 8f11df6..eba9126 100755
--- a/gridded/da/analysis/expand_fluxes.py
+++ b/gridded/da/analysis/expand_fluxes.py
@@ -117,7 +117,7 @@ def save_weekly_avg_1x1_data(DaCycle, StateVector):
                 for n in range(nlag, 0, -1):
                     priordate = enddate - timedelta(dt.days * n)
                     savedir = DaCycle['dir.output'].replace(startdate.strftime('%Y%m%d'), priordate.strftime('%Y%m%d'))
-                    filename = os.path.join(savedir, 'savestate.nc')#LU i suppose that it would be priordate (savestate gets same stamp as dir.output=
+                    filename = os.path.join(savedir, 'savestate_%s.nc' % priordate.strftime('%Y%m%d'))
                     if os.path.exists(filename):
                         StateVector.read_from_file(filename, qual=qual_short)
                         gridmean, gridensemble = StateVector.state_to_grid(lag=n)
@@ -131,7 +131,7 @@ def save_weekly_avg_1x1_data(DaCycle, StateVector):
             else:
                 qual_short = 'opt'
                 savedir = DaCycle['dir.output']
-                filename = os.path.join(savedir, 'savestate.nc')
+                filename = os.path.join(savedir, 'savestate_%s.nc' % startdate.strftime('%Y%m%d'))
                 StateVector.read_from_file(filename, qual=qual_short)
                 gridmean, gridensemble = StateVector.state_to_grid(lag=1)
 
@@ -301,7 +301,7 @@ def save_weekly_avg_state_data(DaCycle, StateVector):
                 for n in range(nlag, 0, -1):
                     priordate = enddate - timedelta(dt.days * n)
                     savedir = DaCycle['dir.output'].replace(startdate.strftime('%Y%m%d'), priordate.strftime('%Y%m%d'))
-                    filename = os.path.join(savedir, 'savestate.nc')
+                    filename = os.path.join(savedir,'savestate_%s.nc' % priordate.strftime('%Y%m%d'))
                     if os.path.exists(filename):
                         StateVector.read_from_file(filename, qual=qual_short)
 
@@ -316,7 +316,7 @@ def save_weekly_avg_state_data(DaCycle, StateVector):
             else:
                 qual_short = 'opt'
                 savedir = DaCycle['dir.output']
-                filename = os.path.join(savedir, 'savestate.nc')
+                filename = os.path.join(savedir, 'savestate_%s.nc' % startdate.strftime('%Y%m%d'))
                 StateVector.read_from_file(filename)
                 choicelag = 1
                 statemean = StateVector.EnsembleMembers[choicelag - 1][0].ParameterValues
@@ -1027,8 +1027,8 @@ if __name__ == "__main__":
 
     import logging
     from da.tools.initexit import CycleControl
-    from da.ct.dasystem import CtDaSystem 
-    from da.ct.statevector import CtStateVector 
+    from da.carbondioxide.dasystem import CO2DaSystem 
+    from da.carbondioxide.statevector import CO2StateVector 
 
     sys.path.append('../../')
 
@@ -1038,11 +1038,11 @@ if __name__ == "__main__":
     DaCycle.initialize()
     DaCycle.parse_times()
 
-    DaSystem = CtDaSystem('../rc/carbontracker_ct09_opfnew.rc')
+    DaSystem = CO2DaSystem('../rc/carbontracker_ct09_opfnew.rc')
 
     DaCycle.DaSystem = DaSystem
 
-    StateVector = CtStateVector()
+    StateVector = CO2StateVector()
     StateVector.initialize(DaCycle)
 
     while DaCycle['time.end'] < DaCycle['time.finish']:
diff --git a/gridded/da/analysis/expand_mixingratios.py b/gridded/da/analysis/expand_mixingratios.py
index 7e0154c..d436ba3 100755
--- a/gridded/da/analysis/expand_mixingratios.py
+++ b/gridded/da/analysis/expand_mixingratios.py
@@ -315,10 +315,9 @@ def write_mixing_ratios(DaCycle):
 
 
 if __name__ == "__main__":
-
     import logging
     from da.tools.initexit import CycleControl
-    from da.ct.dasystem import CtDaSystem
+    from da.carbondioxide.dasystem import CO2DaSystem
 
     sys.path.append('../../')
 
@@ -328,7 +327,7 @@ if __name__ == "__main__":
     DaCycle.initialize()
     DaCycle.parse_times()
 
-    DaSystem = CtDaSystem('../rc/carbontracker_ct09_opf.rc')
+    DaSystem = CO2DaSystem('../rc/carbontracker_ct09_opf.rc')
     DaSystem.initialize()
 
     DaCycle.DaSystem = DaSystem
diff --git a/gridded/da/analysis/siteseries.py b/gridded/da/analysis/siteseries.py
index 804e7e9..494c9a4 100755
--- a/gridded/da/analysis/siteseries.py
+++ b/gridded/da/analysis/siteseries.py
@@ -745,8 +745,8 @@ def residuals_new(fig, infile):
 if __name__ == '__main__':    # started as script
 
     from da.tools.initexit import CycleControl
-    from da.ct.dasystem import CtDaSystem 
-    from da.ct.statevector import CtStateVector 
+    from da.carbondioxide.dasystem import CO2DaSystem 
+    from da.carbondioxide.statevector import CO2StateVector 
 
     sys.path.append('../../')
 
@@ -756,7 +756,7 @@ if __name__ == '__main__':    # started as script
     DaCycle.initialize()
     DaCycle.parse_times()
 
-    DaSystem = CtDaSystem('../rc/carbontracker_ct09_opf.rc')
+    DaSystem = CO2DaSystem('../rc/carbontracker_ct09_opf.rc')
     DaSystem.initialize()
 
     DaCycle.DaSystem = DaSystem
diff --git a/gridded/da/analysis/summarize_obs.py b/gridded/da/analysis/summarize_obs.py
index d442de6..dcdd617 100755
--- a/gridded/da/analysis/summarize_obs.py
+++ b/gridded/da/analysis/summarize_obs.py
@@ -332,7 +332,7 @@ def grep(pattern, fil):
 
 if __name__ == '__main__':    # started as script
     from da.tools.initexit import CycleControl
-    from da.ct.dasystem import CtDaSystem 
+    from da.carbondioxide.dasystem import CO2DaSystem 
 
     sys.path.append('../../')
 
@@ -342,7 +342,7 @@ if __name__ == '__main__':    # started as script
     DaCycle.initialize()
     DaCycle.parse_times()
 
-    DaSystem = CtDaSystem('../rc/carbontracker_ct09_opf.rc')
+    DaSystem = CO2DaSystem('../rc/carbontracker_ct09_opf.rc')
     DaSystem.initialize()
 
     DaCycle.DaSystem = DaSystem
diff --git a/gridded/da/baseclasses/obs.py b/gridded/da/baseclasses/obs.py
index 4187ada..293424f 100755
--- a/gridded/da/baseclasses/obs.py
+++ b/gridded/da/baseclasses/obs.py
@@ -8,7 +8,7 @@
 Revision History:
 File created on 28 Jul 2010.
 
-.. autoclass:: da.baseclasses.obs.Observation 
+.. autoclass:: da.baseclasses.obs.Observations 
    :members: initialize, Validate, add_observations, add_simulations, add_model_data_mismatch, write_sample_info  
 
 .. autoclass:: da.baseclasses.obs.ObservationList 
@@ -19,14 +19,14 @@ File created on 28 Jul 2010.
 import logging
 from numpy import array, ndarray
 
-identifier = 'Observation baseclass'
+identifier = 'Observations baseclass'
 version = '0.0'
 
-################### Begin Class Observation ###################
+################### Begin Class Observations ###################
 
-class Observation(object):
+class Observations(object):
     """ 
-    The baseclass Observation is a generic object that provides a number of methods required for any type of observations used in 
+    The baseclass Observations is a generic object that provides a number of methods required for any type of observations used in 
     a data assimilation system. These methods are called from the CarbonTracker pipeline. 
 
     .. note:: Most of the actual functionality will need to be provided through a derived Observations class with the methods 
@@ -35,17 +35,17 @@ class Observation(object):
 
     Upon initialization of the class, an object is created that holds no actual data, but has a placeholder attribute `self.Data` 
     which is an empty list of type :class:`~da.baseclasses.obs.ObservationList`. An ObservationList object is created when the 
-    method :meth:`~da.baseclasses.obs.Observation.add_observations` is invoked in the pipeline. 
+    method :meth:`~da.baseclasses.obs.Observations.add_observations` is invoked in the pipeline. 
 
     From the list of observations, a file is written  by method 
-    :meth:`~da.baseclasses.obs.Observation.write_sample_info`
+    :meth:`~da.baseclasses.obs.Observations.write_sample_info`
     with the sample info needed by the 
     :class:`~da.baseclasses.observationoperator.ObservationOperator` object. The values returned after sampling 
-    are finally added by :meth:`~da.baseclasses.obs.Observation.add_simulations`
+    are finally added by :meth:`~da.baseclasses.obs.Observations.add_simulations`
 
     """ 
 
-    def __init__(self, DaCycle=None):#LU to sie nigdy nie wywola, prawda?
+    def __init__(self):
         """
         create an object with an identifier, version, and an empty ObservationList
         """
@@ -56,12 +56,7 @@ class Observation(object):
         # The following code allows the object to be initialized with a DaCycle object already present. Otherwise, it can
         # be added at a later moment.
 
-        if DaCycle != None:
-            self.DaCycle = DaCycle
-        else:
-            self.DaCycle = {}
-
-        logging.info('Observation object initialized: %s' % self.Identifier)
+        logging.info('Observations object initialized: %s' % self.Identifier)
 
     def getlength(self):
         return len(self.datalist)
@@ -73,7 +68,7 @@ class Observation(object):
 
     def add_observations(self):
         """ 
-        Add actual observation data to the Observation object. This is in a form of an 
+        Add actual observation data to the Observations object. This is in a form of an 
         :class:`~da.baseclasses.obs.ObservationList` that is contained in self.Data. The 
         list has as only requirement that it can return the observed+simulated values 
         through the method :meth:`~da.baseclasses.obs.ObservationList.getvalues`
@@ -81,7 +76,7 @@ class Observation(object):
         """
 
     def add_simulations(self):
-        """ Add the simulation data to the Observation object. 
+        """ Add the simulation data to the Observations object. 
         """
 
     def add_model_data_mismatch(self):
diff --git a/gridded/da/baseclasses/optimizer.py b/gridded/da/baseclasses/optimizer.py
index 481090c..7a69636 100755
--- a/gridded/da/baseclasses/optimizer.py
+++ b/gridded/da/baseclasses/optimizer.py
@@ -116,7 +116,7 @@ class Optimizer(object):
 
                 simulatedensemble = Samples.getvalues('simulated')
 
-                if allsimulated == None :           #LU if allsimulated: np.concatenate; else: np.array
+                if allsimulated == None :     
                     allsimulated = np.array(simulatedensemble)
                 else:
                     allsimulated = np.concatenate((allsimulated, np.array(simulatedensemble)), axis=0)
diff --git a/gridded/da/ct/__init__.py b/gridded/da/carbondioxide/__init__.py
similarity index 100%
rename from gridded/da/ct/__init__.py
rename to gridded/da/carbondioxide/__init__.py
diff --git a/gridded/da/ct/dasystem.py b/gridded/da/carbondioxide/dasystem.py
similarity index 88%
rename from gridded/da/ct/dasystem.py
rename to gridded/da/carbondioxide/dasystem.py
index aece2e9..daf9444 100755
--- a/gridded/da/ct/dasystem.py
+++ b/gridded/da/carbondioxide/dasystem.py
@@ -11,11 +11,11 @@ File created on 26 Aug 2010.
 
 import logging
 
-################### Begin Class CtDaSystem ###################
+################### Begin Class CO2DaSystem ###################
 
 from da.baseclasses.dasystem import DaSystem
 
-class CtDaSystem(DaSystem):
+class CO2DaSystem(DaSystem):
     """ Information on the data assimilation system used. This is normally an rc-file with settings.
     """
     def validate(self):
@@ -43,7 +43,7 @@ class CtDaSystem(DaSystem):
                 logging.warning('Missing a required value in rc-file : %s' % key)
         logging.debug('DA System Info settings have been validated succesfully')
 
-################### End Class CtDaSystem ###################
+################### End Class CO2DaSystem ###################
 
 
 if __name__ == "__main__":
diff --git a/gridded/da/ct/obs.py b/gridded/da/carbondioxide/obs.py
similarity index 98%
rename from gridded/da/ct/obs.py
rename to gridded/da/carbondioxide/obs.py
index c7ae377..5c3ff27 100755
--- a/gridded/da/ct/obs.py
+++ b/gridded/da/carbondioxide/obs.py
@@ -22,13 +22,13 @@ sys.path.append('../../')
 identifier = 'CarbonTracker CO2 mixing ratios'
 version = '0.0'
 
-from da.baseclasses.obs import Observation
+from da.baseclasses.obs import Observations
 import da.tools.io4 as io
 import da.tools.rc as rc
 
-################### Begin Class CtObservations ###################
+################### Begin Class CO2Observations ###################
 
-class CtObservations(Observation):
+class CO2Observations(Observations):
     """ an object that holds data + methods and attributes needed to manipulate mixing ratio values """
 
     def initialize(self, DaCycle):
@@ -305,13 +305,13 @@ class CtObservations(Observation):
                 logging.warning("Observation NOT found (%s, %s), please check sites.rc file  (%s)  !!!" % (obs.code, identifier, self.SitesFile))
                 obs.flag = 99
 
-            # Add SiteInfo dictionary to the Observation object for future use
+            # Add SiteInfo dictionary to the Observations object for future use
 
             self.SiteInfo = SiteInfo
 
     def write_obs_to_file(self, outfile):
         """ 
-            Write selected information contained in the Observation object to a file. 
+            Write selected information contained in the Observations object to a file. 
 
         """
         
@@ -415,7 +415,7 @@ class CtObservations(Observation):
         #return outfile
 
 
-################### End Class CtObservations ###################
+################### End Class CO2Observations ###################
 
 
 
diff --git a/gridded/da/ct/obspack.py b/gridded/da/carbondioxide/obspack.py
similarity index 98%
rename from gridded/da/ct/obspack.py
rename to gridded/da/carbondioxide/obspack.py
index ef10aa8..a0920dd 100755
--- a/gridded/da/ct/obspack.py
+++ b/gridded/da/carbondioxide/obspack.py
@@ -20,7 +20,7 @@ sys.path.append('../../')
 
 import da.tools.io4 as io
 import da.tools.rc as rc
-from da.baseclasses.obs import Observation
+from da.baseclasses.obs import Observations
 from da.tools.general import name_convert
 
 identifier = 'CarbonTracker CO2 mixing ratios'
@@ -30,7 +30,7 @@ version = '0.0'
 
 ################### Begin Class ObsPackObservations ###################
 
-class ObsPackObservations(Observation):
+class ObsPackObservations(Observations):
     """ an object that holds data + methods and attributes needed to manipulate mixing ratio values """
 
     def initialize(self, DaCycle):
@@ -111,7 +111,7 @@ class ObsPackObservations(Observation):
 
             logging.debug("Added %d observations from file (%s) to the Data list" % (len(dates), ncfile))
 
-        logging.info("Observation list now holds %d values" % len(self.datalist))
+        logging.info("Observations list now holds %d values" % len(self.datalist))
 
     def add_simulations(self, filename, silent=False):
         """ Adds model simulated values to the mixing ratio objects """
@@ -330,13 +330,13 @@ class ObsPackObservations(Observation):
                 logging.warning("Observation found (%s, %s), but not used in assimilation !!!" % (obs.code, identifier))
                 obs.flag = 99
 
-            # Add SiteInfo dictionary to the Observation object for future use
+            # Add SiteInfo dictionary to the Observations object for future use
 
             self.SiteInfo = SiteInfo
 
     def write_obs_to_file(self, outfile):
         """ 
-            Write selected information contained in the Observation object to a file. 
+            Write selected information contained in the Observations object to a file. 
 
         """
 
diff --git a/gridded/da/ct/obspack_geocarbon.py b/gridded/da/carbondioxide/obspack_geocarbon.py
similarity index 97%
rename from gridded/da/ct/obspack_geocarbon.py
rename to gridded/da/carbondioxide/obspack_geocarbon.py
index be3eb0f..3a7bfa2 100755
--- a/gridded/da/ct/obspack_geocarbon.py
+++ b/gridded/da/carbondioxide/obspack_geocarbon.py
@@ -21,12 +21,12 @@ sys.path.append('../../')
 identifier = 'CarbonTracker CO2 mixing ratios'
 version = '0.0'
 
-from da.baseclasses.obs import Observation
+from da.baseclasses.obs import Observations
 import da.tools.io4 as io
 import da.tools.rc as rc
 ################### Begin Class ObsPackObservations ###################
 
-class ObsPackObservations(Observation):
+class ObsPackObservations(Observations):
     """ an object that holds data + methods and attributes needed to manipulate mixing ratio values """
 
     def initialize(self, DaCycle):
@@ -104,7 +104,7 @@ class ObsPackObservations(Observation):
 
             logging.debug("Added %d observations from file (%s) to the Data list" % (len(dates), ncfile)) 
 
-        logging.info("Observation list now holds %d values" % len(self.datalist))
+        logging.info("Observations list now holds %d values" % len(self.datalist))
 
     def add_simulations(self, filename, silent=False):
         """ Adds model simulated values to the mixing ratio objects """
@@ -318,7 +318,7 @@ class ObsPackObservations(Observation):
                 if SiteHourly.has_key(identifier):
                     hourf, hourt = SiteHourly[identifier]
                     if int(obs.xdate.hour) >= hourf and int(obs.xdate.hour) <= hourt:
-                        logging.warning("Observation in hourly dataset INCLUDED, while sampling time %s was between %s:00-%s:00"%(obs.xdate.time(),hourf,hourt))
+                        logging.warning("Observations in hourly dataset INCLUDED, while sampling time %s was between %s:00-%s:00"%(obs.xdate.time(),hourf,hourt))
                     else:
                         logging.warning("Observation in hourly dataset EXCLUDED, while sampling time %s was outside %s:00-%s:00"%(obs.xdate.time(),hourf,hourt))
                         exclude_hourly = True
@@ -346,7 +346,7 @@ class ObsPackObservations(Observation):
 
                 logging.warning("Observation location for (%s, %d), is moved by %3.2f degrees latitude and %3.2f degrees longitude" % (identifier, obs.id, movelat, movelon))
 
-        # Add SiteInfo dictionary to the Observation object for future use
+        # Add SiteInfo dictionary to the Observations object for future use
 
         self.SiteInfo = SiteInfo
         self.SiteMove = SiteMove
@@ -356,7 +356,7 @@ class ObsPackObservations(Observation):
 
     def write_obs_to_file(self, outfile):
         """ 
-            Write selected information contained in the Observation object to a file. 
+            Write selected information contained in the Observations object to a file. 
 
         """
 
diff --git a/gridded/da/ct/optimizer.py b/gridded/da/carbondioxide/optimizer.py
similarity index 91%
rename from gridded/da/ct/optimizer.py
rename to gridded/da/carbondioxide/optimizer.py
index 20a18d8..8afb193 100755
--- a/gridded/da/ct/optimizer.py
+++ b/gridded/da/carbondioxide/optimizer.py
@@ -19,12 +19,12 @@ from da.baseclasses.optimizer import Optimizer
 identifier = 'Ensemble Square Root Filter'
 version = '0.0'
 
-################### Begin Class CtOptimizer ###################
+################### Begin Class CO2Optimizer ###################
 
-class CtOptimizer(Optimizer):
+class CO2Optimizer(Optimizer):
     """
         This creates an instance of a CarbonTracker optimization object. The base class it derives from is the optimizer object.
-        Additionally, this CtOptimizer implements a special localization option following the CT2007 method.
+        Additionally, this CO2Optimizer implements a special localization option following the CT2007 method.
 
         All other methods are inherited from the base class Optimizer.
     """
@@ -83,7 +83,7 @@ class CtOptimizer(Optimizer):
     
         logging.info("Current minimum least squares algorithm is set to %s" % self.algorithm)
 
-################### End Class CtOptimizer ###################
+################### End Class CO2Optimizer ###################
 
 if __name__ == "__main__":
     pass
diff --git a/gridded/da/ct/standardvariables.py b/gridded/da/carbondioxide/standardvariables.py
similarity index 100%
rename from gridded/da/ct/standardvariables.py
rename to gridded/da/carbondioxide/standardvariables.py
diff --git a/gridded/da/ct/statevector.py b/gridded/da/carbondioxide/statevector.py
similarity index 93%
rename from gridded/da/ct/statevector.py
rename to gridded/da/carbondioxide/statevector.py
index 16a2132..e7416eb 100755
--- a/gridded/da/ct/statevector.py
+++ b/gridded/da/carbondioxide/statevector.py
@@ -22,9 +22,9 @@ import da.tools.io4 as io
 identifier = 'CarbonTracker Statevector '
 version = '0.0'
 
-################### Begin Class CtStateVector ###################
+################### Begin Class CO2StateVector ###################
 
-class CtStateVector(StateVector):
+class CO2StateVector(StateVector):
     """ This is a StateVector object for CarbonTracker. It has a private method to make new ensemble members """
 
     def get_covariance(self, date, DaCycle):
@@ -40,7 +40,7 @@ class CtStateVector(StateVector):
         # Get the needed matrices from the specified covariance files
 
         file_ocn_cov = DaCycle.DaSystem['ocn.covariance'] 
-        file_bio_cov = DaCycle.DaSystem['bio.covariance']   #LU logika tego to powrot do dacycle zeby potem z systemu(CT) pobrac parametr
+        file_bio_cov = DaCycle.DaSystem['bio.covariance'] 
 
         # replace YYYY.MM in the ocean covariance file string
 
@@ -136,7 +136,7 @@ class CtStateVector(StateVector):
 
         logging.info('Successfully read the State Vector from file (%s) ' % filename)
 
-################### End Class CtStateVector ###################
+################### End Class CO2StateVector ###################
 
 
 if __name__ == "__main__":
diff --git a/gridded/da/ctgridded/__init__.py b/gridded/da/co2gridded/__init__.py
similarity index 100%
rename from gridded/da/ctgridded/__init__.py
rename to gridded/da/co2gridded/__init__.py
diff --git a/gridded/da/ctgridded/dasystem.py b/gridded/da/co2gridded/dasystem.py
similarity index 97%
rename from gridded/da/ctgridded/dasystem.py
rename to gridded/da/co2gridded/dasystem.py
index c5ff96d..a21328e 100755
--- a/gridded/da/ctgridded/dasystem.py
+++ b/gridded/da/co2gridded/dasystem.py
@@ -16,7 +16,7 @@ import logging
 
 from da.baseclasses.dasystem import DaSystem
 
-class CtGriddedDaSystem(DaSystem):
+class CO2GriddedDaSystem(DaSystem):
     """ Information on the data assimilation system used. This is normally an rc-file with settings.
     """
 
diff --git a/gridded/da/ctgridded/statevector.py b/gridded/da/co2gridded/statevector.py
similarity index 99%
rename from gridded/da/ctgridded/statevector.py
rename to gridded/da/co2gridded/statevector.py
index 6f49238..196e474 100755
--- a/gridded/da/ctgridded/statevector.py
+++ b/gridded/da/co2gridded/statevector.py
@@ -24,7 +24,7 @@ version = '0.0'
 
 ################### Begin Class CtStateVector ###################
 
-class CtGriddedStateVector(StateVector):
+class CO2GriddedStateVector(StateVector):
     """ This is a StateVector object for CarbonTracker. It has a private method to make new ensemble members """
 
     def get_covariance(self, date, DaCycle):
diff --git a/gridded/da/examples/das.py b/gridded/da/examples/das.py
index d855542..2b58d7b 100755
--- a/gridded/da/examples/das.py
+++ b/gridded/da/examples/das.py
@@ -16,12 +16,12 @@ sys.path.append(os.getcwd())
 from da.tools.initexit import start_logger, validate_opts_args, parse_options, CycleControl
 from da.tools.pipeline import ensemble_smoother_pipeline
 from da.platform.maunaloa import MaunaloaPlatForm 
-from da.ct.dasystem import CtDaSystem 
-from da.ct.statevector import CtStateVector 
-#from da.ct.obspack import ObsPackObservations 
-from da.ct.obs import CtObservations 
+from da.carbondioxide.dasystem import CO2DaSystem 
+from da.carbondioxide.statevector import CO2StateVector 
+#from da.carbondioxide.obspack import ObsPackObservations 
+from da.carbondioxide.obs import CO2Observations 
 from da.tm5.observationoperator import TM5ObservationOperator 
-from da.ct.optimizer import CtOptimizer
+from da.carbondioxide.optimizer import CO2Optimizer
 
 from da.analysis.expand_fluxes import save_weekly_avg_1x1_data, save_weekly_avg_state_data, save_weekly_avg_tc_data, save_weekly_avg_ext_tc_data
 from da.analysis.expand_mixingratios import write_mixing_ratios
@@ -43,12 +43,12 @@ DaCycle = CycleControl(opts, args)
 
 
 PlatForm = MaunaloaPlatForm()
-DaSystem = CtDaSystem(DaCycle['da.system.rc'])
+DaSystem = CO2DaSystem(DaCycle['da.system.rc'])
 ObsOperator = TM5ObservationOperator(DaCycle['da.obsoperator.rc'])
 #Samples     = ObsPackObservations()
-Samples = CtObservations()
-StateVector = CtStateVector()
-Optimizer = CtOptimizer()
+Samples = CO2Observations()
+StateVector = CO2StateVector()
+Optimizer = CO2Optimizer()
 
 ##########################################################################################
 ################### ENTER THE PIPELINE WITH THE OBJECTS PASSED BY THE USER ###############
diff --git a/gridded/da/examples/dasgridded.py b/gridded/da/examples/dasgridded.py
index b333343..c22a95c 100755
--- a/gridded/da/examples/dasgridded.py
+++ b/gridded/da/examples/dasgridded.py
@@ -18,12 +18,12 @@ from da.tools.initexit import start_logger, parse_options, validate_opts_args, C
 
 from da.tools.pipeline import ensemble_smoother_pipeline
 from da.platform.maunaloa import MaunaloaPlatForm 
-from da.ctgridded.dasystem import CtGriddedDaSystem 
-from da.ctgridded.statevector import CtGriddedStateVector 
-from da.ct.obs import CtObservations 
+from da.co2gridded.dasystem import CO2GriddedDaSystem 
+from da.co2gridded.statevector import CO2GriddedStateVector 
+from da.carbondioxide.obs import CO2Observations 
 
 from da.tm5.observationoperator import TM5ObservationOperator 
-from da.ct.optimizer import CtOptimizer
+from da.carbondioxide.optimizer import CO2Optimizer
 from da.tools.pipeline import header, footer
 
 from da.analysis.expand_fluxes import save_weekly_avg_1x1_data, save_weekly_avg_state_data, save_weekly_avg_tc_data, save_weekly_avg_ext_tc_data
@@ -44,11 +44,11 @@ opts, args = validate_opts_args(parse_options())
 DaCycle = CycleControl(opts, args)
 
 PlatForm = MaunaloaPlatForm()
-DaSystem = CtGriddedDaSystem(DaCycle['da.system.rc'])
+DaSystem = CO2GriddedDaSystem(DaCycle['da.system.rc'])
 ObsOperator = TM5ObservationOperator(DaCycle['da.obsoperator.rc'])
-Samples = CtObservations()
-StateVector = CtGriddedStateVector()
-Optimizer = CtOptimizer()
+Samples = CO2Observations()
+StateVector = CO2GriddedStateVector()
+Optimizer = CO2Optimizer()
 
 ##########################################################################################
 ################### ENTER THE PIPELINE WITH THE OBJECTS PASSED BY THE USER ###############
diff --git a/gridded/da/examples/dasjet.py b/gridded/da/examples/dasjet.py
index bcfc25b..6f0d28a 100755
--- a/gridded/da/examples/dasjet.py
+++ b/gridded/da/examples/dasjet.py
@@ -16,11 +16,11 @@ sys.path.append(os.getcwd())
 from da.tools.initexit import start_logger, validate_opts_args, parse_options, CycleControl
 from da.tools.pipeline import ensemble_smoother_pipeline
 from da.platform.jet import JetPlatForm 
-from da.ct.dasystem import CtDaSystem 
-from da.ct.statevector import CtStateVector 
-from da.ct.obs import CtObservations 
+from da.carbondioxide.dasystem import CO2DaSystem 
+from da.carbondioxide.statevector import CO2StateVector 
+from da.carbondioxide.obs import CO2Observations 
 from da.tm5.observationoperator import TM5ObservationOperator 
-from da.ct.optimizer import CtOptimizer
+from da.carbondioxide.optimizer import CO2Optimizer
 from da.tools.pipeline import header, footer
 
 
@@ -38,11 +38,11 @@ opts, args = validate_opts_args(parse_options())
 DaCycle = CycleControl(opts, args)
 
 PlatForm = JetPlatForm()
-DaSystem = CtDaSystem(DaCycle['da.system.rc'])
+DaSystem = CO2DaSystem(DaCycle['da.system.rc'])
 ObsOperator = TM5ObservationOperator(DaCycle['da.obsoperator.rc'])
-Samples = CtObservations()
-StateVector = CtStateVector()
-Optimizer = CtOptimizer()
+Samples = CO2Observations()
+StateVector = CO2StateVector()
+Optimizer = CO2Optimizer()
 
 ##########################################################################################
 ################### ENTER THE PIPELINE WITH THE OBJECTS PASSED BY THE USER ###############
diff --git a/gridded/da/tm5/observationoperator.py b/gridded/da/tm5/observationoperator.py
index 5d62cdb..15a640f 100755
--- a/gridded/da/tm5/observationoperator.py
+++ b/gridded/da/tm5/observationoperator.py
@@ -187,10 +187,6 @@ class TM5ObservationOperator(ObservationOperator):
         else:
             NewItems['istart'] = self.coldstartvalue  # if not, start TM5 'cold'
             logging.debug('Resetting TM5 to perform cold start')
-#LU to ponizej: po prostu jesli to jest inny lag niz pierwszy
-#LU czyli: restart wtedy kiedy albo time.restart = true czyli w kazdym nastepnym cyklu, albo kiedy jest to nie pierwszy step w sample step. tylko wtedy to skad robimy restart sie rozni...czy nie , bo robimy po advance?
-#LU z drugiej strony to time.sample.window to nic innego jak lag.
-#LU ale: nowy RC zapisywany jst przy koncu cyklu. czyli time. sample.window bedzie zawsze 0.
 
         if self.DaCycle['time.sample.window'] != 0:  # If this is a restart from a previous time step within the filter lag, the TM5 model should do a restart
             NewItems['istart'] = self.restartvalue
@@ -201,7 +197,7 @@ class TM5ObservationOperator(ObservationOperator):
         self.modify_rc(NewItems)
         self.write_rc(self.RcFileName)
 
-    def load_rc(self, name):#LU tutaj bylo wczesniej rcfIletype. to znaczy ze pewnie zawsze bylo pycasso. bo wpp byloby blad.
+    def load_rc(self, name):
         """ 
         This method loads a TM5 rc-file with settings for this simulation 
         """
@@ -270,7 +266,7 @@ class TM5ObservationOperator(ObservationOperator):
                 self.tm_settings[k] = v
                 #replace all instances of old with new, but only if it concerns a name of a path!!!
                 if os.path.exists(str(v)): 
-                    for k_old, v_old in self.tm_settings.iteritems(): #LU nie wydaje mi sie zeby to powyzej mialo sens, bo wowczas v jest tym samym co v_old
+                    for k_old, v_old in self.tm_settings.iteritems():
                         if not isinstance(v_old, str): 
                             continue
                         if str(v_orig) in str(v_old): 
@@ -381,7 +377,6 @@ class TM5ObservationOperator(ObservationOperator):
          only if successfull on all processors will execution of the shell continue. 
          
         """
-#LU mam wrazneie ze ten status sie i tak d oniczego nie przydaje.
         cwd = os.getcwd()
 
         # From here on, several options should be implemented.
@@ -471,7 +466,7 @@ class TM5ObservationOperator(ObservationOperator):
 
         return code
 
-#LU nie iwem czy to dobrze zadziala z tym kodem bo moze jednak sa lepsze sposoby sprawdzenia statusu...
+
     def TM5_With_N_tracers(self):
         """ Method handles the case where one TM5 model instance with N tracers does the sampling of all ensemble members"""
 
diff --git a/gridded/da/tools/initexit.py b/gridded/da/tools/initexit.py
index 6eb89e9..1406633 100755
--- a/gridded/da/tools/initexit.py
+++ b/gridded/da/tools/initexit.py
@@ -143,7 +143,7 @@ class CycleControl(dict):
             if 'date' in k : 
                 self[k] = to_datetime(v)
             if k in ['time.start', 'time.end', 'time.finish', 'da.restart.tstamp']:
-                self[k] = to_datetime(v)#LU a gdzie time.sample.start? ona chyba zawsze jest wczytywana na nowo... w takim razie po co ona w pliku_
+                self[k] = to_datetime(v)
 #            if 'time.start' in k : 
 #                self[k] = to_datetime(v)
 #            if 'time.end' in k : 
@@ -318,7 +318,7 @@ class CycleControl(dict):
             self['jobrcfilename'] = os.path.join(self['dir.exec'], strippedname)
 
         self.parse_times()
-        self.write_rc(self['jobrcfilename'])#LU rc z dodatkowymi nazwami folderow itd. normalnie zapisany da.rc z false, ap otem przemieniony da_runtime. ile w tym sensu..... file_structure niby taka sama.(a na pewno byla w poprzendim...)ale czy to sie do czegos przydaje_
+        self.write_rc(self['jobrcfilename'])
 
     def setup_file_structure(self):
         """ 
@@ -382,8 +382,8 @@ class CycleControl(dict):
             * Submit the next cycle
 
         """
-        self.write_random_seed()                               #LU with timestamp -> to bedzie biezaca data, bo tez nie mamy za bardzo skad wziac nastepnej.
-        self.write_new_rc_file()                                #LU with timestamp -> to bedzie nastepna data. bo da_runtime
+        self.write_random_seed()                              
+        self.write_new_rc_file()                              
         
         self.collect_restart_data()  # Collect restart data for next cycle into a clean restart/current folder
         self.collect_output()  # Collect restart data for next cycle into a clean restart/current folder
@@ -490,7 +490,7 @@ class CycleControl(dict):
         # The rest is info needed for a system restart, so it modifies the current DaCycle object (self)
 
         self['da.restart.fname'] = fname    # needed for next job template
-        #self.RestartFileList.append(fname)  # current restart list holds next rc file name #LU not that needed since it is already written to the restart dir...
+        #self.RestartFileList.append(fname)  # not that needed since it is already written to the restart dir...
         #logging.debug('Added da_runtime.rc to the RestartFileList for later collection')
 
 
@@ -520,7 +520,6 @@ class CycleControl(dict):
             targetdir = os.path.join(self['dir.exec'])
             jobfile = os.path.join(targetdir, 'jb.%s.jb' % jobid)
             logfile = os.path.join(targetdir, 'jb.%s.log' % jobid)
-#LU tutaj sa parametry ktore ida na gore do pliku job. nie zawsze koniecznie potrzebne.
             # Template and commands for job
             jobparams = {'jobname':"j.%s" % jobid, 'jobtime':'06:00:00', 'logfile': logfile, 'errfile': logfile}
             template = self.DaPlatForm.get_job_template(jobparams)
@@ -577,7 +576,7 @@ def parse_options():
             logging.root.setLevel(logging.DEBUG)
 
     if opts: 
-        optslist = [item[0] for item in opts] #LU ze co same minusy zwroci?
+        optslist = [item[0] for item in opts]
     else:
         optslist = []
 
diff --git a/gridded/da/tools/pipeline.py b/gridded/da/tools/pipeline.py
index 7bc305b..c386a49 100755
--- a/gridded/da/tools/pipeline.py
+++ b/gridded/da/tools/pipeline.py
@@ -47,7 +47,7 @@ def forward_pipeline(DaCycle, PlatForm, DaSystem, Samples, StateVector, ObsOpera
     # Read from other simulation and write priors, then read posteriors and propagate
     
     if DaCycle['dir.forward.savestate'] != 'None':
-        filename = os.path.join(DaCycle['dir.forward.savestate'], DaCycle['time.start'].strftime('%Y%m%d'), 'savestate.nc')                #LU teraz czytamy savestate.nc
+        filename = os.path.join(DaCycle['dir.forward.savestate'], DaCycle['time.start'].strftime('%Y%m%d'), 'savestate.nc')        
         StateVector.read_from_legacy_file(filename, 'prior') 
     else: 
         prepare_state(DaCycle, StateVector)#LU tutaj zamiast tego raczej to stworzenie nowej kowariancji i ensembli bo pozostale rzeczy sa na gorze i na doel.
@@ -56,7 +56,6 @@ def forward_pipeline(DaCycle, PlatForm, DaSystem, Samples, StateVector, ObsOpera
 
     # Write as prior fluxes to output dir
 
-    #savefilename = os.path.join(DaCycle['dir.output'], 'savestate.nc') 
     savefilename = os.path.join(DaCycle['dir.restart'], 'savestate_%s.nc' % DaCycle['time.start'].strftime('%Y%m%d'))
     StateVector.write_to_file(savefilename, 'prior')
 
@@ -81,14 +80,14 @@ def forward_pipeline(DaCycle, PlatForm, DaSystem, Samples, StateVector, ObsOpera
 def start_job(DaCycle, DaSystem, DaPlatForm, StateVector, Samples, ObsOperator):
     """ Set up the job specific directory structure and create an expanded rc-file """
 
-    DaSystem.validate()                                 #LU tylko sprawdza needed rc items in the file, typu obserwacje, kowariancja
-    DaCycle.DaSystem = DaSystem                         #LU laczy te listy parametrow ale na zasadzie hierarchii
-    DaCycle.DaPlatForm = DaPlatForm                     #LU przypisuje cyklowi platforme 
-    DaCycle.initialize()                                #LU setup file structure etc
-    #StateVector.DaCycle = DaCycle # also embed object in StateVector so it can access cycle information for I/O etc           #LU cykl zostaje przypisany state vectorowi
-    #Samples.DaCycle = DaCycle # also embed object in Samples object so it can access cycle information for I/O etc            #LU cykl zostaje przypisany probkom
-    #ObsOperator.DaCycle = DaCycle # also embed object in ObsOperator object so it can access cycle information for I/O etc    #LU cykl zostaje przypisany obsoperatorowi
-    ObsOperator.initialize(DaCycle)  # Setup Observation Operator                                                                    #LU a pote mobsoperator jest inicjalizowany
+    DaSystem.validate()                               
+    DaCycle.DaSystem = DaSystem                       
+    DaCycle.DaPlatForm = DaPlatForm                    
+    DaCycle.initialize()                              
+    #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    
+    #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                                                          
     StateVector.initialize(DaCycle)   
 
 def prepare_state(DaCycle, StateVector):
@@ -118,7 +117,7 @@ def prepare_state(DaCycle, StateVector):
         
         
         saved_sv = os.path.join(DaCycle['dir.restart'], 'savestate_%s.nc' % DaCycle['da.restart.tstamp'].strftime('%Y%m%d'))
-        StateVector.read_from_file(saved_sv) # by default will read "opt"(imized) variables, and then propagate #LU najlatwiej - jesli jest to da.restart.tstamp
+        StateVector.read_from_file(saved_sv) # by default will read "opt"(imized) variables, and then propagate
 
         # Now propagate the ensemble by one cycle to prepare for the current cycle
         StateVector.propagate(DaCycle)
@@ -141,7 +140,7 @@ def sample_state(DaCycle, Samples, StateVector, ObservationOperator):
     #msg     = "All restart data have been copied to the save/tmp directory for future use"    ; logging.debug(msg)
     logging.info(header + "starting sample_state" + footer) 
     nlag = int(DaCycle['time.nlag'])
-    logging.info("Sampling model will be run over %d cycles" % nlag)                             #LU w ramach modelu jest 3 cykle, czyli 3 przejscia. jednoczesnie w ramach kazdego cyklu idzie sie 3 tygodnie do przodu
+    logging.info("Sampling model will be run over %d cycles" % nlag)           
 
     ObservationOperator.get_initial_data()
 
@@ -176,7 +175,7 @@ def sample_step(DaCycle, Samples, StateVector, ObservationOperator, lag, advance
     # Implement something that writes the ensemble member parameter info to file, or manipulates them further into the 
     # type of info needed in your transport model
 
-    StateVector.write_members_to_file(lag, DaCycle['dir.input']) #LU parameters.nc to be an input for tm5
+    StateVector.write_members_to_file(lag, DaCycle['dir.input']) 
 
     Samples.initialize(DaCycle)       
     Samples.add_observations() 
@@ -186,7 +185,7 @@ def sample_step(DaCycle, Samples, StateVector, ObservationOperator, lag, advance
     Samples.add_model_data_mismatch(DaCycle.DaSystem['obs.sites.rc']) 
     
     sampling_coords_file = os.path.join(DaCycle['dir.input'], 'observations_%s.nc' % DaCycle['time.sample.stamp'])
-    Samples.write_sample_info(sampling_coords_file) #LU observations.nc - for the tm5 to have sampling dates and times
+    Samples.write_sample_info(sampling_coords_file) 
     # Write filename to DaCycle, and to output collection list
     DaCycle['ObsOperator.inputfile'] = sampling_coords_file
 
@@ -214,7 +213,7 @@ def sample_step(DaCycle, Samples, StateVector, ObservationOperator, lag, advance
     # steps only optimize against the data at the front (lag==nlag) of the filter. This way, each observation is used only 
     # (and at least) once # in the assimilation
 
-#LU jaki to ma sens: taki ze zawsze mamy flask_output.nc. tylko ze on jest chyba nadpisywany za kazdym cyklem? no coz.. chyba byla na ten temat dyskusja, i wyszlo ze for debugging. niech i tak zostanie.
+
     if not advance:
         if DaCycle['time.restart'] == False or lag == int(DaCycle['time.nlag']) - 1:
             StateVector.ObsToAssimmilate += (copy.deepcopy(Samples),)
diff --git a/gridded/template.py b/gridded/template.py
index 8500aac..2ee2ef8 100755
--- a/gridded/template.py
+++ b/gridded/template.py
@@ -7,86 +7,78 @@
 import sys
 import os
 import logging
-dummy = sys.path.append(os.getcwd())
+sys.path.append(os.getcwd())
 
 #################################################################################################
 # Next, import the tools needed to initialize a data assimilation cycle
 #################################################################################################
 
-from da.tools.initexit import start_logger
-from da.tools.initexit import validate_opts_args
-from da.tools.initexit import parse_options
+from da.tools.initexit import start_logger, validate_opts_args, parse_options, CycleControl 
+from da.tools.pipeline import ensemble_smoother_pipeline, header, footer
+from da.platform.huygens import HuygensPlatForm 
+from da.carbondioxide.dasystem import CO2DaSystem 
+from da.carbondioxide.optimizer import CO2Optimizer
+from da.carbondioxide.obspack_geocarbon import ObsPackObservations
+#from da.carbondioxide.statevector import CO2StateVector 
+from da.co2gridded.statevector import CO2GriddedStateVector 
+#from da.carbondioxide.obspack import ObsPackObservations 
+#from da.carbondioxide.obs import CO2Observations 
+from da.tm5.observationoperator import TM5ObservationOperator 
+
+from da.analysis.expand_fluxes import save_weekly_avg_1x1_data, save_weekly_avg_state_data, save_weekly_avg_tc_data, save_weekly_avg_ext_tc_data 
+from da.analysis.expand_mixingratios import write_mixing_ratios
+from da.analysis.summarize_obs import summarize_obs
 
 #################################################################################################
 # Parse and validate the command line options, start logging
 #################################################################################################
 
-dummy       = start_logger()
-opts, args  = parse_options()
-opts,args   = validate_opts_args(opts,args)
+start_logger()
+opts, args = parse_options()
+opts, args = validate_opts_args(opts, args)
 
 #################################################################################################
 # Create the Cycle Control object for this job    
 #################################################################################################
 
-from da.tools.initexit import CycleControl
-
-DaCycle     = CycleControl(opts,args)
+DaCycle = CycleControl(opts, args)
 
 ###########################################################################################
 ### IMPORT THE APPLICATION SPECIFIC MODULES HERE, TO BE PASSED INTO THE MAIN PIPELINE!!! ##
 ###########################################################################################
 
-from da.tools.pipeline import ensemble_smoother_pipeline
-from da.platform.huygens import HuygensPlatForm 
-from da.ct.dasystem import CtDaSystem 
-#from da.ct.statevector import CtStateVector 
-from da.ctgridded.statevector import CtGriddedStateVector 
-#from da.ct.obspack import ObsPackObservations 
-from da.ct.obspack_geocarbon import ObsPackObservations 
-#from da.ct.obs import CtObservations 
-from da.tm5.observationoperator import TM5ObservationOperator 
-from da.ct.optimizer import CtOptimizer
 
-PlatForm    = HuygensPlatForm()
-DaSystem    = CtDaSystem(DaCycle['da.system.rc'])
+PlatForm = HuygensPlatForm()
+DaSystem = CO2DaSystem(DaCycle['da.system.rc'])
 ObsOperator = TM5ObservationOperator(DaCycle['da.obsoperator.rc'])
-Samples     = ObsPackObservations()
+Samples = ObsPackObservations()
 #Samples     = CtObservations()
-StateVector = CtGriddedStateVector()
-Optimizer   = CtOptimizer()
+StateVector = CO2GriddedStateVector()
+Optimizer = CO2Optimizer()
 
 ##########################################################################################
 ################### ENTER THE PIPELINE WITH THE OBJECTS PASSED BY THE USER ###############
 ##########################################################################################
 
-from da.tools.pipeline import header,footer
 
-msg          = header+"Entering Pipeline "+footer      ; logging.info(msg) 
 
-ensemble_smoother_pipeline(DaCycle,PlatForm, DaSystem, Samples,StateVector,ObsOperator,Optimizer)
+logging.info(header + "Entering Pipeline " + footer) 
+
+ensemble_smoother_pipeline(DaCycle, PlatForm, DaSystem, Samples, StateVector, ObsOperator, Optimizer)
 
 
 ##########################################################################################
 ################### All done, extra stuff can be added next, such as analysis
 ##########################################################################################
 
-msg          = header+"Starting analysis"+footer      ; logging.info(msg) 
-
-
-from da.analysis.expand_fluxes import save_weekly_avg_1x1_data
-from da.analysis.expand_fluxes import save_weekly_avg_state_data
-from da.analysis.expand_fluxes import save_weekly_avg_tc_data
-from da.analysis.expand_fluxes import save_weekly_avg_ext_tc_data
-from da.analysis.expand_mixingratios import write_mixing_ratios
-from da.analysis.summarize_obs import summarize_obs
+logging.info(header + "Starting analysis" + footer) 
 
-savedas      = save_weekly_avg_1x1_data(DaCycle, StateVector)
-savedas      = save_weekly_avg_state_data(DaCycle, StateVector)
-savedas      = save_weekly_avg_tc_data(DaCycle, StateVector)
-savedas      = save_weekly_avg_ext_tc_data(DaCycle)
-savedas      = write_mixing_ratios(DaCycle)
-savedas      = summarize_obs(DaCycle)
+save_weekly_avg_1x1_data(DaCycle, StateVector)
+save_weekly_avg_state_data(DaCycle, StateVector)
+save_weekly_avg_tc_data(DaCycle, StateVector)
+save_weekly_avg_ext_tc_data(DaCycle)
+write_mixing_ratios(DaCycle)
+summarize_obs(DaCycle)
 
 sys.exit(0)
 
-- 
GitLab