-
Notifications
You must be signed in to change notification settings - Fork 3
feat: add list of corrections to apply #191
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
Conversation
Can you clarify? I thought all that is required is to modify |
|
|
src/ess/reflectometry/types.py
Outdated
| QThetaFigure = NewType("QThetaFigure", Any) | ||
| ReflectivityDiagnosticsView = NewType("ReflectivityDiagnosticsView", Any) | ||
|
|
||
| CorrectionsToApply = NewType("CorrectionsToApply", set[str]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make any difference if the user wants to apply corrections in a specific order, or multiple times the same one? This should be a sequence/list?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case all "corrections" (an extremely overloaded term unfortunately!) are "multiplicative", so the order does not matter.
I don't think applying the same correction multiple times is something we need to support.
Oh, what you are saying is that correction-computation is not part of the graph, right. Can you clarify why are you making this "quick" fix now instead of doing it properly? Is it needed for something right now? |
Because I'm not sure what you mean by "doing it properly". I don't find it as clear cut as you seem to do. Like I said in the chat, it's probably best to talk in person. If we make the footprint correction a separate domain type then we need to be able to access coordinates (specifically Since there seems to be some disagreement on the right approach I went for what seems to me the solution that requires the least changes to the workflow, to avoid making a big refactor and then reverting to something different later. |
|
I've been thinking about this a bit more, and I think the argument about separating Because, the Estia detector is relatively small, right now it's 90K pixels, eventually it will be 180K pixels. An operations like The other argument for extracting the purely pixel dependent coordinates into separate domain types is that it would allow users to compute those quantities without computing the events, which might not be possible in some debugging scenarios. # Here's how I imagine it should be done.
res = workflow.compute((CoordinateTransformationGraph, EmptyDetector))
res[EmptyDetector].transform_coords(['theta', 'dirvergence_angle'], graph=res[CoordinateTransformationGraph])so I don't think making this simpler is worth it. Extracting the purely pixel dependent coordinates So I'm suggesting that we go with the currently implemented approach for the time being. |
Lets the user set what corrections should be applied.
It's not the mechanism we talked about in standup, because that would require some pretty big changes to the workflow, and I don't want to do that before we've thought it through a bit more.
This mechanism can easily be replaced once we have.