# Get the sample cube for EUSTACE
# Monthly, resolved in latitude, sampling in longitude, sampling the ensemble.
# Delegates making the slices to the parallelisable make_slice script.
# This script only puts the slices together.
import os
import iris
import numpy
import datetime
import pickle
def get_sample_cube(start=datetime.datetime(1851,1,1,0,0),
end=datetime.datetime(2018,12,31,23,59)):
slice_dir = "%s/EUSTACE/derived/ensemble-monthly" % \
os.getenv('SCRATCH')
# Array to store the sample in
ndata=numpy.ma.array(numpy.zeros(((2016-1850)*12,720)),mask=False)
dts=[]
# Assemble the sample slice by slice
for year in range(1850,2016):
for month in range(1,13):
t=(year-1850)*12+month-1
dfile = "%s/%04d%02d.pkl" % (slice_dir,year,month)
with open(dfile, "rb") as f:
dslice = pickle.load(f)
ndata[t,:]=dslice[0,:]
dts.append(datetime.datetime(year,month,15))
return (ndata,dts)