Esempio n. 1
0
    def _compute_stats(self, var1, var2):
        self._dims_differ = self._compute_dims_differ(var1, var2)
        self._diffs = None
        self._sums = None
        if (self.dims_differ()):
            self._var1info = VarInfo(var1)
            self._var2info = VarInfo(var2)
            self._vars_differ = False
            self._masks_differ = False
            self._rmse = float('nan')
            self._normalized_rmse = float('nan')
            self._rdiff_max = float('nan')
            self._rdiff_maxloc = float('nan')
            self._rdiff_logavg = float('nan')
        else:
            self._masks_differ = self._compute_masks_differ(var1, var2)

            # For performance reasons, create compressed versions of var1 and var2
            (var1c, var2c) = compress_two_arrays(var1, var2)

            # FIXME(wjs, 2016-01-04) Change the following to use pre-computed
            # abs diff?: check if any abs diff is > 0:
            self._vars_differ = not np.array_equal(var1c, var2c)

            self._var1info = VarInfo(var1)
            if self._vars_differ:
                self._var2info = VarInfo(var2)
            else:
                self._var2info = self._var1info

            self._rmse = self._compute_rmse(var1c, var2c)
            self._normalized_rmse = self._compute_normalized_rmse(var1c, var2c)
            self._rdiff_max, self._rdiff_maxloc, self._rdiff_logavg = self._compute_rdiff_stats(var1c, var2c)
Esempio n. 2
0
    def _compute_stats(self, var1, var2):
        self._dims_differ = self._compute_dims_differ(var1, var2)
        self._diffs = None
        self._sums = None
        if (self.dims_differ()):
            self._var1info = VarInfo(var1)
            self._var2info = VarInfo(var2)
            self._vars_differ = False
            self._masks_differ = False
            self._rmse = float('nan')
            self._normalized_rmse = float('nan')
            self._rdiff_max = float('nan')
            self._rdiff_maxloc = float('nan')
            self._rdiff_logavg = float('nan')
        else:
            self._masks_differ = self._compute_masks_differ(var1, var2)

            # For performance reasons, create compressed versions of var1 and var2
            (var1c, var2c) = compress_two_arrays(var1, var2)

            # FIXME(wjs, 2016-01-04) Change the following to use pre-computed
            # abs diff?: check if any abs diff is > 0:
            self._vars_differ = not np.array_equal(var1c, var2c)

            self._var1info = VarInfo(var1)
            if self._vars_differ:
                self._var2info = VarInfo(var2)
            else:
                self._var2info = self._var1info

            self._rmse = self._compute_rmse(var1c, var2c)
            self._normalized_rmse = self._compute_normalized_rmse(var1c, var2c)
            self._rdiff_max, self._rdiff_maxloc, self._rdiff_logavg = self._compute_rdiff_stats(
                var1c, var2c)
Esempio n. 3
0
 def test_compressTwoArrays_withOneUnmaskedMAArray(self):
     var1 = np.ma.array([[1, 2], [3, 4]],
                        mask=[[True, False], [False, True]])
     var2 = np.ma.array([[5, 6], [7, 8]])
     (var1c, var2c) = compress_two_arrays(var1, var2)
     self.assertArraysEqual(var1c, np.array([2, 3]))
     self.assertArraysEqual(var2c, np.array([6, 7]))
Esempio n. 4
0
 def test_compressTwoArrays_withUnmaskedMAArrays(self):
     var1 = np.ma.array([[1, 2], [3, 4]])
     var2 = np.ma.array([[5, 6], [7, 8]])
     (var1c, var2c) = compress_two_arrays(var1, var2)
     self.assertArraysEqual(var1c, np.array([1, 2, 3, 4]))
     self.assertArraysEqual(var2c, np.array([5, 6, 7, 8]))
Esempio n. 5
0
 def test_compressTwoArrays_withDifferentMasks(self):
     var1 = np.ma.array([[1,2],[3,4]], mask=[[False,False],[False,True]])
     var2 = np.ma.array([[5,6],[7,8]], mask=[[True,False],[False,False]])
     (var1c, var2c) = compress_two_arrays(var1, var2)
     self.assertArraysEqual(var1c, np.array([2,3]))
     self.assertArraysEqual(var2c, np.array([6,7]))
Esempio n. 6
0
 def test_compressTwoArrays_withUnmaskedMAArrays(self):
     var1 = np.ma.array([[1,2],[3,4]])
     var2 = np.ma.array([[5,6],[7,8]])
     (var1c, var2c) = compress_two_arrays(var1, var2)
     self.assertArraysEqual(var1c, np.array([1,2,3,4]))
     self.assertArraysEqual(var2c, np.array([5,6,7,8]))