NCAR / NCAR/DART

Feature request: Automate the initial creation of new observation converters

Open
#684 0 comments 0 reactions 1 assignee View on GitHub

@c-merchant is already working on this.

Since May 29, 2024.

Dominant language
Fortran
Stars
263
Forks
182
Avg merge
11d 12h
Merged PRs (30d)
7

Description

Use case

A user wants to add a new observation converter, where do they start from?

Is your feature request related to a problem?

When a user wants to add a new observation converter (obs_converters) to DART they typically copy an existing obs_converter directory. This has a few unwanted side effects:

  • Copied code from an existing observation converter is not necessary relevant to the new observation converter (code is messier than it needs to be)
  • Users are not necessarily getting the latest code/best practices (creates more work for DART developers during pull requests)
  • Copied documentation can be misleading (it looks up to date, but it is for another observation converter)
Describe your preferred solution

Create a script that automatically sets up an observation converter for users to start developing and writing their documentation. I believe with good template files for X_to_obs.f90 we can have a observation converter that compiles from the get-go ( note: this may not be true).

We have a new_model automation, implemented by Benjamin Gunn #376 #349. This is a good reference.

e.g. for a new converter for the PACE satellite
which uses the threed_sphere location mod and the PACE data is in netcdf:

./new_converter PACE threed_sphere netcdf

Would give you the starting point:

DART/observations/obs_converters/PACE/
                                     pace_to_obs.f90
                                     pace_to_obs.rst
                                     work/
                                          quickdbuild.sh
                                          input.nml
Describe any alternatives you have considered

I think we just need code that writes code.
There is probably a lot of boiler plate code (e.g. read lat, lon, variable from netcdf) that could be tidied/automated or at least given sensible defaults.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.