Starshot isocenter diameter too small


We are testing out the starshot module. We acquired gantry, collimator and table film starshot images. We used a 30 cm long slit with a width of 0.6 cm, SID set to 100 cm. We scanned the film with a dpi of 360. When I analyze the images the iocenter diameters are too small. Should we be scanning the film differently should be using different values for the analysis? We tried scanning the files in a TIF and Jpeg format. the TIF file was too large to upload. I attached one of our film scans.
The result I am gettins is:

Result: PASS

The minimum circle that touches all the star lines has a diameter of 0.543 mm.

The center of the minimum circle is at 1708.1, 1450.0

We expect to a diameter ~1.98 mm.

Thank you!


Hi Renata,

In general you are better off using TIFF for scientific images because JPG files usually use a lossy compression algorithm which can add artifacts to the image. That said, I tried your jpg image (with pylinac 2.4) and got an even smaller wobble diameter although the pylinac analysis looks ok to me:

import pylinac
f = “W1_table_20201207.jpg”
s = pylinac.Starshot(f, dpi=360, sid=1000)


The minimum circle that touches all the star lines has a diameter of 0.097 mm.
The center of the minimum circle is at 1793.3, 1430.4


Just looking at the image it looks like the diameter of the circle goes from “pixel” ~1794 - ~1792.67 = 1.33px which at 360dpi is 1.33px/360px/in = 0.00369 inches = 0.094mm which seems consistent at least.

What version of pylinac are you using? It does seem odd you’re getting a factor of 5 difference when analyzing that image compared to what I got.


Hi Randy,

I’m sorry I cut and pasted the wrong result. I got the same result as you. Why do you think it is so small? Thanks.


Result: PASS

The minimum circle that touches all the star lines has a diameter of 0.097 mm.

The center of the minimum circle is at 1793.5, 1430.4


Hi Renata,

why do you think the circle diameter should be 2mm? Just by looking at your image I can’t see any offset/wobble in the different stripes. When I do the analysis with the PTW software I also get an isocenter circle diameter of 0,1mm. The only thing I see is that your Lasers are a bit off. But that’s an offset and is not correlated to the isocenter circle diameter.



Hey guys,

We’re new in the starshot analysis with pylinac in my department, and we don’t understand how to choose the value of the radius parameter. We think, as Renata, that ours diameters are to small. Could you please tell us how did you fix that issue?

Dear all,

That diameter is not related to the overlapping area, that is related to the central lines mismatch and the smallest circle that touches each strips’ central line. So you should be proud of your results, as that is your isocenter accuracy not the circle that fits into the overlapping area a the center of the image.



I have a question.
My starshot detection diameter is too small.

This leads to detection bias of spokes.

How to set the diameter?

Figure 2022-03-29 100529.png 在 2021年10月2日 星期六下午1:41:32 [UTC+8] 的信中寫道:

I think you are talking about the radius to detect the spokes. By default, it looks at a radius of 0.85 of the detected spoke size. The fact that the final circle is so small means that there may be noise or other trouble detecting the spokes. The algorithm will move inward and retry if it can’t find the spokes at the given radius. A few options:

  1. Filter the image first to remove salt and pepper noise
star = pylinac.Starshot(...)
star.image.filter(size=3, kind='median')
  1. set the radius explicitly and turn off recursive.
star = pylinac.Starshot(...)
star.analyze(radius=0.85, recursive=False)

This might result in an error, which is the real reason your detected circle is so small. You can try using different values for radius. If nothing works you can let us know here.

Figure 2022-03-29 100529.png