In [17]:
from lut_tools import *
from multivariate_gp import MultivariateEmulator

In [18]:
create_surface_functions ("parameter_trajectories.dat" )
sentinel = Sentinel ( "parameter_trajectories.dat" )
annual_cloud_mask = sentinel.set_cloudiness ( prop=0.5, window=15 )
sentinel.set_revisit ( 5, shift=0, cloudy=True)
sentinel.dump_empty_obs ( "template_file.txt")

In [19]:
d = np.loadtxt("template_file.txt")

In [20]:
print "Already done, feel free to re-run to get different experiments etc."
if True:
    lambda_max = 2501
    lambda_min = 400
    b0, b1 = 0.008, 0.02 
    bu = np.zeros ( ( 2101 ) )
    bu = b0 + ((b1-b0)/(lambda_max-lambda_min)) * \
                (np.arange(400, 2501) - lambda_min)
    sentinel_bands_min = np.array([433, 457.5, 542.5, 650, 697.5, 732.5, 773, 784.5, 855, 935, 1565, 2100])
    sentinel_bands_max = np.array([453, 522.5, 577.5, 680, 712.5, 747.5, 793, 899.5, 875, 955, 1655,2280] )
    wv = np.arange(400, 2501)
    bandpass = np.zeros((sentinel_bands_min.shape[0], 2101), dtype=np.bool)
    for i in xrange ( sentinel_bands_min.shape[0] ):
        bandpass[i, :] = np.logical_and ( wv >= sentinel_bands_min[i], wv <= sentinel_bands_max[i] )
    complete_params = [ 1.5, -999, 0, 0, 0.03, 1./66., -999, 45., 0, 1., -999., 0.01, -999, -999, -999, 2]
    params = np.loadtxt("parameter_trajectories.dat")
    fp = open ("brf_obs.txt", 'w' )
    for l in xrange( d.shape[0] ):
        this_doy = d[l,0]
        vza, sza, vaa, saa = d[l, [2, 4, 3,5]]
        raa = vaa-saa
        geom, par_dict, brf = lut(200,bands=None,vza=vza,sza=sza,raa=raa)
        train_paramsoot, keys = unpack ( par_dict )
        emulator = MultivariateEmulator( X=brf, y=train_paramsoot )
        emulator.dump_emulator( "emulator_%08.4Gx%08.4Gx%08.4G.npz" % ( vza, sza, raa ) )
        sel_row = params[:,0] == this_doy
        xlai, xkab,psoil = params[sel_row, [3,4, 11]]
        lai = -2*np.log(xlai)
        kab = -100.*np.log(xkab)
        true_params = 1*complete_params
        true_params[1] = kab
        true_params[6] = lai
        true_params[10] = psoil
        true_params[12] = vza
        true_params[13] = sza
        true_params[14] = raa
        rho = run_prosail ( *true_params)
        rho_n = np.random.randn( 2101 )*bu
        obs_rho = rho.dot(bandpass.T)/(bandpass.sum(axis=1))
        #print this_doy, vza, sza, raa, str(obs_rho).replace("[","").replace("]","")
        fp.write ("%d %f %f %f %s\n" % ( this_doy, vza, sza, raa, \
            str(obs_rho).replace("[","").replace("]","") ))
    fp.close()


Already done, feel free to re-run to get different experiments etc.
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
	Fitting GP for basis function 8
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
	Fitting GP for basis function 8
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
	Fitting GP for basis function 8
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
GaussianProcess.py:41: RuntimeWarning: overflow encountered in exp
  exp_theta = np.exp ( self.theta )
GaussianProcess.py:47: RuntimeWarning: invalid value encountered in multiply
  np.tile( self.inputs[:, d], (self.n, 1)).T))**2
GaussianProcess.py:50: RuntimeWarning: invalid value encountered in multiply
  exp_theta[self.D+1]*np.eye ( self.n )
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
	Fitting GP for basis function 8
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6
	Fitting GP for basis function 7
Decomposing the input dataset into basis functions... Done!
 ====> Using 7 basis functions
	Fitting GP for basis function 0
	Fitting GP for basis function 1
	Fitting GP for basis function 2
	Fitting GP for basis function 3
	Fitting GP for basis function 4
	Fitting GP for basis function 5
	Fitting GP for basis function 6

In [5]:
mv_em = MultivariateEmulator(dump="emulator_0001.987x00026.72x000213.9.npz")


Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions

In [6]:
import sys
sys.path.append("..")
from eoldas_ng.operators import *
# Define the problem.
# 0. Default parameters
default_names = [ 'n', 'xcab', 'xcar', 'cbrown', 'xcw', 'xcm', 'xlai', 'lidfa','lidfb','rsoil', 'psoil', 'hspot','xala' ]
defaults = [ 1.5, np.exp(-40./100.), 0, 0, np.exp(-0.03*50.), np.exp(-50./66.), 2.,  45., 0, 1., 1.5, 0.01, 45. ]
# 1. Parameter names & ordering. Same as the ordering provided by pack/unpack funcs in lut_tools
parameter_names = [ 'bsoil', 'cbrown', 'hspot', 'n', 'psoil', 'xala', 'xcab', \
        'xcar', 'xcm', 'xcw', 'xlai' ]
# 2. Define what's to be done with each parameter
states = [ FIXED, CONSTANT, FIXED, FIXED, VARIABLE, FIXED, VARIABLE, FIXED, FIXED, CONSTANT, VARIABLE ]
# 3. Define the state configuration and maybe splice some default values?
state_config = OrderedDict()
default_values = OrderedDict()
for i,k in enumerate ( parameter_names ):
    state_config[k] = states[i]
    default_values[k] = defaults[i]

    

state_grid = np.arange(1, 366)
the_model = TemporalSmoother ( state_grid, gamma=5e3 )

In [14]:
# Define the prior
mu_prior = OrderedDict()
inv_cov_prior = OrderedDict()
for i,k in enumerate ( parameter_names ):
    mu_prior[k] = np.atleast_2d(np.array(defaults[i]))
    inv_cov_prior[k] = np.atleast_2d(np.array(1.)) # Variance of unity
the_prior = Prior ( mu_prior, inv_cov_prior ) # Uninformative prior

In [8]:
lambda_max = 2501
lambda_min = 400
b0, b1 = 0.008, 0.02 
bux = np.zeros ( ( 2101 ) )
bux = b0 + ((b1-b0)/(lambda_max-lambda_min)) * \
               (np.arange(400, 2501) - lambda_min)
sentinel_bands_min = np.array([433, 457.5, 542.5, 650, 697.5, 732.5, 773, 784.5, 855, 935, 1565, 2100])
sentinel_bands_max = np.array([453, 522.5, 577.5, 680, 712.5, 747.5, 793, 899.5, 875, 955, 1655,2280] )
wv = np.arange(400, 2501)
bandpass = np.zeros((sentinel_bands_min.shape[0], 2101), dtype=np.bool)
bu = np.zeros ( sentinel_bands_min.shape[0] )
for i in xrange ( sentinel_bands_min.shape[0] ):
    bandpass[i, :] = np.logical_and ( wv >= sentinel_bands_min[i], wv <= sentinel_bands_max[i] )
    bu[i] = bux[bandpass[i, :]].mean()
import glob
files = glob.glob ("*.npz")
emulators = {}
for f in files:
    emulators[f] = MultivariateEmulator( dump = f )
observations = np.loadtxt( "brf_obs_clean.txt" )
the_observations =  ObservationOperatorGP ( state_grid, observations, emulators, default_values, bu, bandpass )


Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 9 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions
Decomposing the input dataset into basis functions... Done!
 ====> Using 8 basis functions

In [15]:
the_state = State ( state_config, state_grid, default_values )
the_state.add_operator ( 'Prior', the_prior )
the_state.add_operator ( 'Regularisation', the_model )
the_state.add_operator ( 'Observation', the_observations )

In [16]:
# Random initial guesses...
x0 = {}
for param, typo in state_config.iteritems():
    if typo == CONSTANT:
        x0[param] = np.random.rand()
    elif typo == VARIABLE:
        x0[param] = np.random.rand( state_grid.size )
the_state.optimize ( x0 )


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-bd8f5882420b> in <module>()
      6     elif typo == VARIABLE:
      7         x0[param] = np.random.rand( state_grid.size )
----> 8 the_state.optimize ( x0 )

/data/raid5/raidflex1/ucfajlg/python/eoldas_ng/eoldas_ng/operators.py in optimize(self, x0)
    109             x0 = self.pack_from_dict ( x0 )
    110 
--> 111         retval = scipy.optimize.fmin_l_bfgs_b( self.cost, x0, disp=1 )
    112         return retval
    113 

/opt/epd-7.1-2-rh5-x86_64/lib/python2.7/site-packages/scipy/optimize/lbfgsb.py in fmin_l_bfgs_b(func, x0, fprime, args, approx_grad, bounds, m, factr, pgtol, epsilon, iprint, maxfun, disp)
    194             n_function_evals += 1
    195             # Overwrite f and g:
--> 196             f, g = func_and_grad(x)
    197         elif task_str.startswith(asbytes('NEW_X')):
    198             # new iteration

/opt/epd-7.1-2-rh5-x86_64/lib/python2.7/site-packages/scipy/optimize/lbfgsb.py in func_and_grad(x)
    145     elif fprime is None:
    146         def func_and_grad(x):
--> 147             f, g = func(x, *args)
    148             return f, g
    149     else:

/data/raid5/raidflex1/ucfajlg/python/eoldas_ng/eoldas_ng/operators.py in cost(self, x)
    118          aggr_der_cost = x*0.0
    119          for op_name, the_op in self.operators.iteritems():
--> 120              cost, der_cost = the_op.der_cost ( x_dict, self.state_config )
    121              aggr_cost = aggr_cost + cost
    122              aggr_der_cost = aggr_der_cost + der_cost

/data/raid5/raidflex1/ucfajlg/python/eoldas_ng/eoldas_ng/operators.py in der_cost(self, x_dict, state_config)
    174                     sigma = self.inv_cov[param]
    175                     self.inv_cov[param] = np.diag( np.ones(n_elems)*sigma )
--> 176                 cost_m = ( x_dict[param] - self.mu[param]).dot ( self.inv_cov[param] )
    177                 cost = cost + 0.5*(cost_m*(x_dict[param] - self.mu[param])).sum()
    178                 der_cost[i:(i+n_elems)] = cost_m

ValueError: matrices are not aligned

In [ ]:
%

In [ ]: