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

Nice work! plus a few comments #83

Closed
bwheelz36 opened this issue Jun 21, 2022 · 6 comments
Closed

Nice work! plus a few comments #83

bwheelz36 opened this issue Jun 21, 2022 · 6 comments

Comments

@bwheelz36
Copy link

Firstly, this is really nice! i have been vaguely contemplating if I should do something like this given the number of how 'how do I plot...' questions on the forums. Nice to see.
The following are some comments/questions/suggestions. Feel free to ignore any that aren't helpful!

comments

  • I would move the install instructions closer to the top of the read me, because whenever I look at software on github the first thing I want to do is make sure I can install it before I start read the detailed instructions.

questions

  • what scoring geometries does this handle? or will it handle anything? e.g. I think depending on the scoring component, the coordinates might be polar or cartesian (right?), will this handle both?
  • Is it possible to run this 'headless' (no GUI?) and if not would it be difficult to add this? In many situations it would be nice to be able to script analysis...also for debugging this would be handy.

install experience

  • In ubuntu, I had to do sudo apt install python3.9-dev before this package would install. It was some issue with a package called evdev
  • In windows worked perfectly.

use experience

  • in linux the default window is very large - I can make it larger, but I can't make it smaller. weird!
  • I tried to load some .bin files from a TsBox scorer; in windows and linux I got the error "AttributeError: 'Simulation' object has no attribute 'direction'"
  • In general it looks like there are a few if, elif statements where it would be a good idea to put a final else: raise NotImplementedError
@sebasj13
Copy link
Owner

Hi,

thank you for your comments! Let me go through them:

  • I moved the installation section to the top. Thank you for the suggestion!
  • My testing is limited to 1D simulations, meaning line profiles or depth doses. It can handle any input as long as this criteria is met (TsCylinder and TsBox are no problem, for example)
  • In the beginning I had a headless version, I quickly decided against this because I found the automatic plot generation to be lackluster. Thanks why I added all sorts of configuration options to adjust the graph. What sorts of features would you like to see from such a mode? I'm sure I could think of something.
  • All my testing has been on Windows machines, except for one installation on the WSL running Ubuntu20.04. I basically oncly checked if it would install and start, and since I don't have ready access to the different Linux distributions, I focused on the Windows version. If you have any suggestions on how to make the software function better cross-plattfrom, I'd be happy to learn!
  • I thought I tested binary simulation results, maybe I missed something. I'm looking into it!
  • Could you be more specific regarding your last statement? Were you encountering many Errors?

Once again, thank you for your input, and please keep it coming!

Best,
Sebastian

@bwheelz36
Copy link
Author

  • ah the last statement: just glancing at the code, it appeared that the error I was getting was because the data was being misclassiffied, and instead of getting caught the code just kept going - let me know what you discover with your trouble shooting, then either my guess will make sense, or it won't and you can ignore it!
  • cross platform I'd just add the additional note that sudo apt install python3.9-dev may needed (note: this is for python version 3.9, for 3.8 the command would accordingly be sudo apt install python3.8-dev. Other than this, no tips I'm afraid - the only way I know to make something robust on different platforms is test it on them repeatedly!

Headless

  • Maybe it's a different need, but for instance I wrote this class WaterTankData. It enables users to easily extract data at arbitrary coordinates from a volume of dose points using linear interpolation.
  • This was mostly written as an demo function to allow people to use TopasOpt.
  • However, (as the name implies) it will only work with TsBox at the moment.
  • A more general version of this class that could handle multiple scoring geometries could serve as the backend for this plotting GUI, plus allow for uses in TopasOpt and for instance, automated QA checking or something like that.
  • However - if this is a little 'divergent' to where you see this project going no worries!

@sebasj13
Copy link
Owner

I added the suggestion with python""-dev to the README. Thanks!

I saw your TopasOPT project on the forum - it seems really exciting, and I've been trying to find the time to test it!

If I understand correctly, the class holds the dose grid data from one (or multiple) simulations, and allows the user to select which lines or planes to extract and view, right? Essentially, this would mean moving away from purely 1D simulations, enabling the handling of 3D geometries, and selecting arbitrary lines in this geometry, correct?

@bwheelz36
Copy link
Author

correct.

Maybe my file failed to read in because it was scored in 3D geometry. I hadn't realized: to use this code I should stick to 1D data?

If that's the case it seems like something like a more general version of the WaterTankData class could indeed be useful, it would essentially serve as an interface between 3D scoring geometry and this code which wants 1D data.... right?

@sebasj13
Copy link
Owner

Yeah, thus far I only support 1D data! Let me know it it works for that.

That's an interesting proposition. That certainly seems useful, I'd have to come up with some usable visual selection method to choose which lines to extract and plot.
I can't help but be reminded about the VICTORIA tool - they found a very elegant solution. Is that maybe what you had in mind?

Adapting that to this code seems like a challenge, but I'd be open to it!

@bwheelz36
Copy link
Author

I more had in mind something I can easily use programmatically. But I think it is actually quite a different use case, so don't worry. I'll close this issue now!

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

No branches or pull requests

2 participants