Skip to content

Commit 703e9f2

Browse files
committed
Archive and cyclo average CMIP6 data
1 parent f0845c5 commit 703e9f2

7 files changed

+67
-44
lines changed

scripts/archive_unarchived_CMIP6_ACCESS_GM_files.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ model=ACCESS-ESM1-5
2828
# model=ACCESS-CM2
2929

3030
experiment=historical
31-
members=("HI-37","HI-38","HI-39","HI-40","HI-41","HI-42","HI-43","HI-44")
31+
members=("HI-33","HI-34","HI-35","HI-36")
3232
decade_start=1850
3333
decade_end=2020
3434
# experiment=ssp370

scripts/average_unarchived_CMIP6_ACCESS_GM_variables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def open_my_dataset(paths):
112112
print(f"\nProcessing {CSIRO_member(member)} as {CMIP6_member(member)}")
113113

114114
# directory to save the data to (as NetCDF)
115-
inputdir = f'{gdatadatadir}/{model}/{CSIRO_member(member)}'
115+
inputdir = f'{gdatadatadir}/{model}/{experiment}/{CSIRO_member(member)}'
116116
outputdir = f'{scratchdatadir}/{model}/{experiment}/{CMIP6_member(member)}/{start_time_str}-{end_time_str}'
117117
print("Creating directory: ", outputdir)
118118
os.makedirs(outputdir, exist_ok=True)

scripts/check_archive_unarchived_CMIP6_ACCESS_GM_files.py

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
# interactive use only
77
model="ACCESS-ESM1-5"
88
experiment="historical"
9-
# year_start = 1850
10-
year_start = 1940
11-
# year_end = 2015
12-
year_end = 1950
9+
# decade_start = 1850
10+
decade_start = 1940
11+
# decade_end = 2015
12+
decade_end = 1950
1313

1414

1515
# Model etc. defined from script input
@@ -19,10 +19,10 @@
1919
print("Experiment: ", experiment, " (type: ", type(experiment), ")")
2020
members = sys.argv[3].split(',')
2121
print("members: ", members, " (type: ", type(members), ")")
22-
year_start = int(sys.argv[4])
23-
print("year_start: ", year_start, " (type: ", type(year_start), ")")
24-
year_end = int(sys.argv[5])
25-
print("year_end: ", year_end, " (type: ", type(year_end), ")")
22+
decade_start = int(sys.argv[4])
23+
print("decade_start: ", decade_start, " (type: ", type(decade_start), ")")
24+
decade_end = int(sys.argv[5])
25+
print("decade_end: ", decade_end, " (type: ", type(decade_end), ")")
2626

2727
# 1. Load packages
2828

@@ -45,6 +45,20 @@
4545
# # Load xmip for preprocessing (trying to get consistent metadata for making matrices down the road)
4646
# from xmip.preprocessing import combined_preprocessing
4747

48+
decades = range(decade_start, decade_end, 10)
49+
print(f"\nDecades:\n")
50+
print(*decades)
51+
52+
# Historical runs go from 1850 to 2015, and future scenarios from 2015 to 2100.
53+
# I want to save data per decade, so I need some logic branching to deal with the 2010s.
54+
def decade_years(decade, experiment):
55+
if decade == 2010:
56+
if (experiment == "historical"):
57+
return range(2010, 2015)
58+
else:
59+
return range(2015, 2020)
60+
else:
61+
return range(decade, decade + 10)
4862

4963

5064

@@ -57,13 +71,11 @@
5771
# members = ["HI-09", "HI-10", "HI-11", "HI-12"]
5872
# members = ["HI-05"]
5973

60-
61-
6274
print("Starting client")
6375

6476
# This `if` statement is required in scripts (not required in Jupyter)
6577
if __name__ == '__main__':
66-
client = Client(n_workers=24, threads_per_worker=1)
78+
client = Client(n_workers=40, threads_per_worker=1)
6779
#, threads_per_worker=1, memory_limit='16GB') # Note: with 1thread/worker cannot plot thetao. Maybe I need to understand why?
6880
# added threads_per_worker=1 back again because I possibly hitting some random unsafe multithreading issue:
6981
# https://forum.access-hive.org.au/t/netcdf-not-a-valid-id-errors/389
@@ -72,27 +84,27 @@
7284
for member in members:
7385

7486
# print ensemble/member
75-
inputdir = f'/scratch/p66/pbd562/petrichor/get/{member}/history/ocn'
76-
outputdir = f'{gdatadatadir}/{model}/{member}'
77-
print(f"\n{member}")
87+
if experiment == "historical":
88+
inputdir = f'/scratch/p66/pbd562/petrichor/get/{member}/history/ocn'
89+
else:
90+
inputdir = f'/scratch/p66/pbd562/petrichor/get/{experiment}/{member}/history/ocn'
7891

79-
for decade in range(year_start, year_end, 10):
92+
outputdir = f'{gdatadatadir}/{model}/{experiment}/{member}'
93+
print(f"\nProcessing {member}")
8094

81-
# print(f' {decade}s')
95+
for decade in decades:
8296

83-
# subset of the files required
84-
# paths = [f'{inputdir}/history/ocn/ocean_month.nc-{year}1231' for year in range(year_start, year_end)]
85-
# paths = [f'{inputdir}/history/ocn/ocean_month.nc-{year}1231' for year in range(1990, 2000)]
86-
if decade == 2010:
87-
num_years = 5
88-
else:
89-
num_years = 10
97+
print(f'\nDecade {decade}:\n')
98+
99+
years = decade_years(decade, experiment)
100+
print(*years)
90101

91-
paths = [f'{inputdir}/ocean_month.nc-{year}1231' for year in range(decade, decade + num_years)]
102+
# subset of the files required
103+
paths = [f'{inputdir}/ocean_month.nc-{year}1231' for year in years]
92104

93105
# Exit early if cannot find all files
94106
if not all([os.path.isfile(fname) for fname in paths]):
95-
print(f'Missing files for {member} {decade}-{decade + num_years}')
107+
print(f'Missing files for {member} {decade}s')
96108
continue
97109

98110
# load the data

scripts/check_archive_unarchived_CMIP6_ACCESS_GM_files.sh

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
#PBS -P xv83
44
#PBS -N archive_GM_check
5-
#PBS -l ncpus=28
5+
#PBS -l ncpus=48
66
#PBS -l mem=180GB
77
#PBS -l jobfs=4GB
8-
#PBS -l walltime=12:00:00
8+
#PBS -l walltime=24:00:00
99
#PBS -l storage=gdata/xv83+gdata/dk92+gdata/hh5+gdata/xp65+gdata/p73+scratch/p66
1010
#PBS -l wd
1111
#PBS -o output/PBS/
@@ -23,20 +23,28 @@ conda info
2323
echo "Loading python3/3.12.1"
2424
module load python3/3.12.1
2525

26-
# CHANGE HERE the model, experiment, ensemble, etc.
26+
# CHANGE HERE the model, experiment, members, decades.
2727
model=ACCESS-ESM1-5
2828
# model=ACCESS-CM2
29-
experiment=historical
30-
year_start=1850
31-
# year_start=1990
32-
year_end=2015
33-
# year_end=2000
34-
members=("HI-05","HI-07","HI-08","HI-09","HI-10","HI-11","HI-12")
35-
# members=("HI-07")
29+
30+
# experiment=historical
31+
# # members=("HI-05","HI-06","HI-07","HI-08","HI-09","HI-10","HI-11","HI-12","HI-13","HI-14")
32+
# # members=("HI-15","HI-16","HI-17","HI-18","HI-19","HI-20","HI-21","HI-22","HI-23","HI-24")
33+
# # members=("HI-25","HI-26","HI-27","HI-28","HI-29","HI-30","HI-31","HI-32","HI-33","HI-34")
34+
# members=("HI-35","HI-36","HI-37","HI-38","HI-39","HI-40","HI-41","HI-42","HI-43","HI-44")
35+
# decade_start=1850
36+
# decade_end=2020
37+
experiment=ssp370
38+
# members=("SSP-370-05","SSP-370-06","SSP-370-07","SSP-370-08","SSP-370-09","SSP-370-10","SSP-370-11","SSP-370-12","SSP-370-13","SSP-370-14")
39+
# members=("SSP-370-15","SSP-370-16","SSP-370-17","SSP-370-18","SSP-370-19","SSP-370-20","SSP-370-21","SSP-370-22","SSP-370-23","SSP-370-24")
40+
# members=("SSP-370-25","SSP-370-26","SSP-370-27","SSP-370-28","SSP-370-29","SSP-370-30","SSP-370-31","SSP-370-32","SSP-370-33","SSP-370-34")
41+
members=("SSP-370-35","SSP-370-36","SSP-370-37","SSP-370-38","SSP-370-39","SSP-370-40","SSP-370-41","SSP-370-42","SSP-370-43","SSP-370-44")
42+
decade_start=2010
43+
decade_end=2100
3644

3745

3846
echo "Running transport-state script"
39-
python scripts/check_archive_unarchived_CMIP6_ACCESS_GM_files.py $model $experiment $members $year_start $year_end \
47+
python scripts/check_archive_unarchived_CMIP6_ACCESS_GM_files.py $model $experiment $members $decade_start $decade_end \
4048
&> output/$PBS_JOBID.$model.monthly.checkarchiveddatavsTilos.out
4149

4250

scripts/cyclo_average_CMIP6_ACCESS_variables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ def sort_members(members):
252252
if __name__ == '__main__':
253253
client = Client(n_workers=4, threads_per_worker=1)#, threads_per_worker=1, memory_limit='16GB') # Note: with 1thread/worker cannot plot thetao. Maybe I need to understand why?
254254

255-
for member in sorted_members[0:1]:
255+
for member in sorted_members:
256256

257257
# print ensemble/member
258258
print(f"\nProcessing member: {member}")

scripts/cyclo_average_CMIP6_ACCESS_variables.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
#PBS -P xv83
44
#PBS -N CMIP6_ACCESS_preprocessing
5-
#PBS -l ncpus=28
5+
#PBS -l ncpus=48
66
#PBS -l mem=180GB
77
#PBS -l jobfs=4GB
8-
#PBS -l walltime=12:00:00
8+
#PBS -l walltime=24:00:00
99
#PBS -l storage=gdata/xv83+gdata/oi10+gdata/dk92+gdata/hh5+gdata/rr3+gdata/al33+gdata/fs38+gdata/xp65+gdata/p73
1010
#PBS -l wd
1111
#PBS -o output/PBS/

scripts/cyclo_average_unarchived_CMIP6_ACCESS_GM_variables.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,10 @@ def climatology(ds, lumpby):
138138
decades = range(decade_start, year_start + num_years, 10)
139139

140140
# Members to loop through
141-
members = [1, 3, 4, 5, 6, 7, 8]
141+
# members = range(1, 41)
142+
members = range(1, 9)
143+
# members = range(9, 41)
144+
# members = [1, 3, 4, 5, 6, 7, 8]
142145
# members = [1, 3, 4]
143146
# members = [5, 6, 7, 8]
144147

@@ -149,13 +152,13 @@ def climatology(ds, lumpby):
149152
if __name__ == '__main__':
150153
client = Client(n_workers=24) #, threads_per_worker=1, memory_limit='16GB') # Note: with 1thread/worker cannot plot thetao. Maybe I need to understand why?
151154

152-
for member in members[0:1]:
155+
for member in members:
153156

154157
# print ensemble/member
155158
print(f"\nProcessing {CSIRO_member(member)} as {CMIP6_member(member)}")
156159

157160
# directory to save the data to (as NetCDF)
158-
inputdir = f'{gdatadatadir}/{model}/{CSIRO_member(member)}'
161+
inputdir = f'{gdatadatadir}/{model}/{experiment}/{CSIRO_member(member)}'
159162
outputdir = f'{scratchdatadir}/{model}/{experiment}/{CMIP6_member(member)}/{start_time_str}-{end_time_str}/cyclo{lumpby}'
160163
print("Creating directory: ", outputdir)
161164
os.makedirs(outputdir, exist_ok=True)

0 commit comments

Comments
 (0)