#!/usr/bin/env python ################################################################################################# # First order of business is always to make all other python modules accessible through the path ################################################################################################# import sys import os import logging dummy = sys.path.append(os.getcwd()) ################################################################################################# # Next, import the tools needed to initialize a data assimilation cycle ################################################################################################# from da.tools.initexit import StartLogger from da.tools.initexit import ValidateOptsArgs from da.tools.initexit import ParseOptions ################################################################################################# # Parse and validate the command line options, start logging ################################################################################################# dummy = StartLogger() opts, args = ParseOptions() opts,args = ValidateOptsArgs(opts,args) ################################################################################################# # Create the Cycle Control object for this job ################################################################################################# from da.tools.initexit import CycleControl DaCycle = CycleControl(opts,args) ########################################################################################### ### IMPORT THE APPLICATION SPECIFIC MODULES HERE, TO BE PASSED INTO THE MAIN PIPELINE!!! ## ########################################################################################### from da.tools.pipeline import EnsembleSmootherPipeline 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']) ObsOperator = TM5ObservationOperator(DaCycle['da.obsoperator.rc']) Samples = ObsPackObservations() #Samples = CtObservations() StateVector = CtGriddedStateVector() Optimizer = CtOptimizer() ########################################################################################## ################### 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) EnsembleSmootherPipeline(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 SaveWeeklyAvg1x1Data from da.analysis.expand_fluxes import SaveWeeklyAvgStateData from da.analysis.expand_fluxes import SaveWeeklyAvgTCData from da.analysis.expand_fluxes import SaveWeeklyAvgExtTCData from da.analysis.expand_mixingratios import WriteMixingRatios from da.analysis.summarize_obs import SummarizeObs savedas = SaveWeeklyAvg1x1Data(DaCycle, StateVector) savedas = SaveWeeklyAvgStateData(DaCycle, StateVector) savedas = SaveWeeklyAvgTCData(DaCycle, StateVector) savedas = SaveWeeklyAvgExtTCData(DaCycle) savedas = WriteMixingRatios(DaCycle) savedas = SummarizeObs(DaCycle) sys.exit(0)