@@ -113,8 +113,8 @@ def _nearest_2d(ctx: InterpolationContext2D) -> float:
113113 return ctx .data [ctx .ti , yii , xii ]
114114
115115
116- def _unit_square_to_target (* , eta : float , xsi : float , data : np .ndarray , yi : int , xi : int ) -> float :
117- """Interpolation on a unit square. See Delandmeter and Sebille 2019."""
116+ def _interp_on_unit_square (* , eta : float , xsi : float , data : np .ndarray , yi : int , xi : int ) -> float :
117+ """Interpolation on a unit square. See Delandmeter and Van Sebille (2019), 10.5194/gmd-12-3571- 2019."""
118118 return (
119119 (1 - xsi ) * (1 - eta ) * data [yi , xi ]
120120 + xsi * (1 - eta ) * data [yi , xi + 1 ]
@@ -128,13 +128,7 @@ def _unit_square_to_target(*, eta: float, xsi: float, data: np.ndarray, yi: int,
128128@register_2d_interpolator ("partialslip" )
129129@register_2d_interpolator ("freeslip" )
130130def _linear_2d (ctx : InterpolationContext2D ) -> float :
131- xsi = ctx .xsi
132- eta = ctx .eta
133- data = ctx .data
134- yi = ctx .yi
135- xi = ctx .xi
136- ti = ctx .ti
137- val = _unit_square_to_target (eta = eta , xsi = xsi , data = data [ti , :, :], yi = yi , xi = xi )
131+ val = _interp_on_unit_square (eta = ctx .eta , xsi = ctx .xsi , data = ctx .data [ctx .ti , :, :], yi = ctx .yi , xi = ctx .xi )
138132 return val
139133
140134
@@ -167,7 +161,7 @@ def _linear_invdist_land_tracer_2d(ctx: InterpolationContext2D) -> float:
167161 w_sum += 1 / distance
168162 return val / w_sum
169163 else :
170- val = _unit_square_to_target (eta = eta , xsi = xsi , data = data [ti , :, :], yi = yi , xi = xi )
164+ val = _interp_on_unit_square (eta = eta , xsi = xsi , data = data [ti , :, :], yi = yi , xi = xi )
171165 return val
172166
173167
@@ -221,23 +215,23 @@ def _linear_invdist_land_tracer_3d(ctx: InterpolationContext3D) -> float:
221215 return val / w_sum
222216 else :
223217 data = ctx .data [ctx .ti , ctx .zi , :, :]
224- f0 = _unit_square_to_target (eta = ctx .eta , xsi = ctx .xsi , data = data , yi = ctx .yi , xi = ctx .xi )
218+ f0 = _interp_on_unit_square (eta = ctx .eta , xsi = ctx .xsi , data = data , yi = ctx .yi , xi = ctx .xi )
225219
226220 data = ctx .data [ctx .ti , ctx .zi + 1 , :, :]
227- f1 = _unit_square_to_target (eta = ctx .eta , xsi = ctx .xsi , data = data , yi = ctx .yi , xi = ctx .xi )
221+ f1 = _interp_on_unit_square (eta = ctx .eta , xsi = ctx .xsi , data = data , yi = ctx .yi , xi = ctx .xi )
228222
229223 return (1 - ctx .zeta ) * f0 + ctx .zeta * f1
230224
231225
232226def _get_3d_f0_f1 (* , eta : float , xsi : float , data : np .ndarray , zi : int , yi : int , xi : int ) -> tuple [float , float | None ]:
233227 data_2d = data [zi , :, :]
234- f0 = _unit_square_to_target (eta = eta , xsi = xsi , data = data_2d , yi = yi , xi = xi )
228+ f0 = _interp_on_unit_square (eta = eta , xsi = xsi , data = data_2d , yi = yi , xi = xi )
235229 try :
236230 data_2d = data [zi + 1 , :, :]
237231 except IndexError :
238232 f1 = None # POP indexing at edge of domain
239233 else :
240- f1 = _unit_square_to_target (eta = eta , xsi = xsi , data = data_2d , yi = yi , xi = xi )
234+ f1 = _interp_on_unit_square (eta = eta , xsi = xsi , data = data_2d , yi = yi , xi = xi )
241235
242236 return f0 , f1
243237
@@ -259,14 +253,11 @@ def _z_layer_interp(
259253@register_3d_interpolator ("partialslip" )
260254@register_3d_interpolator ("freeslip" )
261255def _linear_3d (ctx : InterpolationContext3D ) -> float :
262- zeta = ctx .zeta
263- eta = ctx .eta
264- xsi = ctx .xsi
265256 zdim = ctx .data .shape [1 ]
266257 data_3d = ctx .data [ctx .ti , :, :, :]
267- f0 , f1 = _get_3d_f0_f1 (eta = eta , xsi = xsi , data = data_3d , zi = ctx .zi , yi = ctx .yi , xi = ctx .xi )
258+ f0 , f1 = _get_3d_f0_f1 (eta = ctx . eta , xsi = ctx . xsi , data = data_3d , zi = ctx .zi , yi = ctx .yi , xi = ctx .xi )
268259
269- return _z_layer_interp (zeta = zeta , f0 = f0 , f1 = f1 , zi = ctx .zi , zdim = zdim , gridindexingtype = ctx .gridindexingtype )
260+ return _z_layer_interp (zeta = ctx . zeta , f0 = f0 , f1 = f1 , zi = ctx .zi , zdim = zdim , gridindexingtype = ctx .gridindexingtype )
270261
271262
272263@register_3d_interpolator ("bgrid_velocity" )
0 commit comments