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
CTDAS
CTDAS
Commits
5adfec50
Commit
5adfec50
authored
12 years ago
by
Peters, Wouter
Browse files
Options
Downloads
Patches
Plain Diff
clean up
parent
a9208947
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
da/analysis/runinfo.py
+0
-156
0 additions, 156 deletions
da/analysis/runinfo.py
da/analysis/tools_transcom.py
+0
-38
0 additions, 38 deletions
da/analysis/tools_transcom.py
with
0 additions
and
194 deletions
da/analysis/runinfo.py
deleted
100755 → 0
+
0
−
156
View file @
a9208947
#!/usr/bin/env python
# runinfo.py
"""
Author : peters
Revision History:
File created on 01 Mar 2011.
"""
import
mysettings
import
commands
import
os
import
sys
from
datetime
import
datetime
,
timedelta
class
RunInfo
(
object
):
"""
This is a CarbonTracker run info object
Initialize it with the following keywords:
MANDATORY:
project = Name of project, should correspond to a directory [string]
sd = start date of project output [datetime object or integer yyyymmdd]
ed = end date of project output [datetime object or integer yyyymmdd]
OPTIONAL:
basedir = base directory of model output on your machine [string, default=
'
~/Modeling/download
'
]
outputdir= output directory for figures and summary files [string, default=
'
~/Modeling/SEATA
'
]
Tip: change the std_rundat dictionary in module filtertools to set new defaults for all values!
"""
def
__init__
(
self
,
infodict
=
{},
rcfile
=
None
):
"""
Initialize from the name of an rcfile, or by passing the dictionary directly
"""
import
da.tools.rc
as
rc
import
da.tools.io4
as
io
import
copy
if
rcfile
:
infodict
=
rc
.
read
(
rcfile
)
self
.
basedir
=
infodict
[
'
dir.da_run
'
]
self
.
proj
=
os
.
path
.
split
(
self
.
basedir
)[
-
1
]
self
.
projdir
=
self
.
basedir
self
.
dir_scheme
=
mysettings
.
ct_dir_scheme
self
.
inputdir
=
os
.
path
.
join
(
self
.
basedir
,
'
output
'
)
self
.
outputdir
=
os
.
path
.
join
(
self
.
basedir
,
'
analysis
'
)
if
not
os
.
path
.
exists
(
self
.
outputdir
):
os
.
makedirs
(
self
.
outputdir
)
print
"
Creating new output directory
"
+
self
.
outputdir
sd
=
infodict
[
'
time.start
'
]
ed
=
infodict
[
'
time.finish
'
]
dt
=
infodict
[
'
time.cycle
'
]
self
.
dt
=
timedelta
(
days
=
int
(
dt
))
if
not
isinstance
(
sd
,
datetime
):
self
.
sd
=
datetime
.
strptime
(
sd
,
'
%Y-%m-%d %H:%M:%S
'
)
if
not
isinstance
(
ed
,
datetime
):
self
.
ed
=
datetime
.
strptime
(
ed
,
'
%Y-%m-%d %H:%M:%S
'
)
dd
=
copy
.
deepcopy
(
self
.
sd
)
self
.
inputfiles
=
[]
self
.
weeks
=
[]
self
.
inputdict
=
{}
while
dd
<
self
.
ed
:
filename
=
os
.
path
.
join
(
self
.
inputdir
,
'
%s
'
%
dd
.
strftime
(
'
%Y%m%d
'
),
'
savestate.nc
'
)
if
os
.
path
.
exists
(
filename
):
self
.
inputfiles
.
append
(
filename
)
self
.
weeks
.
append
(
dd
)
self
.
inputdict
[
dd
]
=
filename
else
:
break
dd
=
dd
+
self
.
dt
self
.
ed
=
dd
self
.
nweeks
=
len
(
self
.
weeks
)
# run parameters from file
ncf
=
io
.
CT_Read
(
self
.
inputfiles
[
0
],
'
read
'
)
self
.
nlag
=
len
(
ncf
.
dimensions
[
'
nlag
'
])
self
.
nmembers
=
len
(
ncf
.
dimensions
[
'
nmembers
'
])
self
.
nparameters
=
len
(
ncf
.
dimensions
[
'
nparameters
'
])
ncf
.
close
()
self
.
namingscheme
=
'
wp_Mar2011
'
filename
=
os
.
path
.
join
(
'
NamingScheme.
'
+
self
.
namingscheme
+
'
.rc
'
)
try
:
rcinfo
=
rc
.
read
(
filename
)
except
IOError
:
print
'
%s was specified as naming scheme, but no matching %s rc-file was found, exiting...
'
%
(
NamingScheme
,
filename
,)
sys
.
exit
(
1
)
except
:
print
'
Unknown error reading rc-file: %s, exiting...
'
%
(
filename
,)
sys
.
exit
(
1
)
self
.
namedict
=
rcinfo
def
__str__
(
self
):
return
'
project :
'
+
self
.
projdir
+
\
'
\n
start date :
'
+
str
(
self
.
sd
)
+
\
'
\n
end date :
'
+
str
(
self
.
ed
)
+
\
'
\n
delta date :
'
+
str
(
self
.
dt
)
+
\
'
\n
nweeks :
'
+
str
(
self
.
nweeks
)
+
\
'
\n
nparameters :
'
+
str
(
self
.
nparameters
)
+
\
'
\n
nmembers :
'
+
str
(
self
.
nmembers
)
+
\
'
\n
nlag :
'
+
str
(
self
.
nlag
)
+
\
'
\n
DA output dir :
'
+
self
.
inputdir
+
\
'
\n
analysis output dir :
'
+
self
.
outputdir
+
\
'
\n
naming scheme :
'
+
self
.
namingscheme
def
get_rundat_settings
(
args
):
"""
create settings dict for rundat from scripts arguments
"""
settings
=
std_rundat
.
copy
()
# start with defaults for rundat
for
items
in
args
:
items
=
items
.
lower
()
k
,
v
=
items
.
split
(
'
=
'
)
if
settings
.
has_key
(
k
):
if
k
in
std_constructors
:
settings
[
k
]
=
std_constructors
[
k
](
v
)
else
:
settings
[
k
]
=
v
else
:
raise
IOError
,
'
Parameter unknown:%s
'
%
(
v
,)
return
settings
if
__name__
==
"
__main__
"
:
import
getopt
import
sys
from
string
import
*
sys
.
path
.
append
(
'
../../
'
)
# Parse keywords
rundat
=
RunInfo
(
rcfile
=
'
../../da.rc
'
)
print
rundat
sys
.
exit
(
0
)
This diff is collapsed.
Click to expand it.
da/analysis/tools_transcom.py
+
0
−
38
View file @
5adfec50
...
...
@@ -236,42 +236,6 @@ ntcocean = 11 # TC standard
ExtendedTCRegionsFile
=
'
postagg_definitions.nc
'
def
StateToTranscom
(
runinfo
,
x
):
"""
convert to transcom shaped regions
"""
from
numpy
import
dot
try
:
nparams
=
runinfo
.
nparameters
except
:
nparams
=
runinfo
if
nparams
==
240
:
M
=
Ols240_to_TC23
elif
nparams
==
221
:
M
=
Ols221_to_TC23
elif
nparams
==
259
:
M
=
Ols259_to_TC23
else
:
raise
ValueError
(
'
Do not know how to convert %s regions to 23 transcom regions
'
%
(
nparams
,))
return
dot
(
array
(
x
).
squeeze
(),
M
)
def
StateCovToTranscom
(
runinfo
,
p
):
"""
convert to transcom shaped regions
"""
try
:
nparams
=
runinfo
.
nparameters
except
:
nparams
=
runinfo
if
nparams
==
240
:
M
=
Ols240_to_TC23
elif
nparams
==
221
:
M
=
Ols221_to_TC23
elif
nparams
==
259
:
M
=
Ols259_to_TC23
else
:
raise
ValueError
(
'
Do not know how to convert %s regions to 23 transcom regions
'
%
(
nparams
,))
return
transpose
(
dot
(
dot
(
transpose
(
M
),
p
),
M
),(
1
,
0
,
2
))
def
ExtendedTCRegions
(
data
,
cov
=
False
):
"""
convert to extended transcom shaped regions
"""
from
numpy
import
dot
,
transpose
...
...
@@ -290,7 +254,6 @@ def cov2corr(A):
b
=
1.
/
sqrt
(
A
.
diagonal
())
return
A
*
dot
(
b
[:,
newaxis
],
b
[
newaxis
,:])
def
map_to_tc
(
data
):
"""
function projects 1x1 degree map onto TransCom regions by adding gridboxes over larger areas
"""
from
hdf2field
import
Sds2field
import
cPickle
...
...
@@ -322,7 +285,6 @@ def map_to_tc(data):
result
[
k
-
1
]
=
data
.
ravel
().
take
(
v
).
sum
()
return
result
def
LookUpName
(
rundat
,
reg
=
33
,
tc
=
False
,
eco
=
False
,
olson
=
False
,
longnames
=
False
):
"""
return name of region number reg
"""
if
longnames
:
...
...
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