Newer
Older
#!/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)