Skip to content

Commit 0e2603a

Browse files
committed
update all plots for submission
1 parent 0ab2f20 commit 0e2603a

12 files changed

Lines changed: 1322 additions & 1237 deletions

src/average_monthly_seqeff_and_adjprop.jl

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# qsub -I -P xv83 -l mem=64GB -l storage=scratch/gh0+scratch/xv83 -l walltime=01:00:00 -l ncpus=12
1+
# qsub -I -P xv83 -l mem=47GB -l storage=scratch/gh0+scratch/xv83 -l walltime=01:00:00 -l ncpus=12
22

33
using Pkg
44
Pkg.activate(".")
@@ -37,18 +37,13 @@ using NaNStatistics
3737
# script options
3838
@show model = "ACCESS-ESM1-5"
3939
if isempty(ARGS)
40-
member = "r1i1p1f1"
41-
# experiment = "historical"
42-
# time_window = "Jan1850-Dec1859"
43-
# time_window = "Jan1990-Dec1999"
4440
experiment = "ssp370"
41+
member = "r1i1p1f1"
4542
time_window = "Jan2030-Dec2039"
4643
# time_window = "Jan2090-Dec2099"
47-
WRITEDATA = "true"
4844
else
49-
experiment, member, time_window, finalmonth, WRITEDATA = ARGS
45+
experiment, member, time_window = ARGS
5046
end
51-
WRITEDATA = parse(Bool, WRITEDATA)
5247
@show experiment
5348
@show member
5449
@show time_window
@@ -70,9 +65,9 @@ volcello_ds = open_dataset(joinpath(fixedvarsinputdir, "volcello.nc"))
7065
areacello_ds = open_dataset(joinpath(fixedvarsinputdir, "areacello.nc"))
7166

7267
# members = ["r$(i)i1p1f1" for i in 1:3]
73-
members = ["r$(i)i1p1f1" for i in 1:4]
68+
# members = ["r$(i)i1p1f1" for i in 1:1]
7469

75-
for member in members
70+
# for member in members
7671

7772
# Gadi directory for input files
7873
lumpby = "month"
@@ -154,7 +149,8 @@ for member in members
154149
# Save to netCDF file
155150
outputfile = joinpath(inputdir, "calE$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str).nc")
156151
@info "Saving mean sequestration efficiency as netCDF file:\n $(outputfile)"
157-
savedataset(ds, path = outputfile, driver = :netcdf, overwrite = true)
152+
ds_chunked = setchunks(ds, (x = 60, y = 60, Ti = length(ds.Ti)))
153+
savedataset(ds_chunked, path = outputfile, driver = :netcdf, overwrite = true)
158154

159155

160156
# Do the same for 𝒢̃
@@ -190,8 +186,9 @@ for member in members
190186
# Save to netCDF file
191187
outputfile = joinpath(inputdir, "calgtilde$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str).nc")
192188
@info "Saving mean adjoint propagator as netCDF file:\n $(outputfile)"
193-
savedataset(ds, path = outputfile, driver = :netcdf, overwrite = true)
189+
ds_chunked = setchunks(ds, (x = 60, y = 60, Ti = length(ds.Ti)))
190+
savedataset(ds_chunked, path = outputfile, driver = :netcdf, overwrite = true)
194191

195192

196-
end
193+
# end
197194

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
3+
#PBS -P xv83
4+
#PBS -N avg_member_placeholder_time_window_placeholder
5+
#PBS -l ncpus=16
6+
#PBS -q express
7+
#PBS -l mem=63GB
8+
#PBS -l jobfs=4GB
9+
#PBS -l walltime=0:10:00
10+
#PBS -l storage=scratch/gh0+scratch/xv83
11+
#PBS -l wd
12+
#PBS -o output/PBS/
13+
#PBS -j oe
14+
15+
experiment=ssp370
16+
time_window=time_window_placeholder
17+
member=member_placeholder
18+
19+
echo "Going into ACCESS-TMIP"
20+
cd ~/Projects/TMIP/ACCESS-TMIP
21+
22+
echo "Running script"
23+
julia src/average_monthly_seqeff_and_adjprop.jl $experiment $member $time_window &> output/average_monthly_seqeff_and_adjprop.$experiment.$member.$time_window.$PBS_JOBID.out
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
for member in r{14..14}i1p1f1; do
2+
for time_window in Jan2030-Dec2039 Jan2090-Dec2099; do
3+
# change member_placeholders in timestep_adjoint_propagator.sh and create file and remove it
4+
sed "s/member_placeholder/$member/g" src/average_monthly_seqeff_and_adjprop.sh > src/tmp.sh
5+
sed -i "s/time_window_placeholder/$time_window/g" src/tmp.sh
6+
qsub src/tmp.sh
7+
rm src/tmp.sh
8+
done
9+
done
10+

