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