cube = cube[:,0,:,:]
	return cube

cmip5_max_strmfun = []
cmip5_year = []

for model in models_unique:
    print model
    files = np.array(glob.glob(directory+'msftmyz/piControl/*'+model+'*.nc'))
    cubes = iris.load(files,'ocean_meridional_overturning_mass_streamfunction',callback = remove_anonymous)
    max_strmfun = []
    year = []
    month = []
    for cube_tmp in cubes:
        cube = cube_tmp.copy()
        cube = m2yr.monthly_to_yearly(cube)
        for i,sub_cube in enumerate(cube.slices(['latitude', 'depth'])):
            max_strmfun.append(np.max(sub_cube.data))
            coord = sub_cube.coord('time')
            year.append(np.array([coord.units.num2date(value).year for value in coord.points])[0])
    cmip5_max_strmfun.append(np.array(max_strmfun))
    cmip5_year.append(np.array(year))
    


cmip5_max_strmfun = np.array(cmip5_max_strmfun)
cmip5_year = np.array(cmip5_year)

b, a = scipy.signal.butter(3, 0.01, 'high')
#here we are generating a high-pass filter to allow us to remove all the really low-period stuff - 200 year typw variability - this will hopefully mean that we're not picking up any signal from drift etc.
#an argument coudl be made to also filter out all of the really high frequenfy stuff - have a play with this...
import cartopy
import cartopy.crs as ccrs
import numpy as np
import matplotlib.pyplot as plt
import iris.quickplot as qplt
import iris.analysis.cartography
import monthly_to_yearly as my
import scipy
from scipy import signal
import iris.plot as iplt
import iris.quickplot as qplt
import iris.analysis.cartography
import iris.analysis.stats

file_name = '/home/ph290/data1/observations/hadisst/HadISST_sst.nc'
cube_in = my.monthly_to_yearly(iris.load_cube(file_name))
cube = cube_in.copy()
cube.coord('latitude').guess_bounds()
cube.coord('longitude').guess_bounds()

cube2 = cube.copy()

cube_data = cube.data
cube_data_detrended = scipy.signal.detrend(cube_data, axis=0)
cube.data = np.ma.array(cube_data_detrended)
cube.data.mask = cube_in.data.mask


lon_west = -75.0
lon_east = -7.5
lat_south = 0.0
directory = '/data/data0/ph290/cmip5_data/'
files1 = np.array(glob.glob(directory+'hadgem2es/sea_surface_height/*.nc'))
files2 = np.array(glob.glob(directory+'hadgem2_cc/sea_surface_height/*.nc'))

#files1 = np.array(glob.glob(directory+'hadgem2es/psl/*.nc'))
#files2 = np.array(glob.glob(directory+'hadgem2_cc/psl/*.nc'))

es_cubes = iris.load(files1,'sea_surface_height_above_geoid',callback = my_callback)
cc_cubes = iris.load(files2,'sea_surface_height_above_geoid',callback = my_callback)
#es_cubes = iris.load(files1,'air_pressure_at_sea_level',callback = my_callback)
#cc_cubes = iris.load(files2,'air_pressure_at_sea_level',callback = my_callback)

es_cube = iris.experimental.concatenate.concatenate(es_cubes)
cc_cube = iris.experimental.concatenate.concatenate(cc_cubes)

es_cube_ann = monthly_to_yearly.monthly_to_yearly(es_cube[0])
cc_cube_ann = monthly_to_yearly.monthly_to_yearly(cc_cube[0])
es_cube_ann.data = scipy.signal.detrend(es_cube_ann.data, axis=0)
cc_cube_ann.data = scipy.signal.detrend(cc_cube_ann.data, axis=0)

coord = cc_cube_ann.coord('time')
cc_year = np.array([coord.units.num2date(value).year for value in coord.points])
coord = es_cube_ann.coord('time')
es_year = np.array([coord.units.num2date(value).year for value in coord.points])

tsi_file = '/home/ph290/data0/cmip5_data/hadgem2_forcing_data/scvary_l09a.dat'
tsi = np.genfromtxt(tsi_file)

# plt.plot(tsi[:,0],tsi[:,1])

Example #4
0
                  ".mon*.nc")) == 0:
    print("Volume Transport NOT provided, will computed by Velocity!")
    missing_file = missing_file + 1

if missing_file == 2:
    print(
        " No transport or velocity provided. transport_onto_TS will NOT be executed!"
    )
    exit()

#============================================================
# Call NCL code here
#============================================================
recover_vmo_by_vo(model, DIR_in, DIR_out)
os.environ["which_mean"] = "occur_times"
monthly_to_yearly(model, DIR_in, DIR_out, "vmo", "vmo")
yearly_to_climate(model, DIR_in, DIR_out, "vmo", "vmo")
AMOC_T2B_from_climate(model, DIR_in, DIR_out)
interp_vit_to_viv_monthly(model, DIR_in, DIR_out)
monthly_to_yearly(model, DIR_in, DIR_out, "thetao_viv", "thetao")
yearly_to_climate(model, DIR_in, DIR_out, "thetao_viv", "thetao")
monthly_to_yearly(model, DIR_in, DIR_out, "so_viv", "so")
yearly_to_climate(model, DIR_in, DIR_out, "so_viv", "so")
trans_lats_monthly(model, DIR_in, DIR_out)
os.environ["which_mean"] = "total_times"
monthly_to_yearly(model, DIR_in, DIR_out, "trans", "trans")
yearly_to_climate(model, DIR_in, DIR_out, "trans", "trans")

script = os.environ["SRCDIR"] + "sigma0_on_theta-salt_plane.ncl"
execute_ncl_calculate(script)
script = os.environ["SRCDIR"] + "sigma2_on_theta-salt_plane.ncl"