src/plot_AA_age.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# qsub -I -P xv83 -l mem=64GB -l storage=scratch/gh0+scratch/xv83 -l walltime=00:20:00 -l ncpus=12
1+
# qsub -I -P xv83 -q express -l mem=47GB -l storage=scratch/gh0+scratch/xv83 -l walltime=00:30:00 -l ncpus=12
22

33
using Pkg
44
Pkg.activate(".")

src/plot_ACCESS_quantilesandmean.jl

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# qsub -I -P xv83 -l mem=47GB -q express -l storage=scratch/gh0+scratch/xv83 -l walltime=01:00:00 -l ncpus=12
1+
# qsub -I -P xv83 -q express -l mem=47GB -l storage=scratch/gh0+scratch/xv83 -l walltime=01:00:00 -l ncpus=12
22

33
using Pkg
44
Pkg.activate(".")
@@ -72,8 +72,6 @@ lev = zt
7272
indices = makeindices(gridmetrics.v3D)
7373
(; wet3D, N) = indices
7474

75-
76-
7775
# Preferred diffusivities
7876
κVdeep = 3.0e-5 # m^2/s
7977
κVML = 1.0 # m^2/s
@@ -86,7 +84,7 @@ upwind_str = upwind ? "" : "_centered"
8684
upwind_str2 = upwind ? "upwind" : "centered"
8785

8886
# Use yearly time-stepped simulations or monthly ones?
89-
yearly = true
87+
yearly = false
9088
yearly_str = yearly ? "_yearly" : ""
9189
yearly_str2 = yearly ? "(yearly)" : ""
9290

@@ -99,34 +97,29 @@ end
9997

