DART icon indicating copy to clipboard operation
DART copied to clipboard

Feature request: Automate the initial creation of new observation converters

Open hkershaw-brown opened this issue 8 months ago • 0 comments

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.

hkershaw-brown avatar May 29 '24 19:05 hkershaw-brown