Source-to-Image distance error - Starshot analysis

Hello everybody:

First of all, I would like to congratulate you on both pylinac and Assurance QA. It’s amazing!!

So my question is; when I try to run starshot (pylinac), I get the following message:

raise ValueError(“Source-to-Image distance was not an image tag and was not passed in. Please pass an SID value”)
ValueError: Source-to-Image distance was not an image tag and was not passed in. Please pass an SID valued.
(starshot demo runs ok).

The used image was a TIFF image which I thought it had this tag included.

However when I use this same image in Assurance QA, I get no error messages and the analysis is made.

Could you please tell me how to avoid this error in pylinac?

By the way, I’d like to add that I am a beginner with python. Five days ago, I didn’t know what “Anaconda” was.

Thank you.

Roberto Berenguer

Thank you for the kind words; I hope pylinac can continue to be of use to you.

The quick answer to your question is that in v1.5 I dropped support for relative starshot analysis, meaning you have to pass in SID and DPI, whereas before it could be skipped and the result would give you an answer in pixels not mm. But, I didn’t know many physicists who wanted starshot values in pixels =). So, just pass in the SID you performed the test at like so:

star=Starshot("my/image.tiff", sid=100)

and continue like normal. Docs are here.

AssuranceQA is using a slightly older pylinac version, so that’s why you’re seeing some small differences. Pylinac is (meant to be) rock-solid; AssuranceQA is just a proof-of-concept thing, mostly because I’m good at Python and so-so at web development.

Good to see beginners giving Python a try; it’s not as popular as Matlab in medical physics but it’s a much better investment of time; unlike Matlab you can literally do something in every domain with Python! Anaconda is a game-changer for scientific computing w/ Python, making the transition and learning curve much much easier. If you haven’t already, play around with conda, making environments and so forth. There are few resources for physicists learning Python so feel free to ask more questions.


SID is in mm, sorry, so that value should be 1000 if you did the test at iso.

Thank you very much for your quick response. It works perfect now.
Although I’m afraid this won’t be the last question I will ask.



thank you very much. this worked for me also.