Skip to content

Feature/geometry overlay#79

Draft
jwasikpsnc wants to merge 5 commits into
iterorganization:developfrom
jwasikpsnc:feature/geometry_overlay
Draft

Feature/geometry overlay#79
jwasikpsnc wants to merge 5 commits into
iterorganization:developfrom
jwasikpsnc:feature/geometry_overlay

Conversation

@jwasikpsnc
Copy link
Copy Markdown
Collaborator

  • New endpoint /ids_info/geometry_overlay_nodes
    • returns geometry overlay nodes from IDS (pointed by uri)
    • allows to show/hide structures
    • allows to show/hide empty nodes (IMAS-Core >= 5.7 & IMAS-Python >= 2.2.2)
    • allows to show/hide error bars

@jwasikpsnc
Copy link
Copy Markdown
Collaborator Author

FYI @mfiaudrin-epsyl

@mfiaudrin-epsyl
Copy link
Copy Markdown
Collaborator

mfiaudrin-epsyl commented Jun 2, 2026

Hi @jwasikpsnc,

Thank you for the feature. I think the geometries returned are insufficient. @olivhoenen Can you please ensure if I undestand well the geometries I have to overlay ?

I explain my point of view. Currently, the endpoint return all geometry nodes included somewhere in the given uri.
However, I don't think it's the exepected behavior checking with this example given by @olivhoenen :
image

As you can see, in this example the uri is : imas:hdf5?path=/home/ITER/hoeneno/public/expdata/HL3/20250515#equilibrium:0/time_slice[:]/profiles_2d[:]/psi
Since the data displayed is in equilibrium, we don't receive geometries from pf_active and wall :
image

In the feature I am implementing, I want to display #equilibrium:0/time_slice[:]/profiles_2d[:]/psi and to overlay geometries from pf_active and wall (maybe I have more geometries to overlay but I think I should at least overlay the mentionned ones).

Currently in my feature, the paths I overlay with psi are :

  • '#wall:0/description_2d[:]/limiter/unit[:]/outline',
  • '#pf_active/coil[:]/element[:]/geometry/rectangle',
  • '#pf_active/coil[:]/element[:]/geometry/oblique',

There are the overlayed geometries :
image

If I am not wrong, we should get all geometries having data from this uri: imas:hdf5?path=/home/ITER/hoeneno/public/expdata/HL3/20250515 but it doesn't return anything:
image

@olivhoenen Can you please confirm what geometries we need to overlay in in this example ?

FYI @imbeauf

@jwasikpsnc
Copy link
Copy Markdown
Collaborator Author

@mfiaudrin-epsyl
Current behavior returns geometries from IDS pointed by URI.
Do you want to get all geometry nodes from whole pulsefile and all IDSes, or you need some more logic to return only geometries plottable on the same plot with for instance psi?
I am not sure how we can extract this information from DD.

@mfiaudrin-epsyl
Copy link
Copy Markdown
Collaborator

@mfiaudrin-epsyl Current behavior returns geometries from IDS pointed by URI. Do you want to get all geometry nodes from whole pulsefile and all IDSes, or you need some more logic to return only geometries plottable on the same plot with for instance psi? I am not sure how we can extract this information from DD.

@jwasikpsnc I would like that the BE returns me all plottable geometries compatible with the displayed plot. To do that I think we need to get them from whole pulsefile but we certainly need to add more logic to the rule.

I don't know what is the rule so it will simplify the FE to ask to the BE what geometries I should overlay. Maybe we need @olivhoenen and @imbeauf to clarify this need.

@jwasikpsnc jwasikpsnc marked this pull request as draft June 3, 2026 06:12
@maarten-ic
Copy link
Copy Markdown

There is a lot of geometric data that can be stored in IMAS: shouldn't the user select which geometries they want to overlay, instead of IBEX plotting everything that's stored in the dataset? Maybe that could work in a similar way as that users now select which quantities they want to plot?

Sometimes you may want to plot geometry data from a machine description URI and overlay with data from another URI: will that be possible?

@imbeauf
Copy link
Copy Markdown

imbeauf commented Jun 3, 2026

If I understood correctly, the idea of Olivier is:

  1. The BE sends to the FE all the non-empty geometries (defined as per the generic types that we chose) of the selected data entry (i.e. all IDSs)
  2. The paths of the non-empty geometries form a menu on the FE
  3. The user selects from the menu which data he wants to overlay

@imbeauf
Copy link
Copy Markdown

imbeauf commented Jun 3, 2026

Sometimes you may want to plot geometry data from a machine description URI and overlay with data from another URI: will that be possible?

I agree that this would be useful, but this may double the size of the menu for selecting which URIs to plot ... not sure that this will be very practical if we keep this menu concept.

@mfiaudrin-epsyl
Copy link
Copy Markdown
Collaborator

The fact that we want to display geometries from another URI should be possible.

Maybe we could allow the user to select the geometries he want to display in the visual customization component ?
In that case, I could add an accordion to select geometries and I could provide a parameter to choose the URI used for the geometry.

If needed, I can allow the user to add geometries from several URIs at the same time. Do you think it will be usefull or we just want to display geometries from one URI ?

@imbeauf
Copy link
Copy Markdown

imbeauf commented Jun 3, 2026

Displaying geometries from different URIs will certainly be useful, if you find a way to present this nicely on the FE !

@mfiaudrin-epsyl
Copy link
Copy Markdown
Collaborator

@jwasikpsnc, having this conversation helps me to clarify the wanted response from BE.

I would like to always get the structures and their parameters. So I don't need the parameter show_structures, it could be always set to true.

I will use this object to easily use the data returned by your endpoint:

[
    {
        geometryNode: 'imas:hdf5?path=/home/ITER/hoeneno/public/expdata/HL3/20250515#pf_active:0/coil[:]/element[:]/geometry/rectangle/',
        parameters: ['r', 'z', 'width', 'height'],
    },
    ...
]

Is it possible for you to return the data in an object like this one ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants