@@ -89,17 +89,15 @@ def predict(
8989 """
9090
9191 def ker (x : Array , ** kwargs ) -> Array :
92- """The kernel function """
92+ """Returns the most recent value. """
9393 y = x [..., n - 1 ]
9494 for i in range (1 , n ):
9595 y = da .where (da .isfinite (y ), y , x [..., n - i - 1 ])
9696 return y
9797
9898 ref : DataArray = chl [n + h - 1 :]
99- pre : DataArray = (
100- chl [: 1 - n - h ].rolling ({DID_TIM : n }, min_periods = 1 ).reduce (ker )
101- )
102- return align (ref , pre , min_pixels )
99+ pre : DataArray = chl .rolling ({DID_TIM : n }, min_periods = 1 ).reduce (ker )
100+ return align (ref , pre [n - 1 : - h ], min_pixels )
103101
104102
105103class MA (Benchmark ):
@@ -117,12 +115,15 @@ def predict(
117115 :param n: The forecast history.
118116 :return: The observed values and corresponding forecast values.
119117 """
118+
119+ def ker (x : Array , ** kwargs ) -> DataArray :
120+ """Returns the mean value."""
121+ return da .mean (x , axis = - 1 )
122+
120123 ref : DataArray = chl [n + h - 1 :]
121- pre : DataArray = (
122- chl [: 1 - n - h ].rolling ({DID_TIM : n }, min_periods = n ).mean ()
123- )
124+ pre : DataArray = chl .rolling ({DID_TIM : n }, min_periods = n ).reduce (ker )
124125
125- return align (ref , pre , min_pixels )
126+ return align (ref , pre [ n - 1 : - h ] , min_pixels )
126127
127128
128129class SES (Benchmark ):
@@ -156,10 +157,8 @@ def ker(x: Array, **kwargs) -> Array:
156157 return y
157158
158159 ref : DataArray = chl [n + h - 1 :]
159- pre : DataArray = (
160- chl [: 1 - n - h ].rolling ({DID_TIM : n }, min_periods = n ).reduce (ker )
161- )
162- return align (ref , pre , min_pixels )
160+ pre : DataArray = chl .rolling ({DID_TIM : n }, min_periods = n ).reduce (ker )
161+ return align (ref , pre [n - 1 : - h ], min_pixels )
163162
164163
165164class XGB (Benchmark ):
0 commit comments