Beispiel #1
0
 def setUp(self) -> None:
     attrs = test_tc_attributes()
     df_nobs = pd.DataFrame(index=range(10), data={'n_obs': range(10)})
     self.n_obs = QA4SMMetricVariable('n_obs', attrs, values=df_nobs)
     self.r = QA4SMMetricVariable('R_between_3-ERA5_LAND_and_1-C3S', attrs)
     self.beta = QA4SMMetricVariable(
         'beta_1-C3S_between_3-ERA5_LAND_and_1-C3S_and_2-ASCAT', attrs)
Beispiel #2
0
    def setUp(self) -> None:
        attrs = test_tc_attributes()

        self.r1 = QA4SMMetricVariable('R_between_3-ERA5_LAND_and_2-ASCAT',
                                      attrs)
        self.r2 = QA4SMMetricVariable('R_between_3-ERA5_LAND_and_1-C3S', attrs)
        self.R = QA4SMMetric('R', variables_list=[self.r1, self.r2])
Beispiel #3
0
    def setUp(self) -> None:
        attrs = test_attributes()
        df_nobs = pd.DataFrame(index=range(10), data={'n_obs': range(10)})
        self.n_obs = QA4SMMetricVariable('n_obs', attrs, values=df_nobs)

        self.r = QA4SMMetricVariable('R_between_6-ISMN_and_4-SMAP', attrs)
        self.pr = QA4SMMetricVariable('p_rho_between_6-ISMN_and_5-ASCAT',
                                      attrs)
Beispiel #4
0
 def _load_var(self,
               varname: str,
               empty=False) -> (QA4SMMetricVariable or None):
     """ Create a common variable and fill it with values """
     if empty:
         values = None
     else:
         values = self.df[[varname]]
     try:
         Var = QA4SMMetricVariable(varname, self.ds.attrs, values=values)
         return Var
     except IOError:
         return None
Beispiel #5
0
    def _load_vars(self, empty=False, only_metrics=False) -> list:
        """
        Create a list of common variables and fill each with values

        Parameters
        ----------
        empty : bool, default is False
            if True, Var.values is an empty dataframe
        only_metrics : bool, default is False
            if True, only variables for metric scores are kept (i.e. not gpi, idx ...)

        Returns
        -------
        vars : list
            list of QA4SMMetricVariable objects for the validation variables
        """
        vars = []
        for varname in self.varnames:
            if empty:
                values = None
            else:
                # lat, lon are in varnames but not in datasframe (as they are the index)
                try:
                    values = self.df[[varname]]
                except KeyError:
                    values = None

            try:
                Var = QA4SMMetricVariable(varname,
                                          self.ds.attrs,
                                          values=values)
                if self.ignore_empty and Var.isempty:  # check whether there are values
                    continue
            except IOError:
                Var = None
                continue

            if not Var is None:
                if only_metrics and Var.ismetric:
                    vars.append(Var)
                elif not only_metrics:
                    vars.append(Var)

        return vars
Beispiel #6
0
 def setUp(self) -> None:
     attrs = test_CI_attributes()
     self.CI_Var = QA4SMMetricVariable(
         "RMSD_ci_upper_between_0-ERA5_and_2-ESA_CCI_SM_combined", attrs)