算子结构 =========== 每种观测算子的基本结构如下: .. code-block:: da_.f90 da_get_innov_vector_.inc da_jo_and_grady_.inc da_calculate_grady_.inc da_oi_stats_.inc da_ao_stats_.inc da_print_stats_.inc da_residual_.inc da_check_max_iv_.inc da_transform_xtoy_.inc da_transform_xtoy__adj.inc - `da_.f90` 定义 `module da_` , 包含该目录下所有的 `inc` 文件 - `da_get_innov_vector_.inc` 1. 计算 `innovation` (更新向量): .. math:: iv = y - H(x_b) #. 极值检测 - `da_residual_.inc` 计算 `residual` (残差): .. math:: re = iv - \mathrm{H}(\delta x) = y - H(x_b) - \mathrm{H}(\delta x) - `da_jo_and_grady_.inc` 计算代价函数观测项( `jo` )及其梯度: .. math:: jo\_grad\_y = - re / \mathrm{R} = - [y - H(x_b) - \mathrm{H}(\delta x)] / \mathrm{R} .. math:: jo = 0.5 * [y - H(x_b) - \mathrm{H}(\delta x)]^2 / \mathrm{R} - `da_calculate_grady_.inc` 计算考虑质控的代价函数观测项( `jo` )梯度,: .. math:: jo\_grad\_y = - re / \mathrm{R} = - [y - H(x_b) - \mathrm{H}(\delta x)] / \mathrm{R} - `da_oi_stats_.inc` 计算和打印 `innovation` ( `O - B`) 的统计信息 - `da_ao_stats_.inc` 计算和打印 `O - A` 的统计信息 - `da_print_stats_.inc` 打印统计信息 - `da_check_max_iv_.inc` 对 `innovation` 进行质控极值检查 - `da_transform_xtoy_.inc` 计算: .. math:: \delta y = \mathrm{H}(\delta x) - `da_transform_xtoy__adj.inc` 计算: .. math:: \delta x = \mathrm{H}^T(\delta y)