Using pyRadPlan via 3D Slicer 5.9+ / SlicerRT.
If I have a CT that has an orientation anything other than LPS, in which case the IJK to RAS Direction Matrix is
dose calculation fails (at least photon does). Sometimes it crashes, sometimes it gives an error
like this
Details
Traceback (most recent call last):
File "D:\W\sR\Slicer-build\lib\Slicer-5.9\qt-scripted-modules\DoseEngines\pyRadPlanEngine.py", line 87, in calculateDoseUsingEngine
dij = calc_dose_influence(ct, cst, stf, pln)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\_calc_dose.py", line 45, in calc_dose_influence
dij = engine.calc_dose_influence(ct, cst, stf)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base.py", line 274, in calc_dose_influence
dij = self._calc_dose(ct, cst, stf)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base_pencilbeam.py", line 173, in _calc_dose
curr_beam = self._init_beam(dij, ct, cst, scen_stf, i)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_svdpb.py", line 140, in _init_beam
beam_info = super()._init_beam(beam_info, ct, cst, stf, i)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base_pencilbeam.py", line 434, in _init_beam
self._compute_ssd(beam_info, ct, density_threshold=self.ssd_density_threshold)
File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base_pencilbeam.py", line 524, in _compute_ssd
ix_ssd[~ix_nan] = np.argmax(rho[0][~ix_nan] > density_threshold, axis=1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\numpy\_core\fromnumeric.py", line 1298, in argmax
return _wrapfunc(a, 'argmax', axis=axis, out=out, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\W\sR\python-install\Lib\site-packages\numpy\_core\fromnumeric.py", line 57, in _wrapfunc
return bound(*args, **kwds)
^^^^^^^^^^^^^^^^^^^^
ValueError: attempt to get argmax of an empty sequence
Happy to provide more information if someone starts working on this but needs data, script etc.
Using pyRadPlan via 3D Slicer 5.9+ / SlicerRT.
If I have a CT that has an orientation anything other than LPS, in which case the IJK to RAS Direction Matrix is
dose calculation fails (at least photon does). Sometimes it crashes, sometimes it gives an error
Details
Traceback (most recent call last): File "D:\W\sR\Slicer-build\lib\Slicer-5.9\qt-scripted-modules\DoseEngines\pyRadPlanEngine.py", line 87, in calculateDoseUsingEngine dij = calc_dose_influence(ct, cst, stf, pln) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\_calc_dose.py", line 45, in calc_dose_influence dij = engine.calc_dose_influence(ct, cst, stf) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base.py", line 274, in calc_dose_influence dij = self._calc_dose(ct, cst, stf) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base_pencilbeam.py", line 173, in _calc_dose curr_beam = self._init_beam(dij, ct, cst, scen_stf, i) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_svdpb.py", line 140, in _init_beam beam_info = super()._init_beam(beam_info, ct, cst, stf, i) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base_pencilbeam.py", line 434, in _init_beam self._compute_ssd(beam_info, ct, density_threshold=self.ssd_density_threshold) File "D:\W\sR\python-install\Lib\site-packages\pyRadPlan\dose\engines\_base_pencilbeam.py", line 524, in _compute_ssd ix_ssd[~ix_nan] = np.argmax(rho[0][~ix_nan] > density_threshold, axis=1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\numpy\_core\fromnumeric.py", line 1298, in argmax return _wrapfunc(a, 'argmax', axis=axis, out=out, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\W\sR\python-install\Lib\site-packages\numpy\_core\fromnumeric.py", line 57, in _wrapfunc return bound(*args, **kwds) ^^^^^^^^^^^^^^^^^^^^ ValueError: attempt to get argmax of an empty sequenceHappy to provide more information if someone starts working on this but needs data, script etc.