@@ -383,7 +383,9 @@ def run_task(self):
383383 cellMasks = dsRegionMask .regionCellMasks
384384 regionNamesVar = dsRegionMask .regionNames
385385
386- totalArea = self ._masked_area_sum (cellMasks , areaCell , vertDepthMask )
386+ totalArea = self ._masked_area_sum (
387+ cellMasks , openOceanMask , areaCell , vertDepthMask
388+ )
387389
388390 datasets = []
389391 for timeIndex , fileName in enumerate (inputFiles ):
@@ -408,18 +410,21 @@ def run_task(self):
408410 prefix = field ['prefix' ]
409411 self .logger .info (' {}' .format (field ['titleName' ]))
410412
411- var_mpas = dsLocal [variableName ]
412- var_mpas_masked = var_mpas * openOceanMask
413- var = var_mpas_masked .where (vertDepthMask )
413+ var = dsLocal [variableName ].where (vertDepthMask )
414414
415415 meanName = '{}_mean' .format (prefix )
416- dsLocal [meanName ] = \
417- self ._masked_area_sum (cellMasks , areaCell , var ) / totalArea
416+ dsLocal [meanName ] = (
417+ self ._masked_area_sum (
418+ cellMasks , openOceanMask , areaCell , var
419+ ) / totalArea
420+ )
418421
419422 meanSquaredName = '{}_meanSquared' .format (prefix )
420- dsLocal [meanSquaredName ] = \
421- self ._masked_area_sum (cellMasks , areaCell , var ** 2 ) / \
422- totalArea
423+ dsLocal [meanSquaredName ] = (
424+ self ._masked_area_sum (
425+ cellMasks , openOceanMask , areaCell , var ** 2
426+ ) / totalArea
427+ )
423428
424429 # drop the original variables
425430 dsLocal = dsLocal .drop_vars (variableList )
@@ -452,12 +457,15 @@ def run_task(self):
452457 write_netcdf_with_fill (dsOut , outputFileName )
453458
454459 @staticmethod
455- def _masked_area_sum (cellMasks , areaCell , var ):
460+ def _masked_area_sum (cellMasks , openOceanMask , areaCell , var ):
456461 """sum a variable over the masked areas"""
457462 nRegions = cellMasks .sizes ['nRegions' ]
458463 totals = []
459464 for index in range (nRegions ):
460- mask = cellMasks .isel (nRegions = slice (index , index + 1 ))
465+ mask = (
466+ cellMasks .isel (nRegions = slice (index , index + 1 )) *
467+ openOceanMask
468+ )
461469 totals .append ((mask * areaCell * var ).sum ('nCells' ))
462470
463471 total = xr .concat (totals , 'nRegions' )
0 commit comments