#!/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 start_logger from da.tools.initexit import validate_opts_args from da.tools.initexit import parse_options ################################################################################################# # Parse and validate the command line options, start logging ################################################################################################# dummy = 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) ########################################################################################### ### 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']) 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) 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 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) sys.exit(0)