@@ -49,7 +49,7 @@ class BaseErrCorrForm(abc.ABC):
4949
5050 def __init__ (self , xarray_obj , unc_var_name , dims , params , units ):
5151 self ._obj = xarray_obj
52- self .unc_var_name = unc_var_name
52+ self ._unc_var_name = unc_var_name
5353 self .dims = dims if isinstance (dims , list ) else [dims ]
5454 self .params = params if isinstance (params , list ) else [params ]
5555 self .units = units
@@ -69,18 +69,18 @@ def form(self) -> str:
6969 """Form name"""
7070 pass
7171
72- def expand_dim_matrix (self , submatrix ):
72+ def expand_dim_matrix (self , submatrix , sli ):
7373 return expand_errcorr_dims (
7474 in_corr = submatrix ,
7575 in_dim = self .dims ,
76- out_dim = list (self ._obj [self .unc_var_name ].dims ),
76+ out_dim = list (self ._obj [self ._unc_var_name ][ sli ].dims ),
7777 dim_sizes = {
78- dim : self ._obj .dims [dim ] for dim in self ._obj [self .unc_var_name ].dims
78+ dim : self ._obj .dims [dim ] for dim in self ._obj [self ._unc_var_name ][ sli ].dims
7979 },
8080 )
8181
8282 def slice_full_cov (self , full_matrix , sli ):
83- mask_array = np .ones (self ._obj [self .unc_var_name ].shape , dtype = bool )
83+ mask_array = np .ones (self ._obj [self ._unc_var_name ].shape , dtype = bool )
8484 mask_array [sli ] = False
8585
8686 return np .delete (
@@ -138,10 +138,10 @@ def build_matrix(self, sli):
138138 dims_matrix = np .eye (n_elems )
139139
140140 # expand to correlation matrix over all variable dims
141- full_matrix = self .expand_dim_matrix (dims_matrix )
141+ return self .expand_dim_matrix (dims_matrix , sli )
142142
143- # subset to slice
144- return self .slice_full_cov (full_matrix , sli )
143+ # # subset to slice
144+ # return self.slice_full_cov(full_matrix, sli)
145145
146146
147147@register_err_corr_form ("systematic" )
@@ -167,10 +167,10 @@ def build_matrix(self, sli):
167167 dims_matrix = np .ones ((n_elems , n_elems ))
168168
169169 # expand to correlation matrix over all variable dims
170- full_matrix = self .expand_dim_matrix (dims_matrix )
170+ return self .expand_dim_matrix (dims_matrix , sli )
171171
172172 # subset to slice
173- return self .slice_full_cov (full_matrix , sli )
173+ # return self.slice_full_cov(full_matrix, sli)
174174
175175
176176@register_err_corr_form ("err_corr_matrix" )
@@ -189,10 +189,10 @@ def build_matrix(self, sli):
189189 """
190190
191191 # expand to correlation matrix over all variable dims
192- full_matrix = self .expand_dim_matrix (self ._obj [self .params [0 ]])
192+ return self .expand_dim_matrix (self ._obj [self .params [0 ]], sli )
193193
194- # subset to slice
195- return self .slice_full_cov (full_matrix , sli )
194+ # # subset to slice
195+ # return self.slice_full_cov(full_matrix, sli)
196196
197197
198198@register_err_corr_form ("ensemble" )
0 commit comments