Allow fill to operate on multiple fields and multidimensional data
- Dominant language
- Python
- Stars
- 7
- Forks
- 10
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 5
Description
#✨ Feature Request
Currently `make_consistent_with_lsm` (and hence the `ancil_general_regrid` command line application when used with `--target-lsm`) is constrained to operate on single field, single dimensional data.
We should extend this to allow multiple fields and multidimensional data to be filled.
## Requirements
Given a CubeList containing missing data, each cube in the CubeList should be filled, returning a copy of the CubeList with missing data filled.
Given a Cube with one or more non-horizontal dimensions (e.g. vertical levels, pseudo levels, time), missing data should be filled on each level, returning a copy of the Cube with missing data filled.
## Context
Example uses include the LCT and Soils ancillary science applications, where data may be missing across multiple pseudo levels. In these cases, it can be assumed that the same points are missing across all levels, but this may not be the case in general.
Some validation should be done up front to determine whether the same filler object can be used for all fields/layers (i.e. if the same points require filling). If multiple fillers are needed, we should raise a warning. Perhaps there should be a "strict" mode that raises an error if the missing data is not consistent across all fields/layers?
Contributor guide
Research direction
Start with make_consistent_with_lsm and trace how the ancil_general_regrid command uses it with --target-lsm. Examine how CubeList and Cube inputs currently handle single fields and dimensions, then define validation for shared missing points and the warning or strict-error behavior. Done means copies of all fields and non-horizontal layers are filled, with inconsistent fillers handled as specified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100