# 0.25 degree resolution target
path = ('/nfs/a68/gyjcab/datasets/lapse_data_harmonised/Jan_2018/mon_0.25deg/')
pt25_cube = path+'sal_clara_mon_0.25deg_1982_2015_direct_from_netcdf.nc'

# specify target cube
regrid_cube = one_deg_cube

# read in ERA5 data
path = '/nfs/a68/gyjcab/datasets/ERA5/'
cube = iris.load_cube(path + 'era5_surface_solar_radiation.nc')
print(cube)

# Convert units to W/m2 by dividing by seconds in day
dates = get_dates(cube)
for t in range(len(dates)):
    date = dates[t]
    seconds_in_day = 60*60*24
    temp_data = cube.data[t, :, :] / seconds_in_day
    cube.data[t, :, :] = temp_data

# convert cube data units
cube.units = 'W/m2'

# call harmonise.cube2netcdf function to regrid and save as new cube
harmonise.cube2netcdf(cube, 'rdn', startyr=1979, nyear=41,
                      #remove_cell_methods=True,
                      product='era5_test', regrid=True, latlon_bounds=True,
                      #time_bounds=False,
                      regrid_cube=regrid_cube)

Пример #2
0
path = ('/nfs/a68/gyjcab/datasets/lapse_data_harmonised/Jan_2018/mon_0.25deg/')
pt25_cube = path + 'sal_clara_mon_0.25deg_1982_2015_direct_from_netcdf.nc'

# specify target cube
regrid_cube = one_deg_cube

# read in GLEAM netcdf
data_path = '/nfs/a68/gyjcab/datasets/GLEAM/v3.3/v3.3b/monthly/'
#cube = iris.load_cube(data_path + 'E_1980_2018_GLEAM_v3.3a_MO.nc')
cube = iris.load_cube(data_path + 'E_2003_2018_GLEAM_v3.3b_MO.nc')

# reorder coordinates
cube.transpose([0, 2, 1])
print(cube)
cube.standard_name = 'water_evaporation_flux'
name = 'water_evaporation_flux'
cube.convert_units('mm.s-1')
cube.units = 'kg m^-2 s^-1'

# call harmonise.cube2netcdf function to regrid and save as new cube
harmonise.cube2netcdf(cube,
                      'evspsbl',
                      startyr=2003,
                      nyear=16,
                      product='gleam_3.3b_test',
                      regrid=True,
                      latlon_bounds=True,
                      regrid_cube=regrid_cube,
                      time_bounds=False,
                      name=name)
# specify target cube
regrid_cube = one_deg_cube

# GRACE Monthly Mass Grids - Global mascons (JPL RL06_v02)
# read scale
path = '/nfs/a68/gyjcab/datasets/GRACE/JPL_MASCON/'
scale = iris.load_cube(path + 'CLM4.SCALE_FACTOR.JPL.MSCNv02CRI.nc')

# read liquid water equivalent thickness
name_constraint = iris.Constraint(
    cube_func=lambda cube: cube.var_name == 'lwe_thickness')
lwe = iris.load_cube(path +
                     'GRCTellus.JPL.200204_201911.GLO.RL06M.MSCNv02CRI.nc',
                     constraint=name_constraint)

name = lwe.name()
cube = lwe * scale.data

# call harmonise.cube2netcdf function to regrid and save as new cube
harmonise.cube2netcdf(cube,
                      'lwe',
                      startyr=2002,
                      nyear=19,
                      product='test_grace_jpl_mascon',
                      regrid=True,
                      latlon_bounds=True,
                      regrid_cube=regrid_cube,
                      time_bounds=False,
                      name=name)
Пример #4
0
path = ('/nfs/a68/gyjcab/datasets/lapse_data_harmonised/Jan_2018/mon_1.0deg/')
one_deg_cube = path + 'tas_airs_mon_1.0deg_2003_2016.nc'

# 0.25 degree resolution target
path = ('/nfs/a68/gyjcab/datasets/lapse_data_harmonised/Jan_2018/mon_0.25deg/')
pt25_cube = path + 'sal_clara_mon_0.25deg_1982_2015_direct_from_netcdf.nc'

# specify target cube
regrid_cube = one_deg_cube

# read in CHIRPS netcdf
path = '/nfs/a68/gyjcab/datasets/CHIRPS/'
cube = iris.load_cube(path + 'chirps-v2.0.monthly_1981_2020.nc')
print(cube)

# if needed convert units
#cube.units = 'kg m-2 month-1'
#cube.convert_units('kg m-2 day-1')

# call harmonise.cube2netcdf function to regrid and save as new cube
harmonise.cube2netcdf(cube,
                      'pr',
                      startyr=1981,
                      nyear=40,
                      remove_cell_methods=True,
                      product='test_chirps',
                      regrid=True,
                      latlon_bounds=True,
                      time_bounds=False,
                      regrid_cube=regrid_cube)
Пример #5
0
import harmonise
import warnings
warnings.filterwarnings("ignore")

# specify path to file that matches the resolution you wish to regrid to
# 1.0 degree resolution target
path = ('/nfs/a68/gyjcab/datasets/lapse_data_harmonised/Jan_2018/mon_1.0deg/')
one_deg_cube = path+'tas_airs_mon_1.0deg_2003_2016.nc'

# 0.25 degree resolution target
path = ('/nfs/a68/gyjcab/datasets/lapse_data_harmonised/Jan_2018/mon_0.25deg/')
pt25_cube = path+'sal_clara_mon_0.25deg_1982_2015_direct_from_netcdf.nc'

# specify target cube
regrid_cube = one_deg_cube

# read in CLARA radiation data
data_path = '/nfs/a68/gyjcab/datasets/CLARA/surface_radiation/sis/'
cubes = harmonise.iris_read(data_path, 'surface_downwelling_shortwave_flux',
                            short_name='SIS')
nyear = len(cubes)/12

# call harmonise.cube2netcdf function to regrid and save as new cube
harmonise.cube2netcdf(cubes, 'sis', startyr=1982, nyear=nyear,
                      product='clara_test', regrid=True, latlon_bounds=True,
                      merge=True, regrid_cube=regrid_cube, units='W m^-2')