Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/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)