Beispiel #1
0
 def test_seed(self):
     # test seed gen, in base class
     s1 = seed_generator(0)
     s2 = seed_generator(0)
     self.assertNotEqual(s1, s2)
     s3 = seed_generator(23)
     self.assertEqual(s3, 23)
Beispiel #2
0
 def obs_generator(self, field_list, ensemble_size, obs_size):
     """
     apply field model and generate observable raw data
     :param parameters: dict of parameters
     :param ensemble_size: number of realizations in ensemble
     :param obs_size: size of observable
     :return: numpy ndarray
     """
     # coordinates
     raw_arr = np.zeros((ensemble_size, obs_size))
     coo_x = np.linspace(0., 2. * np.pi, obs_size)
     for i in range(ensemble_size):
         pars = field_list[0].report_parameters(i)
         # double check parameter keys
         assert (pars.keys() == field_list[0].field_checklist.keys())
         # extract parameters
         par_a = pars['a']
         par_b = pars['b']
         par_s = pars['random_seed']
         # get thread-time dependent random number
         np.random.seed(seed_generator(par_s))
         raw_arr[i, :] = np.multiply(
             np.cos(coo_x),
             np.random.normal(loc=par_a, scale=par_b, size=obs_size))
     return raw_arr