dtcenter / MET

Model Evaluation Tools
https://dtcenter.org/community-code/model-evaluation-tools-met
Apache License 2.0
78 stars 24 forks source link

Allow observation anomaly replacement in Anomaly Correlation Coefficient (ACC) calculation #2308

Open j-opatz opened 1 year ago

j-opatz commented 1 year ago

Describe the New Feature

In discussions with Gwen Chen from EMC, there seems to be an opportunity for expansion with MET's calculation of Anomaly Correlation Coefficient (ACC).

As it currently stands, ACC is calculated with the following equation: Screen Shot 2022-10-19 at 12 46 45 PM Where f denotes the forecast, o for observation, and c for climatology. The (o - c) term is more simply the observation anomaly; likewise, the (f - c) term is the forecast anomaly.

During Sea Surface Height (SSH) verification within MET, Gwen noticed that the MET values for ACC were not matching the legacy system outputs (mismatch at approx. the tenths value). The legacy system is part of Todd Spindler's website, given here: https://polar.ncep.noaa.gov/global/class-1/ (view the SSH tab). This was due to the MET calculation method and the datasets available: using the AVISO as the verification dataset, the Absolute Dynamic Topography (ADT) and Sea Level Anomaly (SLA) are the only variables available. ADT is instantaneous and cannot be used to verify SSH, and SLA is, as its name implies, an anomaly. In MET, the equation provided above does not allow any substitutions for the anomalies it calculates, instead using forecast-observation pairs and climatology.

Ideally, there would be a way for users to provide anomaly datasets (forecast or observation) and have those be substituted in the appropriate areas for statistics. Given the large coding overhaul that would require, it might be more prudent to create a new CNT column that calculates this alternative method of ACC.

The biggest hurdle to this is implementation. Even by restricting this to the tool currently being used for analysis (Grid-Stat), it would require another file input, regridding, and possibly more configuration options available to the forecast and observation fields.

Acceptance Testing

Gwen provided datasets for testing the functionality. Forecasts come from RTOFS, Observations come from AVISO, and climatology is provided from HYCOM_NCEP. These are housed on Seneca, under /d1/personal/jopatz/workbench/ACC_work

Time Estimate

Estimate the amount of work required here. Issues should represent approximately 1 to 3 days of work.

Sub-Issues

Consider breaking the new feature down into sub-issues.

Relevant Deadlines

This would ideally be completed before the EVS deadline of Dec. 1st, but with the current workload on MET and necessary lead time to get new features tested and loaded over to NOAA machines, that may not be an option.

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

Labels

Projects and Milestone

Define Related Issue(s)

Consider the impact to the other METplus components.

New Feature Checklist

See the METplus Workflow for details.

j-opatz commented 1 year ago

This issue was discussed in the 10/20/22 MET engineer meeting. The consensus is that given the backlog of work that needs to be completed before the MET v11.0.0 release, in addition to funding available and deadline for the EVS, this work will not meet the December 1st deadline nor the v11.0.0 release, and will need to be added to work for the next upcoming release. Milestone was adjusted accordingly.

John HG questioned if this work belongs in MET coding, or if it is best solved by Python embedding. If this is a common issue (i.e. verification datasets are often already in anomaly form), then it should be solved with MET coding. Perhaps a flag that allows the observation data to be treated as an anomaly in calculations? This could cause other difficulties, and open more doors (what about a forecast anomaly flag, how do you preserve the other 99+ statistics that are not using an anomaly, etc) than wanted. If this is not a common issue, then Python embedding can be made to calculate this in the manner desired. However, it would need to be a METCalcPy/User Script application, which would require more tools to be run for the other statistics.

The answer to that question will be determined by discussions with EMC, which will be started by email and pursued in more detail ~mid-December.

JohnHalleyGotway commented 1 year ago

On 4/3/23, Gwen notes that we'll likely need support for configuring with Forecast Climatology AND Observation Climatology, rather than just a single climatology field. We could consider making the specification of a forecast climatology mean field as being optional. If provided, use it. If not, use the observation climatology instead?

GwenChen-NOAA commented 1 year ago

Broader features to be considered for future development:

  1. Capability to read in separate climatology mean fields for forecast and observation (i.e., clim_fcst and clim_obs). Forecast climatology (or model climatology) is a function of init/valid date and forecast lead time at a given location/grid point (x, y).

  2. Capability to calculate forecast and observation anomalies using separate climatology mean fields, that is, anom_fcst = fcst - clim_fcst and anom_obs = obs - clim_obs and use them for Anomaly Correlation Coefficient (ACC) calculation.

  3. Capability to read in observation anomalies (anom_obs) from a dataset, such as Sea Level Anomaly (SLA) from the AVISO dataset, and use it for ACC calculation.

  4. Capability to read in forecast anomalies (anom_fcst) from a dataset and use it for ACC calculation.

  5. Options to ask MET to calculate forecast/observation anomaly using climatology mean field, or to directly use forecast/observation anomaly from an input dataset.

JohnHalleyGotway commented 10 months ago

Discussed at NOAA METplus User telecon on 11/13/23. Recommend putting this issue on hold until EMC provides more direction.

AliciaBentley-NOAA commented 4 months ago

@JohnHalleyGotway @j-opatz Following up with EMC developers to see if this is critical for the MET-12.0.0 release or if we can work around it.

AliciaBentley-NOAA commented 4 months ago

@JohnHalleyGotway @j-opatz @TaraJensen Samira Ardani (the RTOFS developer who replaced Gwen) feels that this update is required for RTOFS verification in EVS v2.0 and needs to be included in MET-12.0.0. I would still put this issue lower than adding wind direction verification, reading in tripolar grids, and reading in unstructured grids. Thank you!