import pylinac
from pylinac.winston_lutz import Axis
from pylinac.core.image_generator import (
    GaussianFilterLayer,
    FilteredFieldLayer,
    AS1200Image,
    RandomNoiseLayer,
    generate_winstonlutz,
)

wl_dir = 'wl_dir'
generate_winstonlutz(
    AS1200Image(1000),
    FilteredFieldLayer,
    dir_out=wl_dir,
    final_layers=[GaussianFilterLayer(sigma_mm=1), ],
    bb_size_mm=5,
    field_size_mm=(20, 20),
    offset_mm_left=2,
    image_axes=[(0, 0, 0), (0, 45, 0), (0, 270, 0),
                (90, 0, 0), (180, 0, 0), (270, 0, 0),
                (0, 0, 90), (0, 0, 315)]
)

wl = pylinac.WinstonLutz(wl_dir)
wl.analyze(bb_size_mm=5)
print(wl.results())
wl.plot_images(axis=Axis.GBP_COMBO)