Skip to content

state_mapper/gp.hessian needed by Hessian correction #15

@NPounder

Description

@NPounder

Broadband SAIL uses a subset of the state vector parameters for each band. This is handled in create_nonlinear_observation_operator using a hard coded state_mapper, which is fine.
Narrow band SAIL uses all of the parameters for every band so it has its own create_{}_observation_operator that doesn't need a state_mapper.

The complication is that the Hessian correction currently also needs to know about the state_mapper. Currently this is hard coded into the hessian correction but that doesn't work for narrow band sail of course and we have a single Hessian correction for all FM.

In actual fact all Hessian correction needs is the hessian calculation from the gp emulaor, so my proposed solution is:

create_x_prosail_observation_operator takes an optional argument to calculate the Hessian that defaults to false. When True the operator returns the gp.Hessian in addition to H0 and dH0. Within linear_kf, create_{}observation_operator is called without calculating the Hessian while iterating to convergence and then is called once after convergence and calculates the Hessian to pass to the Hessian correction. I think this creates the least overhead on people making observation_operators, preserves backwards compatibility and keeps knowledge of the FM and observations out of the correction and within the create{}_observation operator where is should be.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions