1- # This script just prints a tiny table that shows the "completion rate" of making variables
1+ # This script test the "completion rate" of making averaged variables
22using Format
3- using DataFrames
4- using DataFramesMeta
3+
54datadir = " /scratch/xv83/TMIP/data"
65modeldir = joinpath (datadir, " ACCESS-ESM1-5" )
7- decades = [1850 , 1990 , 2020 , 2030 , 2090 ]
6+ decades = [1850 , 1990 , 2030 , 2090 ]
87# decades = [1990]
98experiments = [t < 2010 ? " historical" : " ssp370" for t in decades]
109vars = (" umo" , " vmo" , " mlotst" , " tx_trans_gm" , " ty_trans_gm" , " tx_trans_submeso" , " ty_trans_submeso" )
1110members = 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 )
11+
12+ using Test
13+ files = [ " $var .nc " for var in vars]
14+ @testset " saved data " begin
15+ @testset " $(decade) $(experiment) " for (decade, experiment) in zip (decades, experiments )
16+ experimentdir = joinpath (modeldir, experiment)
17+ @testset " $(member) " for member in members
18+ dir = joinpath (experimentdir, member, " Jan $(decade) -Dec $(decade + 9 ) " , " cyclomonth " )
19+ @test all ( isfile ( joinpath (dir, file)) for file in files )
2120 end
2221 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- @by ([:decade , :variable ], :done = 100 * sum (:isfile ) / Nmembers)
32- end
33- # df2 = @chain df begin
34- # # @subset(:isfile)
35- # # @rtransform(:filesize = round(:filesize, sigdigits=2))
36- # # @select(:variable, :filesize)
37- # @groupby(:decade)
38- # @combine(:count => sum(:isfile))
39- # # @transform(:maxsize = maximum(:filesize))
40- # # @rsubset(!isapprox(:filesize, :maxsize, atol = 0.1 * :maxsize), :decade ≠ 2010)
41- # # @rselect(:CSIRO_member, :decade, :variable, :potentially_missing_data = round(Int, pc, 1 - :filesize / :maxsize |> pc))
42- # # @orderby(:CSIRO_member, :decade, :variable)
43- # end
44- show (df2, allrows = true )
22+ end
0 commit comments