@@ -324,6 +324,7 @@ def reproject_and_coadd(
324
324
325
325
if combine_function in ("mean" , "sum" ):
326
326
if match_background :
327
+ # if we're not matching the background, this part has already been done
327
328
for array in arrays :
328
329
# By default, values outside of the footprint are set to NaN
329
330
# but we set these to 0 here to avoid getting NaNs in the
@@ -339,27 +340,28 @@ def reproject_and_coadd(
339
340
output_array [output_footprint == 0 ] = 0
340
341
341
342
elif combine_function in ("first" , "last" , "min" , "max" ):
342
- for array in arrays :
343
- if combine_function == "first" :
344
- mask = (output_footprint [array .view_in_original_array ] == 0 ) & (array .footprint > 0 )
345
- elif combine_function == "last" :
346
- mask = array .footprint > 0
347
- elif combine_function == "min" :
348
- mask = (array .footprint > 0 ) & (
349
- array .array < output_array [array .view_in_original_array ]
343
+ if match_background :
344
+ for array in arrays :
345
+ if combine_function == "first" :
346
+ mask = output_footprint [array .view_in_original_array ] == 0
347
+ elif combine_function == "last" :
348
+ mask = array .footprint > 0
349
+ elif combine_function == "min" :
350
+ mask = (array .footprint > 0 ) & (
351
+ array .array < output_array [array .view_in_original_array ]
352
+ )
353
+ elif combine_function == "max" :
354
+ mask = (array .footprint > 0 ) & (
355
+ array .array > output_array [array .view_in_original_array ]
356
+ )
357
+
358
+ output_footprint [array .view_in_original_array ] = np .where (
359
+ mask , array .footprint , output_footprint [array .view_in_original_array ]
350
360
)
351
- elif combine_function == "max" :
352
- mask = (array .footprint > 0 ) & (
353
- array .array > output_array [array .view_in_original_array ]
361
+ output_array [array .view_in_original_array ] = np .where (
362
+ mask , array .array , output_array [array .view_in_original_array ]
354
363
)
355
364
356
- output_footprint [array .view_in_original_array ] = np .where (
357
- mask , array .footprint , output_footprint [array .view_in_original_array ]
358
- )
359
- output_array [array .view_in_original_array ] = np .where (
360
- mask , array .array , output_array [array .view_in_original_array ]
361
- )
362
-
363
365
elif combine_function == "median" :
364
366
# Here we need to operate in chunks since we could otherwise run
365
367
# into memory issues
0 commit comments