@@ -61,32 +61,70 @@ def __init__(
6161 self .over_sample_size_pixelization = over_sample_size_pixelization
6262 self .psf = psf
6363
64- self .lp = Grid2D .from_mask (
64+ self ._lp = None
65+ self ._pixelization = None
66+ self ._blurring = None
67+ self ._border_relocator = None
68+
69+ self .use_w_tilde = use_w_tilde
70+
71+ @property
72+ def lp (self ):
73+
74+ if self ._lp is not None :
75+ return self ._lp
76+
77+ self ._lp = Grid2D .from_mask (
6578 mask = self .mask ,
6679 over_sample_size = self .over_sample_size_lp ,
6780 )
6881
69- self .pixelization = Grid2D .from_mask (
82+ return self ._lp
83+
84+ @property
85+ def pixelization (self ):
86+ if self ._pixelization is not None :
87+ return self ._pixelization
88+
89+ self ._pixelization = Grid2D .from_mask (
7090 mask = self .mask ,
7191 over_sample_size = self .over_sample_size_pixelization ,
7292 )
7393
94+ return self ._pixelization
95+
96+ @property
97+ def blurring (self ):
98+
99+ if self ._blurring is not None :
100+ return self ._blurring
101+
74102 if self .psf is None :
75- self .blurring = None
103+ self ._blurring = None
76104 else :
77105 try :
78- self .blurring = self .lp .blurring_grid_via_kernel_shape_from (
106+ self ._blurring = self .lp .blurring_grid_via_kernel_shape_from (
79107 kernel_shape_native = self .psf .shape_native ,
80108 )
81109 except exc .MaskException :
82- self .blurring = None
110+ self ._blurring = None
111+
112+ return self ._blurring
83113
84- self .border_relocator = BorderRelocator (
114+ @property
115+ def border_relocator (self ) -> BorderRelocator :
116+
117+ if self ._border_relocator is not None :
118+ return self ._border_relocator
119+
120+ self ._border_relocator = BorderRelocator (
85121 mask = self .mask ,
86122 sub_size = self .over_sample_size_pixelization ,
87- use_w_tilde = use_w_tilde ,
123+ use_w_tilde = self . use_w_tilde ,
88124 )
89125
126+ return self ._border_relocator
127+
90128
91129class GridsInterface :
92130 def __init__ (
0 commit comments