11# qsub -I -P xv83 -q express -l mem=47GB -l storage=scratch/gh0+scratch/xv83 -l walltime=01:00:00 -l ncpus=12
2+ # This is Fig. 2 in Pasquier et al. (GRL, 2025)
23
34using Pkg
45Pkg. activate (" ." )
@@ -150,8 +151,8 @@ fig = Figure(size = (ncols * 500, nrows * 250 + 100), fontsize = 18)
150151yticks = - 60 : 30 : 60
151152xticks = - 120 : 60 : 120 + 360
152153
153- datamean = (Γout_ensemblemean, τℰ1050_ensemblemean[:,:,2 ], τℰ1050_ensemblemean[:,:,1 ])
154- datarange = (Γout_ensemblerange, τℰ1050_ensemblerange[:,:,2 ], τℰ1050_ensemblerange[:,:,1 ])
154+ datamean = (Γout_ensemblemean, τℰ1050_ensemblemean[:,:,2 ] .| > Float64 , τℰ1050_ensemblemean[:,:,1 ] .| > Float64 )
155+ datarange = (Γout_ensemblerange, τℰ1050_ensemblerange[:,:,2 ] .| > Float64 , τℰ1050_ensemblerange[:,:,1 ] .| > Float64 )
155156𝒓 = rich (" r" , font = :bold_italic )
156157Γstr = rich (" Γ" , superscript (" †" ), rich (" ‾" , offset = (- 0.55 , 0.25 )), rich (" ‾" , offset = (- 0.85 , 0.25 )))
157158Γfun = rich (Γstr, rich (" (" , 𝒓, " )" , offset = (0.4 , 0 )))
@@ -325,4 +326,34 @@ outputfile = joinpath(outputdir, "rangemeanage_over_meanage_$(time_window)$(suff
325326save (outputfile, fig)
326327@show mean (data, weights)
327328@show std (data, weights)
328- @show quantile (data, weights, 0 : 0.1 : 1 )
329+ @show quantile (data, weights, 0 : 0.1 : 1 )
330+
331+
332+
333+ # Save the data to be uploaded with paper
334+ metadata = Dict (
335+ " description" => " Characteristic timescales as plotted in Fig. 2 in Pasquier et al. (2025)" ,
336+ " model" => model,
337+ " experiment" => experiment,
338+ " time window" => time_window,
339+ " unit" => " years" ,
340+ )
341+ cube4D = DimensionalData. rebuild (areacello_ds[" areacello" ];
342+ data = [cat (datamean... , dims= 3 );;;; cat (datarange... , dims= 3 )],
343+ dims = (
344+ dims (readcubedata (volcello_ds. lat))... ,
345+ dims (DimArray (ones (3 ), Dim {:timescale} ([" mean" , " median" , " 10th percentile" ])))[1 ],
346+ dims (DimArray (ones (2 ), Dim {:statistic} ([" ensemble mean" , " ensemble range" ])))[1 ],
347+ ),
348+ metadata = metadata,
349+ )
350+ arrays = Dict (:timescales => cube4D, :lat => readcubedata (volcello_ds. lat), :lon => readcubedata (volcello_ds. lon))
351+ ds = Dataset (; properties = metadata, arrays... )
352+
353+ # Save to netCDF file
354+ outputfile = joinpath (inputdir, " Pasquier_etal_GRL_2025_Fig2_data.nc" )
355+ @info " Saving characteristic timescales as netCDF file:\n $(outputfile) "
356+ # ds_chunked = setchunks(ds, (x = 60, y = 60, Ti = length(ds.Ti)))
357+ savedataset (ds, path = outputfile, driver = :netcdf , overwrite = true )
358+
359+
0 commit comments