This version of eoldas_ng works, so only minor corrections from now on...
The new operator for timeseries and GPs can deal with several observations in the same day. It does this by re-interpreting `self.mask` as having in the first column the DoY and in the second the actual QA flag. We also deal with the fact that the state could be a period, and use `istart_doy` as a way of tracking the entire period. We can then process each observation individually and add the cost/der_cost values.
Realised that we should be starting `istart_doy` from the first element of the state, and then keep looping over the array minus that first element. Reasonably elegant, could be far cleaner.
Make sure we select the right GP. This will need to change when I finally get a reasonably stable way to use the shelf storage mechanism, but will work for now
used the self.mask invocation, and also fixed the initial test of array sizes for the observations and mask
Added the definition of nt, made sure the partial derivatives were updated per observation, and sorted out the dictionary key calculations for emulator retrieval
Changes also need to be applied to the Hessian calculations to deal with both #1 and #2
Shape of the metadata/mask array is transposed to what I have. Seems to work OK, but I am unsure about the uncertainties, as they seem to me to be quite small. Could there be something in the Hessian calculation that I have screwed up...
Added a number of tries with different values of epsilon, the finite difference constant, in case the system goes singular. This appears to work, but the uncertainties are very small, and this is worrying