Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
CTDAS
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Tsurata, Aki
CTDAS
Commits
0b044f8b
Commit
0b044f8b
authored
14 years ago
by
Peters, Wouter
Browse files
Options
Downloads
Patches
Plain Diff
removed unneeded routines and tools that are now general
parent
a6f432e2
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
da/ct/statevector.py
+0
-63
0 additions, 63 deletions
da/ct/statevector.py
da/ct/tools.py
+0
-63
0 additions, 63 deletions
da/ct/tools.py
with
0 additions
and
126 deletions
da/ct/statevector.py
+
0
−
63
View file @
0b044f8b
...
@@ -83,69 +83,6 @@ class CtStateVector(StateVector):
...
@@ -83,69 +83,6 @@ class CtStateVector(StateVector):
################### End Class CtStateVector ###################
################### End Class CtStateVector ###################
################# Stand alone methods that manipulate the objects above ##############
def
PrepareState
(
CycleInfo
):
"""
Prepare the ensemble of parameters needed by the forecast model. There are two possible pathways:
(A) Construct a brand new ensemble from a covariance matrix
(B) Get an existing ensemble and propagate it
The steps for procedure A are:
(A1) Construct the covariance matrix
(A2) Make a Cholesky decomposition
(A3) Prepare a set of [nmembers] input parameters for each forecast member
The steps for procedure B are:
(B1) Get existing parameter values for each member
(B2) Run them through a forecast model
Both procedures finish with writing the parameter values to a NetCDF file
"""
dims
=
(
int
(
CycleInfo
.
da_settings
[
'
time.nlag
'
]),
int
(
CycleInfo
.
da_settings
[
'
forecast.nmembers
'
]),
int
(
CycleInfo
.
DaSystem
.
da_settings
[
'
nparameters
'
]),
)
StateVector
=
CtStateVector
(
dims
)
nlag
=
dims
[
0
]
# We now have an empty CtStateVector object that we need to populate with data. If this is a continuation from a previous cycle, we can read
# the previous StateVector values from a NetCDF file in the save/ directory. If this is the first cycle, we need to populate the CtStateVector
# with new values for each week. After we have constructed the StateVector, it will be propagated by one cycle length so it is ready to be used
# in the current cycle
if
not
CycleInfo
.
da_settings
[
'
time.restart
'
]:
# Fill each week from n=1 to n=nlag with a new ensemble
for
n
in
range
(
0
,
nlag
):
cov
=
StateVector
.
GetCovariance
(
CycleInfo
.
DaSystem
)
dummy
=
StateVector
.
MakeNewEnsemble
(
n
+
1
,
cov
)
else
:
# Read the StateVector data from file
savedir
=
CycleInfo
.
da_settings
[
'
dir.save
'
]
filtertime
=
CycleInfo
.
da_settings
[
'
time.start
'
].
strftime
(
'
%Y%m%d
'
)
filename
=
os
.
path
.
join
(
savedir
,
'
savestate.nc
'
)
StateVector
.
ReadFromFile
(
filename
)
# Now propagate the ensemble by one cycle to prepare for the current cycle
dummy
=
StateVector
.
Propagate
()
return
StateVector
if
__name__
==
"
__main__
"
:
if
__name__
==
"
__main__
"
:
...
...
This diff is collapsed.
Click to expand it.
da/ct/tools.py
+
0
−
63
View file @
0b044f8b
...
@@ -23,69 +23,6 @@ needed_rc_items = ['obs.input.dir',
...
@@ -23,69 +23,6 @@ needed_rc_items = ['obs.input.dir',
'
deltaco2.prefix
'
,
'
deltaco2.prefix
'
,
'
regtype
'
]
'
regtype
'
]
################### Begin Class DaInfo ###################
class
DaInfo
(
object
):
"""
Information on the data assimilation system used. For CarbonTracker, this is an rc-file with settings.
The settings list includes at least the values above, in needed_rc_items.
"""
def
__init__
(
self
,
rcfilename
):
"""
Initialization occurs from passed rc-file name
"""
self
.
LoadRc
(
rcfilename
)
self
.
ValidateRC
()
def
__str__
(
self
):
"""
String representation of a DaInfo object
"""
msg
=
"
===============================================================
"
;
print
msg
msg
=
"
DA System Info rc-file is %s
"
%
self
.
RcFileName
;
print
msg
msg
=
"
===============================================================
"
;
print
msg
return
""
def
LoadRc
(
self
,
RcFileName
):
"""
This method loads a DA System Info rc-file with settings for this simulation
"""
import
da.tools.rc
as
rc
self
.
da_settings
=
rc
.
read
(
RcFileName
)
self
.
RcFileName
=
RcFileName
self
.
DaRcLoaded
=
True
msg
=
'
DA System Info rc-file (%s) loaded successfully
'
%
self
.
RcFileName
;
logging
.
info
(
msg
)
return
True
def
ValidateRC
(
self
):
"""
Validate the contents of the rc-file given a dictionary of required keys
"""
for
k
,
v
in
self
.
da_settings
.
iteritems
():
if
v
==
'
True
'
:
self
.
da_settings
[
k
]
=
True
if
v
==
'
False
'
:
self
.
da_settings
[
k
]
=
False
for
key
in
needed_rc_items
:
if
not
self
.
da_settings
.
has_key
(
key
):
status
,
msg
=
(
False
,
'
Missing a required value in rc-file : %s
'
%
key
)
logging
.
error
(
msg
)
raise
IOError
,
msg
status
,
msg
=
(
True
,
'
DA System Info settings have been validated succesfully
'
)
;
logging
.
debug
(
msg
)
return
None
################### End Class DaInfo ###################
def
StateToGrid
(
DaInfo
,
values
,
reverse
=
False
,
avg
=
False
):
def
StateToGrid
(
DaInfo
,
values
,
reverse
=
False
,
avg
=
False
):
"""
"""
This method converts parameters from a CarbonTracker StateVector object to a gridded map of linear multiplication values. These
This method converts parameters from a CarbonTracker StateVector object to a gridded map of linear multiplication values. These
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment