fixed a bug due to using the same variable name twice... groan...
OK, so just use all the samples for the first guess. Go on...
Use more eigenvectors in the approximation the Hessian, as any trivial problem jumps up to 10E7 state space
Added a pack_from_dict method to the prior to use with the sparse prior representation
The prior cost can be calculated using sparse matrices, which should be way faster for images
Size of the problem was wrong for sparse version. This ought to work and unwrap the passed state dictionary well
Added a factor kw to the ImageGP to deal with different spatial resolutions
typo, state size comes from grid, not from state
Needed to interpolate the mask to easily account for data gaps in the derivative calculation, which is performed on the state grid, not on the observation grid
The masking needs to be done in state space, using the state space interpolated version of the missing data mask
Some important changes to the multiresolution stuff. In general, the interpolations now work as expected, but also the error function calculation has been re-written as I had kept the power of 2 in the derivatives, leading to grief in the optimisation
Aaaarghhh... hadn't updated the error function definition... now done
So forgot the band uncertainty in the derivative calculations
Added a method to forward model the observations in imagegp  based on a parameter dictionary. The idea is that the entire image is forward modelled, including masked out pixels. The idea is that you flip a few observations, solve the problem, and use this method to assess how well the DA system worked, typically for assessing the value of the regularisation constant in a cross-validation.
Two changes: (i) We now calculate 25 and 50% quantiles. Just because Tristan puts them on plots and I'm envious and (ii) we store the parameter dictionary in state, so that we can then access it easily after the optimisation is done.