Skip to content

Geometry overlay#74

Open
mfiaudrin-epsyl wants to merge 16 commits into
iterorganization:developfrom
mfiaudrin-epsyl:feature/geometry_overlay
Open

Geometry overlay#74
mfiaudrin-epsyl wants to merge 16 commits into
iterorganization:developfrom
mfiaudrin-epsyl:feature/geometry_overlay

Conversation

@mfiaudrin-epsyl

@mfiaudrin-epsyl mfiaudrin-epsyl commented May 28, 2026

Copy link
Copy Markdown
Collaborator

This feature aims to display geometries in overlay of other plots.

There are the changes:

  • Add contour visualization and includes UX changes to select the type of visualization
  • Overlay geometries in contour plots
  • Allow to swap x & y axis with geometries

@read-the-docs-community

read-the-docs-community Bot commented May 28, 2026

Copy link
Copy Markdown

Documentation build overview

📚 imas-ibex | 🛠️ Build #33475905 | 📁 Comparing 4a8e9a9 against latest (d786f12)

  🔍 Preview build  

133 files changed · + 83 added · ± 50 modified

+ Added

± Modified

@mfiaudrin-epsyl

Copy link
Copy Markdown
Collaborator Author

Hello @olivhoenen,

In order to finalize the geometry overlay feature, I need @jwasikpsnc works to use his new endpoint. So that I could mark the PR as ready for reviews.

Can you please merge the PR #79 if you approve it ?

@mfiaudrin-epsyl
mfiaudrin-epsyl marked this pull request as ready for review July 7, 2026 12:27
@mfiaudrin-epsyl

Copy link
Copy Markdown
Collaborator Author

Hello @olivhoenen,

I have finalized the geometry overlay feature. As agreed during our meeting on June 12, I have grouped the selection of geometries of type 'geometry/' together for ux reasons.

The PR is ready to be merged since we are currently using PSNC endpoints.

@olivhoenen

Copy link
Copy Markdown
Contributor

Currently the geometry overlay feature exposes structures that are dynamic, e.g. equilibrium/time_slice/boundary*/outline:
image

While one can argue that it may be of interest to plot the boundary/outline for this equilibrium, this is not the intended feature target and becomes misleading while the outline being overlayed is the one at the first time point while the rest of the psi data evolves in time:
image

I guess that generalizing the load of geometries to take into account time-dependent geometries will be an overkill at that stage, but would it be possible to make sure that the exposed geometries concern only static data? @imbeauf do you foresee an issue with such restriction?
(I am guessing this would be more for the backend and may not change at all the frontend, @jwasikpsnc please confirm)

@imbeauf

imbeauf commented Jul 15, 2026

Copy link
Copy Markdown

Indeed, if the dynamic quantities are not plotted at the same time, this is problematic. If they cannot be synchronized or interpolated easily, I agree with @olivhoenen that it is better to restrict the geometry display to static/constant data only.

@jwasikpsnc

Copy link
Copy Markdown
Collaborator

So, as far i understand the issue: backend should not return dynamic goemetries in the geometry_overlay endpoint.
How can i identify this type of geometries? Check for time in coordinates? Check for AoS in node path?

@olivhoenen

Copy link
Copy Markdown
Contributor

How can i identify this type of geometries? Check for time in coordinates? Check for AoS in node path?

If you check fields (e.g. outline.r and outline.z), you can use metadata.type (see https://imas-python.readthedocs.io/en/stable/generated/imas.ids_metadata.IDSMetadata.html#imas.ids_metadata.IDSMetadata.type).

There is also metadata._is_dynamic which is defined at the node/structure level (e.g. outline), but this is not directly in the API of IMAS-Python.

Maybe @maarten-ic knows a better way?

@maarten-ic

Copy link
Copy Markdown

Maybe @maarten-ic knows a better way?

I suppose the easiest is to exclude the dynamic outlines when searching for geometry nodes?

is_outline_rz = "outline" in metadata.name and node_type in {"rz1d_static", "rz1d_dynamic_aos"}

The rz1d_dynamic_aos are inside a dynamic Array of Structures. rz1d_static is an outline that doesn't change over time.

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.

5 participants