Closed dwfncar closed 6 years ago
Major work done for this and distributed for testing in met-7.1_beta3. Still do need to write unit tests and also update contents of the obs_error_table.txt file. by johnhg
Added unit test for observation error and added default obs error table file from Jeff Beck. by johnhg
Removed the catch-all line from the obs_error table file.
Added a new line to capture precip from 0 to 0.1... and apply no perturbation.
Modified the unit test for this by only applying error perturbation to precip, not temperature vs the model analysis.
by johnhg
This work is funded by the DTC ensembles project. The task it to work with Jeff Beck to implement support in MET for the methodology for handling observation error applied by the Meteo France verification package.
Tressa, John, and Jeff met on 2/1/18 and here's what they discussed:
Need to specify obs error separately for each observing platform and separately by height (pressure levels). That is difficult since PB2NC reads the message type, report type, and instrument type but currently only writes out the message type. Need to consider eventually enhancing PB2NC (and ascii2nc) to pass through the report type and instrument type.
Example RH from a sounding.
Specify error in the units of the observation or as a percentage of the obs.
Each matched pair is now a forecast value, observation value, and an estimate of the uncertainty.
May differ score by score...
As a first pass in development, consider adding support for a new "obs_error" config file entry. This is useful for testing but eventually we'd want to move this info to a static table:
fcst = {
field = [
{
name = "TMP";
level="P500";
message_type = ["ADPUPA"];
instrument_type = [?];
report_type = [?];
obs_error = {
dist_type = ...; // normal, chi-squared, gamma (whatever Tressa says!)
dist_param = [ 2 ]; // parameters to define this distribution (up to 2 or 3?)
use_table = TRUE;
n_draws = 1;
}
}
];
For each observation point, use the parameters to define a distribution centered on the observation value. In MET, do a random draw (v) from that distribution. Now what do we do with that value?
Either replace the observation with the randomly drawn value. Or apply the perturbation to update the forecast value: fcst += (obs - v)
Is doing this once sufficient or would we like to easily do many of them? We could add n_draws (default = 1) to specify the number of draws for each observation. This would inflate the number of matched pairs from n to n*n_draws. And these certainly wouldn't be IID. Ask Tressa if this is worth doing.
Ultimately, we'd want to specify this info in a static table whose columns would look something like this:
Parameter 1, Parameter 2, ...
There still are several open questions about the Meteo France algorithm.
We need to schedule another meeting to look more closely at the Meteo France code. [MET-941] created by johnhg