10098
# To avoid loading and carrying 100s of GB of data around,
10199
# preprocess each member before and only save the 2D data needed for plots.
102-
if yearly
103-
ℰ_file0 = "/scratch/xv83/TMIP/data/$model/$experiment/$(first(members))/$(time_window)/seqeff$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str)$(yearly_str).nc"
104-
ℰ_ds0 = open_dataset(ℰ_file0)
105-
years = ℰ_ds0.Ti |> Array
106-
ℰ1050_ensemble = reduce((x,y) -> cat(x, y, dims = 4), map(members) do member
107-
@info "loading $member"
108-
ℰ_file = "/scratch/xv83/TMIP/data/$model/$experiment/$member/$(time_window)/seqeff$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str)$(yearly_str).nc"
109-
ℰ_ds = open_dataset(ℰ_file)
110-
= readcubedata(ℰ_ds.seqeff)
111-
ℰ10 = map(
112-
ts -> yearatquantile(ts, 0.9),
113-
view(ℰ, i, j, :) for i in 1:size(ℰ,1), j in 1:size(ℰ,2)
114-
)
115-
ℰ50 = map(
116-
ts -> yearatquantile(ts, 0.5),
117-
view(ℰ, i, j, :) for i in 1:size(ℰ,1), j in 1:size(ℰ,2)
118-
)
119-
[ℰ10;;; ℰ50]
120-
end)
121-
ℰ1050_ensemblemean = dropdims(mean(ℰ1050_ensemble, dims = 4), dims = 4)
122-
ℰ1050_ensemblemax = dropdims(maximum(ℰ1050_ensemble, dims = 4), dims = 4)
123-
ℰ1050_ensemblemin = dropdims(minimum(ℰ1050_ensemble, dims = 4), dims = 4)
124-
ℰ1050_ensemblerange = ℰ1050_ensemblemax - ℰ1050_ensemblemin
125-
126-
127-
else
128-
# TODO (don't forget to deal with months)
129-
end
100+
varname = yearly ? "seqeff" : "calE"
101+
ℰ_file0 = "/scratch/xv83/TMIP/data/$model/$experiment/$(first(members))/$(time_window)/$(varname)$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str)$(yearly_str).nc"
102+
ℰ_ds0 = open_dataset(ℰ_file0)
103+
years = ℰ_ds0.Ti |> Array
104+
τℰ1050_ensemble = reduce((x,y) -> cat(x, y, dims = 4), map(members) do member
105+
@info "loading $member"
106+
ℰ_file = "/scratch/xv83/TMIP/data/$model/$experiment/$member/$(time_window)/$(varname)$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str)$(yearly_str).nc"
107+
ℰ_ds = open_dataset(ℰ_file)
108+
= readcubedata(ℰ_ds[varname])
109+
τℰ10 = map(
110+
ts -> yearatquantile(ts, 0.9),
111+
view(ℰ, i, j, :) for i in 1:size(ℰ,1), j in 1:size(ℰ,2)
112+
)
113+
τℰ50 = map(
114+
ts -> yearatquantile(ts, 0.5),
115+
view(ℰ, i, j, :) for i in 1:size(ℰ,1), j in 1:size(ℰ,2)
116+
)
117+
[τℰ10;;; τℰ50]
118+
end)
119+
τℰ1050_ensemblemean = dropdims(mean(τℰ1050_ensemble, dims = 4), dims = 4)
120+
τℰ1050_ensemblemax = dropdims(maximum(τℰ1050_ensemble, dims = 4), dims = 4)
121+
τℰ1050_ensemblemin = dropdims(minimum(τℰ1050_ensemble, dims = 4), dims = 4)
122+
τℰ1050_ensemblerange = τℰ1050_ensemblemax - τℰ1050_ensemblemin
130123

131124
include("plotting_functions.jl") # load seafloorvalue function
132125

@@ -157,16 +150,18 @@ fig = Figure(size = (ncols * 500, nrows * 250 + 100), fontsize = 18)
157150
yticks = -60:30:60
158151
xticks = -120:60:120 + 360
159152

160-
datamean = (Γout_ensemblemean, ℰ1050_ensemblemean[:,:,2], ℰ1050_ensemblemean[:,:,1])
161-
datarange = (Γout_ensemblerange, ℰ1050_ensemblerange[:,:,2], ℰ1050_ensemblerange[:,:,1])
153+
datamean = (Γout_ensemblemean, τℰ1050_ensemblemean[:,:,2], τℰ1050_ensemblemean[:,:,1])
154+
datarange = (Γout_ensemblerange, τℰ1050_ensemblerange[:,:,2], τℰ1050_ensemblerange[:,:,1])
162155
𝒓 = rich("r", font = :bold_italic)
163156
Γstr = rich("Γ", superscript(""), rich("", offset = (-0.55, 0.25)), rich("", offset = (-0.85, 0.25)))
164157
Γfun = rich(Γstr, rich("(", 𝒓, ")", offset = (0.4, 0)))
165158
# Qstr = rich("Q", font = :italic)
166159
ℰstr = rich("", rich("", offset = (-0.5, 0.15)))
167160
# Q10 = rich(Qstr, "(0.1)")
168161
# Q50 = rich(Qstr, "(0.5)")
169-
rowlabels = (rich("Mean time, ", Γfun), rich("Median, ", ℰstr, " = 50 %"), rich("10th percentile, ", ℰstr, " = 90 %"))
162+
# rowlabels = (rich("Mean time, ", Γfun), rich("Median time (", ℰstr, " = 50 %)"), rich("10th percentile time (", ℰstr, " = 90 %)"))
163+
rowlabels = (rich("Mean time, ", Γfun), rich("Median time (", ℰstr, " = 50 %)"), rich("10th %ile time (", ℰstr, " = 90 %)"))
164+
# rowlabels = (rich("Mean time, ", Γfun), rich("Median time (", ℰstr, " = 50 %)"), rich("10 % time (", ℰstr, " = 90 %)"))
170165

171166

172167
for (irow, (x2Dmean, x2Drange, text)) in enumerate(zip(datamean, datarange, rowlabels))
@@ -179,7 +174,7 @@ for (irow, (x2Dmean, x2Drange, text)) in enumerate(zip(datamean, datarange, rowl
179174
colormap = cgrad(colormap[1:end-1], categorical = true)
180175
colorrange = extrema(levels)
181176

182-
axs[irow, icol] = ax = Axis(fig[irow, icol]; yticks, xticks, xtickformat, ytickformat)
177+
axs[irow, icol] = ax = Axis(fig[irow, icol]; yticks, xticks, xtickformat, ytickformat, aspect = DataAspect())
183178

184179
contours[irow, icol] = if usecontourf
185180
plotcontourfmap!(ax, x2Dmean, gridmetrics; levels, colormap)
@@ -198,7 +193,7 @@ for (irow, (x2Dmean, x2Drange, text)) in enumerate(zip(datamean, datarange, rowl
198193
colormap = cgrad(colormap[1:end-1], categorical = true)
199194
colorrange = extrema(levels)
200195

201-
axs[irow, icol] = ax = Axis(fig[irow, icol]; yticks, xticks, xtickformat, ytickformat)
196+
axs[irow, icol] = ax = Axis(fig[irow, icol]; yticks, xticks, xtickformat, ytickformat, aspect = DataAspect())
202197

203198
contours[irow, icol] = if usecontourf
204199
plotcontourfmap!(ax, x2Drange, gridmetrics; levels, colormap)
@@ -214,7 +209,7 @@ for (irow, (x2Dmean, x2Drange, text)) in enumerate(zip(datamean, datarange, rowl
214209
end
215210

216211

217-
label = rich("ensemble mean (years)")
212+
label = rich("ensemble mean $(time_window[4:7])s characteristic timescales (years)")
218213
cb = Colorbar(fig[nrows + 1, 1], contours[1, 1]; label, vertical = false, flipaxis = false, ticks = 0:1000:3000)
219214
cb.width = Relative(2/3)
220215

@@ -240,12 +235,18 @@ for (ax, label) in zip(axs, labels)
240235
end
241236

242237
# Label(fig[0, 1:2]; text = "$(time_window[4:7])s Seafloor Reemergence Time ($(length(members)) members)", fontsize = 24, tellwidth = false)
243-
Label(fig[0, 1:2]; text = "$(time_window[4:7])s Characteristic Timescales of Reemergence ($(length(members)) members)$(yearly_str2)", fontsize = 24, tellwidth = false)
238+
# Label(fig[0, 1:2]; text = "$(time_window[4:7])s Characteristic Timescales of Reemergence ($(length(members)) members)$(yearly_str2)", fontsize = 24, tellwidth = false)
244239
rowgap!(fig.layout, 10)
245240
colgap!(fig.layout, 10)
246241

242+
colsize!(fig.layout, 1, Aspect(1, 2.0))
243+
colsize!(fig.layout, 2, Aspect(1, 2.0))
244+
resize_to_layout!(fig)
245+
247246
# save plot
248247
suffix = usecontourf ? "_ctrf" : ""
248+
249+
249250
outputfile = joinpath(outputdir, "reemergencetime$(upwind_str)_$(κVdeep_str)_$(κH_str)_$(κVML_str)$(yearly_str)_$(time_window)$(suffix).png")
250251
@info "Saving reemergencetime on sea floor as image file:\n $(outputfile)"
251252
save(outputfile, fig)
@@ -255,7 +256,7 @@ save(outputfile, fig)
255256

256257

257258

258-
# datamean = (Γout_ensemblemean, ℰ50_ensemblemean, ℰ10_ensemblemean)
259+
# datamean = (Γout_ensemblemean, τℰ50_ensemblemean, τℰ10_ensemblemean)
259260
ikeep = .!isnan.(datamean[1]) .& (seafloorvalue(Z3D, wet3D) .> 3000)
260261
data = datamean[2][ikeep] ./ datamean[1][ikeep] .- 1
261262
weights = Weights(gridmetrics.area2D[ikeep])

0 commit comments

Comments
 (0)