From cb0a9c2fcfc80e809cbc6c1f815c4cbac3bc7446 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 4 Feb 2026 07:58:12 -0600 Subject: [PATCH] Fix time masking in sea-ice time series We need to compute the time mask before we can use it as an index. --- mpas_analysis/sea_ice/time_series.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mpas_analysis/sea_ice/time_series.py b/mpas_analysis/sea_ice/time_series.py index 9e4552072..464953344 100644 --- a/mpas_analysis/sea_ice/time_series.py +++ b/mpas_analysis/sea_ice/time_series.py @@ -691,14 +691,19 @@ def _compute_area_vol(self): mask = dsMesh.latCell < 0 if maxAllowedSeaIceThickness is not None: - mask = np.logical_and(mask, - ds.iceThick <= maxAllowedSeaIceThickness) + mask = np.logical_and( + mask, ds.iceThick <= maxAllowedSeaIceThickness + ) + dsForHemisphere = ds if os.path.exists(outFileNames[hemisphere]): dsCache = xr.open_dataset(outFileNames[hemisphere]) timeMask = ds.startTime > dsCache.startTime.isel(Time=-1) - ds = ds.isel(Time=timeMask) + timeMask = timeMask.compute() + dsForHemisphere = ds.isel(Time=timeMask) - dsAreaSum = (ds.where(mask) * dsMesh.areaCell).sum('nCells') + dsAreaSum = ( + dsForHemisphere.where(mask) * dsMesh.areaCell + ).sum('nCells') dsAreaSum = dsAreaSum.rename( {'iceConc': 'iceArea', 'iceThick': 'iceVolume',