Skip to content

Latest commit

 

History

History
81 lines (58 loc) · 4.87 KB

README.md

File metadata and controls

81 lines (58 loc) · 4.87 KB

CI License © British Crown Copyright 2024 Met Office. All rights reserved.

nemo-feedback

JEDI UFO filter extension for writing NEMO ocean model NetCDF feedback file format data from the UK Met Office.

Description

nemo-feedback is a small code snippet that is compiled with UFO to add an additional filter for direct output in NEMO feedback file format. It was developed at the Met Office to interface with the JEDI framework and the orca-jedi JEDI "psuedomodel". These tools are built as a bridge between NEMO/NEMOVAR and the JEDI framework - rather than interfacing directly with NEMO or NEMOVAR, the model state is derived from input files, and the quality controlled observations are written to feedback file for ingestion by the NEMOVAR executable. It is anticipated that nemo-feedback will become obsolete, either through adoption of a standard observation file format across Met Office systems (ODB), or through further integration of Met Office Ocean workflows into the JEDI framework.

Getting Started

Dependencies

Installing

nemo-feedback meant to be built with UFO as part of mo-bundle at the Met Office - see the README in that project for details on how to build.

Otherwise, it is possible to build nemo-feedback within a custom JEDI bundle. For details about JEDI, including installation instructions see the jedi-docs. A small example of this is part of the continuous integration in this repository.

These bundles are built, made and installed via cmake, and tested with ctest. All code should be documented at the source level for processing using doxygen.

Using the interface

The jedi configuration is documented in the main jedi documentation. Settings for Met Office operational numerical weather prediction workflows are held internally by the Met Office, however there are some example configurations in the examples directory as well as the ctest tests inputs (src/tests/testinputs). The nemo-feedback filter will work both serially or when using MPI.

The parameters for nemo-feedback are documented in code in the parameters class. When the program is compiled, these are exported to a yaml schema json file, that can be used in conjunction with your editor to highlight any issues with your configuration. An example yaml configuration would look something like:

...
observations:
  ...
  - obs space:
    ...
    obs filters:
    ...
    - filter: NEMO Feedback Writer
      reference date:  # eckit::DateTime reference date for the julian day observation time in the file
      filename: # path to output file
      observation alias file:  # mapping between observation and model names inside UFO
      variables:  # List of variables to write
      - name:  # UFO observation variable name
        nemo name:  # feedback file variable name
        long name:  # long name in the netcdf file
        units: # units attribute in the netcdf file
        extra variable:  # optional, if true don't make the normal set of sub-variables (e.g for mean-dynamic-topography)
        additional variables: # "additional" variables (these are extra sub-variables of a variable)
        - name: # UFO observation variable name
          feedback suffix: # suffix for this additional variable name (i.e <nemo name>_<feedback suffix>)
          ioda group: # IODA group to extract this variable from
...

Help

See the JEDI documentation for help. Additional debugging/trace output is available when:

OOPS_DEBUG=true
OOPS_TRACE=true

Authors

The current lead maintainer is @twsearle along with a large amount of help from Met Office contributors (see the "Contributors" page on github).

Contributing

By contributing you agree to the Contributors License Agreement (CLA) contained in the root directory of the project. Please review this, and if you are able to make a contribution make an issue or pull request for your proposed change. All pull requests should conform to the working practises and be linked to an issue, unless a minor bug fix.

Working practices

Please see the JEDI working principles for current working practises. There are also templates for issues and PRs should you wish to contribute.