@@ -315,6 +315,7 @@ def reproject_and_coadd(
315
315
316
316
if combine_function in ("mean" , "sum" ):
317
317
if match_background :
318
+ # if we're not matching the background, this part has already been done
318
319
for array in arrays :
319
320
# By default, values outside of the footprint are set to NaN
320
321
# but we set these to 0 here to avoid getting NaNs in the
@@ -329,27 +330,28 @@ def reproject_and_coadd(
329
330
output_array /= output_footprint
330
331
331
332
elif combine_function in ("first" , "last" , "min" , "max" ):
332
- for array in arrays :
333
- if combine_function == "first" :
334
- mask = output_footprint [array .view_in_original_array ] == 0
335
- elif combine_function == "last" :
336
- mask = array .footprint > 0
337
- elif combine_function == "min" :
338
- mask = (array .footprint > 0 ) & (
339
- array .array < output_array [array .view_in_original_array ]
333
+ if match_background :
334
+ for array in arrays :
335
+ if combine_function == "first" :
336
+ mask = output_footprint [array .view_in_original_array ] == 0
337
+ elif combine_function == "last" :
338
+ mask = array .footprint > 0
339
+ elif combine_function == "min" :
340
+ mask = (array .footprint > 0 ) & (
341
+ array .array < output_array [array .view_in_original_array ]
342
+ )
343
+ elif combine_function == "max" :
344
+ mask = (array .footprint > 0 ) & (
345
+ array .array > output_array [array .view_in_original_array ]
346
+ )
347
+
348
+ output_footprint [array .view_in_original_array ] = np .where (
349
+ mask , array .footprint , output_footprint [array .view_in_original_array ]
340
350
)
341
- elif combine_function == "max" :
342
- mask = (array .footprint > 0 ) & (
343
- array .array > output_array [array .view_in_original_array ]
351
+ output_array [array .view_in_original_array ] = np .where (
352
+ mask , array .array , output_array [array .view_in_original_array ]
344
353
)
345
354
346
- output_footprint [array .view_in_original_array ] = np .where (
347
- mask , array .footprint , output_footprint [array .view_in_original_array ]
348
- )
349
- output_array [array .view_in_original_array ] = np .where (
350
- mask , array .array , output_array [array .view_in_original_array ]
351
- )
352
-
353
355
elif combine_function == "median" :
354
356
# Here we need to operate in chunks since we could otherwise run
355
357
# into memory issues
0 commit comments