Exemple #1
0
def load_state(dt):
    prmsl = twcr.load('prmsl', dt, version='2c')
    prmsl = to_analysis_grid(prmsl.extract(iris.Constraint(member=1)))
    t2m = twcr.load('air.2m', dt, version='2c')
    t2m = to_analysis_grid(t2m.extract(iris.Constraint(member=1)))
    u10m = twcr.load('uwnd.10m', dt, version='2c')
    u10m = to_analysis_grid(u10m.extract(iris.Constraint(member=1)))
    v10m = twcr.load('vwnd.10m', dt, version='2c')
    v10m = to_analysis_grid(v10m.extract(iris.Constraint(member=1)))
    return (t2m, prmsl, u10m, v10m)
def get_compressed(year,month,day,hour):
    prmsl=twcr.load('prmsl',datetime.datetime(year,month,day,hour),
                               version='2c')
    prmsl=to_analysis_grid(prmsl.extract(iris.Constraint(member=1)))
    t2m=twcr.load('air.2m',datetime.datetime(year,month,day,hour),
                               version='2c')
    t2m=to_analysis_grid(t2m.extract(iris.Constraint(member=1)))
    u10m=twcr.load('uwnd.10m',datetime.datetime(year,month,day,hour),
                               version='2c')
    u10m=to_analysis_grid(u10m.extract(iris.Constraint(member=1)))
    v10m=twcr.load('vwnd.10m',datetime.datetime(year,month,day,hour),
                               version='2c')
    v10m=to_analysis_grid(v10m.extract(iris.Constraint(member=1)))
    insol=to_analysis_grid(load_insolation(year,month,day,hour))

    # Convert the validation data into tensor format
    t2m_t = tf.convert_to_tensor(normalise_t2m(t2m.data),numpy.float32)
    t2m_t = tf.reshape(t2m_t,[79,159,1])
    prmsl_t = tf.convert_to_tensor(normalise_prmsl(prmsl.data),numpy.float32)
    prmsl_t = tf.reshape(prmsl_t,[79,159,1])
    u10m_t = tf.convert_to_tensor(normalise_wind(u10m.data),numpy.float32)
    u10m_t = tf.reshape(u10m_t,[79,159,1])
    v10m_t = tf.convert_to_tensor(normalise_wind(v10m.data),numpy.float32)
    v10m_t = tf.reshape(v10m_t,[79,159,1])
    insol_t = tf.convert_to_tensor(normalise_insolation(insol.data),numpy.float32)
    insol_t = tf.reshape(insol_t,[79,159,1])

    ict = tf.concat([t2m_t,prmsl_t,u10m_t,v10m_t,insol_t],2) # Now [79,159,5]
    ict = tf.reshape(ict,[1,79,159,5])
    result = autoencoder.predict_on_batch(ict)
    result = tf.reshape(result,[79,159,5])
    ls = encoder.predict_on_batch(ict)
    
    # Convert the encoded fields back to unnormalised cubes 
    t2m_r=t2m.copy()
    t2m_r.data = tf.reshape(result.numpy()[:,:,0],[79,159]).numpy()
    t2m_r.data = unnormalise_t2m(t2m_r.data)
    prmsl_r=prmsl.copy()
    prmsl_r.data = tf.reshape(result.numpy()[:,:,1],[79,159]).numpy()
    prmsl_r.data = unnormalise_prmsl(prmsl_r.data)
    u10m_r=u10m.copy()
    u10m_r.data = tf.reshape(result.numpy()[:,:,2],[79,159]).numpy()
    u10m_r.data = unnormalise_wind(u10m_r.data)
    v10m_r=v10m.copy()
    v10m_r.data = tf.reshape(result.numpy()[:,:,3],[79,159]).numpy()
    v10m_r.data = unnormalise_wind(v10m_r.data)
    return {'t2m':t2m_r,'prmsl':prmsl_r,'u10m':u10m_r,'v10m':v10m_r,'ls':ls}
Exemple #3
0
    lats = prmsl.coord('latitude').points
    lons = prmsl.coord('longitude').points
    lons, lats = numpy.meshgrid(lons, lats)
    CS = ax.contour(lons,
                    lats,
                    prmsl.data * 0.01,
                    colors='black',
                    linewidths=0.5,
                    alpha=1.0,
                    levels=numpy.arange(870, 1050, 10),
                    zorder=200)


# Load the validation data
prmsl = twcr.load('prmsl', datetime.datetime(2010, 3, 12, 18), version='2c')
prmsl = to_analysis_grid(prmsl.extract(iris.Constraint(member=1)))
t2m = twcr.load('air.2m', datetime.datetime(2010, 3, 12, 18), version='2c')
t2m = to_analysis_grid(t2m.extract(iris.Constraint(member=1)))
u10m = twcr.load('uwnd.10m', datetime.datetime(2010, 3, 12, 18), version='2c')
u10m = to_analysis_grid(u10m.extract(iris.Constraint(member=1)))
v10m = twcr.load('vwnd.10m', datetime.datetime(2010, 3, 12, 18), version='2c')
v10m = to_analysis_grid(v10m.extract(iris.Constraint(member=1)))
insol = to_analysis_grid(load_insolation(2010, 3, 12, 18))

# Convert the validation data into tensor format
t2m_t = tf.convert_to_tensor(normalise_t2m(t2m.data), numpy.float32)
t2m_t = tf.reshape(t2m_t, [79, 159, 1])
prmsl_t = tf.convert_to_tensor(normalise_prmsl(prmsl.data), numpy.float32)
prmsl_t = tf.reshape(prmsl_t, [79, 159, 1])
u10m_t = tf.convert_to_tensor(normalise_wind(u10m.data), numpy.float32)
u10m_t = tf.reshape(u10m_t, [79, 159, 1])
Exemple #4
0
dtstart = datetime.datetime(1989, 1, 1, 0)

# Predictor model epoch
epoch = 25

sys.path.append('%s/../../lib/' % os.path.dirname(__file__))
from insolation import load_insolation
from geometry import to_analysis_grid
from normalise import normalise_insolation
from normalise import normalise_t2m
from normalise import normalise_prmsl
from normalise import normalise_wind

# Load the starting data and reshape into a state vector tensor
prmsl = twcr.load('prmsl', dtstart, version='2c')
prmsl = to_analysis_grid(prmsl.extract(iris.Constraint(member=1)))
prmsl = tf.convert_to_tensor(normalise_prmsl(prmsl.data), numpy.float32)
prmsl = tf.reshape(prmsl, [79, 159, 1])
t2m = twcr.load('air.2m', dtstart, version='2c')
t2m = to_analysis_grid(t2m.extract(iris.Constraint(member=1)))
t2m = tf.convert_to_tensor(normalise_t2m(t2m.data), numpy.float32)
t2m = tf.reshape(t2m, [79, 159, 1])
u10m = twcr.load('uwnd.10m', dtstart, version='2c')
u10m = to_analysis_grid(u10m.extract(iris.Constraint(member=1)))
u10m = tf.convert_to_tensor(normalise_wind(u10m.data), numpy.float32)
u10m = tf.reshape(u10m, [79, 159, 1])
v10m = twcr.load('vwnd.10m', dtstart, version='2c')
v10m = to_analysis_grid(v10m.extract(iris.Constraint(member=1)))
v10m = tf.convert_to_tensor(normalise_wind(v10m.data), numpy.float32)
v10m = tf.reshape(v10m, [79, 159, 1])
insol = to_analysis_grid(
Exemple #5
0
        ("%s/ML_GCM/datasets/+6h/" + "%s/%s/%s/%04d-%02d-%02d:%02d.tfd") %
        (os.getenv('SCRATCH'), args.source, args.variable, purpose, args.year,
         args.month, args.day, args.hour))

if not os.path.isdir(os.path.dirname(args.opfile)):
    os.makedirs(os.path.dirname(args.opfile))

# Load and standardise data
if args.source == '20CR2c':
    ic = twcr.load(
        args.variable,
        (datetime.datetime(args.year, args.month, args.day, args.hour) +
         datetime.timedelta(hours=6)),
        version='2c')
    ic = ic.extract(iris.Constraint(member=args.member))
    ic = to_analysis_grid(ic)
    if args.variable == 'uwnd.10m' or args.variable == 'vwnd.10m':
        ic.data = normalise_wind(ic.data)
    elif args.variable == 'air.2m':
        ic.data = normalise_t2m(ic.data)
    elif args.variable == 'prmsl':
        ic.data = normalise_prmsl(ic.data)
    else:
        raise ValueError('Variable %s is not supported' % args.variable)

else:
    raise ValueError('Source %s is not supported' % args.source)

# Convert to Tensor
ict = tf.convert_to_tensor(ic.data, numpy.float32)