From 236c5fa036a89c2e5af436e7f90cf08607ab0db4 Mon Sep 17 00:00:00 2001 From: Carolyn Begeman Date: Thu, 4 Dec 2025 16:16:21 -0600 Subject: [PATCH] Check for transport output before loading input files --- mpas_analysis/ocean/time_series_transport.py | 46 ++++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/mpas_analysis/ocean/time_series_transport.py b/mpas_analysis/ocean/time_series_transport.py index e23996fd0..080cf92c6 100644 --- a/mpas_analysis/ocean/time_series_transport.py +++ b/mpas_analysis/ocean/time_series_transport.py @@ -235,6 +235,29 @@ def run_task(self): outFileName = f'{outputDirectory}/{self.groupSuffix}_{self.startYear:04d}-{self.endYear:04d}.nc' + outputExists = os.path.exists(outFileName) + outputValid = outputExists + if outputExists: + with open_mpas_dataset(fileName=outFileName, + calendar=self.calendar, + timeVariableNames=None, + variableList=None, + startDate=startDate, + endDate=endDate) as dsOut: + + for load_year in numpy.arange(self.startYear, self.endYear + 1): + for load_month in numpy.arange(1, 13): + mask = numpy.logical_and( + dsOut.year.values == load_year, + dsOut.month.values == load_month) + if numpy.count_nonzero(mask) == 0: + outputValid = False + break + + if outputValid: + self.logger.info(' Time series exists -- Done.') + return + inputFiles = sorted(self.historyStreams.readpath( 'timeSeriesStatsMonthlyOutput', startDate=startDate, endDate=endDate, calendar=self.calendar)) @@ -259,29 +282,6 @@ def run_task(self): 'Using advection velocity.') variableList.append('timeMonthly_avg_normalVelocity') - outputExists = os.path.exists(outFileName) - outputValid = outputExists - if outputExists: - with open_mpas_dataset(fileName=outFileName, - calendar=self.calendar, - timeVariableNames=None, - variableList=None, - startDate=startDate, - endDate=endDate) as dsOut: - - for inIndex in range(dsOut.sizes['Time']): - - mask = numpy.logical_and( - dsOut.year[inIndex].values == years, - dsOut.month[inIndex].values == months) - if numpy.count_nonzero(mask) == 0: - outputValid = False - break - - if outputValid: - self.logger.info(' Time series exists -- Done.') - return - transectMaskFileName = self.masksSubtask.maskFileName dsTransectMask = xarray.open_dataset(transectMaskFileName)