Skip to content

Inconsistent output_tensor dimensions in EnsemblePlotMixin #808

@dietervdb-meteo

Description

@dietervdb-meteo

What happened?

The process function takes the members argument, which can be an integer, a list or None.

Although not strictly speaking a bug (tests using this function seem to pass without problem) the behaviour of the function is somewhat unexpected/incosistent. In particular, when members = None , torch slicing adds an extra (needless) dimension at the position of what previously was the ensemble dimension, making it harder to track what dimension corresponds to what data. Similarly, if members = 4 we will loose the ensemble dimension, while if members = [1,2] it remains.

I would suggest a rewriting of the code that keeps the dimension of output_tensor fixed in all cases, something along the lines of

if members is None:
  members = slice(members)
elif not isinstance(members, list):
  members = [members] 

What are the steps to reproduce the bug?

Have a look at the code or use the PlotEnsSample callback.

Version

current main

Platform (OS and architecture)

irrelevant

Relevant log output

Accompanying data

No response

Organisation

RMI

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    To be triaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions