Revision History: File created on 28 Jul 2010.
The baseclass Observation 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 below overwritten. Writing your own derived class for Observations is one of the first tasks you’ll likely perform when extending or modifying the CarbonTracker Data Assimilation Shell.
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 ObservationList. An ObservationList object is created when the method AddObs() is invoked in the pipeline.
From the list of observations, a file is written by method WriteSampleInfo() with the sample info needed by the ObservationOperator object. The values returned after sampling are finally added by AddSimulations()
Perform all steps needed to start working with observational data, this can include moving data, concatenating files, selecting datasets, etc.
Make sure that data needed for the ObservationOperator (such as observation input lists, or parameter files) are present.
Add actual observation data to the Observation object. This is in a form of an ObservationList that is contained in self.Data. The list has as only requirement that it can return the observed+simulated values through the method getvalues()
Add the simulation data to the Observation object.
Get the model-data mismatch values for this cycle.
Write the information needed by the observation operator to a file. Return the filename that was written for later use