Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide functionality for parameter filtering #321

Closed
jorgenherje opened this issue Sep 20, 2023 · 5 comments · Fixed by #741
Closed

Provide functionality for parameter filtering #321

jorgenherje opened this issue Sep 20, 2023 · 5 comments · Fixed by #741
Assignees
Labels
enhancement New feature or request

Comments

@jorgenherje
Copy link
Collaborator

jorgenherje commented Sep 20, 2023

When using ensemble parameters or a union of parameters across ensembles, the list can become large. Consider creating component/class/hook/utility functionality to be able to set some filtering criteria and provide a list of parameters fulfilling the filter selection for usage.

E.g. component to set based on wanted EnsembleParameter settings/attributes - see: https://github.com/equinor/webviz/blob/main/frontend/src/framework/EnsembleParameters.ts

Types:

  • Filter of Parameter to create shorter list of parameter names to select
  • Filter of Parameter to create a subset of realizations to look at

Mentions:

  • Hans' comment

    • The parameter list will be overwhelming if you don't know what to look for. Not directly related to this PR but we need both filtering of parameters(e.g. based on group) and sorting of parameters on how "important" they are. We can do this by calculating the correlation of the parameter values to the timeseries at a given date. I think we could automate this by selecting the last date (automatically) and perform the correlation. There exists an early attempt of an endpoint on the api to do this correlation: https://github.com/equinor/webviz/blob/main/backend/src/backend/primary/routers/correlations/router.py
  • My comment:

    • Three types of parameter filtering?:
      • Filtering based on criteria/attributes of Parameter type to provide a shorter list of parameter names in e.g. a dropdown.
      • Filtering based on values of a Parameter, i.e. functionality as mentioned above here - providing a shorter list.
      • Filtering based on criteria which results in a subset of wanted realization numbers?
@HansKallekleiv
Copy link
Collaborator

Sounds like a good list.
Some comments on the last two:

* Filtering based on values of a `Parameter`, i.e. functionality as mentioned above here - providing a shorter list.

This is more a ranking/soring of the parameters based on how "important" or correlated they are.
It can also be used as filtering by removing parameters with little correlation.
This can also be visualized as done in the existing ParameterAnalysis plugin in webviz-subsurface.

image

* Filtering based on criteria which results in a subset of wanted realization numbers?

Yes. Filterting based on parameter values => Subset of realizations => Updated correlations
A relevant filter component is in the existing ParameterAnalysis plugin.
image

@anders-kiaer
Copy link
Collaborator

anders-kiaer commented Sep 25, 2023

Agree with most/all of the thinking here. Just to be sure we agree - we here talk about (to a large degree) two independent components.

  • One for easy selecting an individual parameter for use in a module (which I think should be the scope of the issue here).
    • Filter based on parameter distribution type.
    • Filter/sort based on parameter group.
    • Sort based on "importance" (definition of "importance" defined by module).
    • Sort based on entropy change (need to compare with "base ensemble").
  • One for filtering an ensemble based on parameter values. I might be that such a component want to use the first one.

Discussion points:

  • What happens when a module have several ensembles and non-equal set of parameters? Intersection or union? Other?
  • I think what we talk about here could be an example of a "scalar selector" (other examples: volumetric responses). Define it as such at some point? Could make the "Volumetric plugin" issue easier to solve.

@jorgenherje
Copy link
Collaborator Author

Yes, I guess two components:

  • One to provide a subset/collection of parameters/names to propagate - e.g. for options in a dropdown.
  • One to provide a subset/selection of realization numbers to use

The first one might also provide sorting of the names for further usage

@jorgenherje jorgenherje self-assigned this Oct 2, 2023
@github-project-automation github-project-automation bot moved this to Backlog 📝 in Webviz Oct 2, 2023
@jorgenherje jorgenherje moved this from Backlog 📝 to In Progress 🚧 in Webviz Oct 2, 2023
@jorgenherje jorgenherje removed this from Webviz Oct 5, 2023
@jorgenherje jorgenherje changed the title Provide functionality/component for EnsembleParameters filtering Provide functionality for parameter filtering Oct 5, 2023
@jorgenherje
Copy link
Collaborator Author

First step is resolved by: #405

@jorgenherje
Copy link
Collaborator Author

Second step is resolved by: #741

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants