Skip to content

Commit f666c45

Browse files
committed
Add script to check decadal climatologies available
1 parent 2ba268f commit f666c45

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# This script just prints a tiny table that shows the "completion rate" of making variables
2+
using Format
3+
using DataFrames
4+
using DataFramesMeta
5+
datadir = "/scratch/xv83/TMIP/data"
6+
modeldir = joinpath(datadir, "ACCESS-ESM1-5")
7+
decades = [1850, 1990, 2020, 2030, 2090]
8+
# decades = [1990]
9+
experiments = [t < 2010 ? "historical" : "ssp370" for t in decades]
10+
vars = ("umo", "vmo", "mlotst", "tx_trans_gm", "ty_trans_gm", "tx_trans_submeso", "ty_trans_submeso")
11+
members = map(m -> "r$(m)i1p1f1", 1:40)
12+
df = DataFrame(experiment = String[], decade = Int64[], member = String[], variable = String[], isfile = Bool[])
13+
for (decade, experiment) in zip(decades, experiments)
14+
experimentdir = joinpath(modeldir, experiment)
15+
for member in members
16+
dir = joinpath(experimentdir, member, "Jan$(decade)-Dec$(decade + 9)", "cyclomonth")
17+
for variable in vars
18+
fname = joinpath(dir, "$variable.nc")
19+
row = (; experiment, decade, member, variable, isfile = isfile(fname))
20+
push!(df, row)
21+
end
22+
end
23+
end
24+
df
25+
Nmembers = length(members)
26+
Nvars = length(vars)
27+
df2 = @chain df begin
28+
# @groupby(:decade)
29+
# @combine(:count => sum(:isfile))
30+
@by(:decade, :done = 100 * sum(:isfile) / (Nmembers * Nvars))
31+
end
32+
# df2 = @chain df begin
33+
# # @subset(:isfile)
34+
# # @rtransform(:filesize = round(:filesize, sigdigits=2))
35+
# # @select(:variable, :filesize)
36+
# @groupby(:decade)
37+
# @combine(:count => sum(:isfile))
38+
# # @transform(:maxsize = maximum(:filesize))
39+
# # @rsubset(!isapprox(:filesize, :maxsize, atol = 0.1 * :maxsize), :decade ≠ 2010)
40+
# # @rselect(:CSIRO_member, :decade, :variable, :potentially_missing_data = round(Int, pc, 1 - :filesize / :maxsize |> pc))
41+
# # @orderby(:CSIRO_member, :decade, :variable)
42+
# end
43+
show(df2, allrows = true)
44+
exit()

0 commit comments

Comments
 (0)