Exemplo n.º 1
0
 def test_has_a_time_range_encompassing_all_variables(self):
     ds = Dataset(name="test",
                  variables={
                      'v1': make_simple_var(10., 100.),
                      'v2': make_simple_var(30., 40.),
                      'v3': make_simple_var(60., 500.)
                  },
                  meta={})
     self.assertEqual(DateTimeRange(10., 499.), ds.time_range())
Exemplo n.º 2
0
 def test_len_gives_variable_count(self):
     ds = Dataset(name="test", variables={}, meta={})
     self.assertEqual(len(ds), 0)
     ds = Dataset(name="test",
                  variables={
                      'v1': SpeasyVariable(),
                      'v2': SpeasyVariable(),
                      'v3': SpeasyVariable()
                  },
                  meta={})
     self.assertEqual(len(ds), 3)
Exemplo n.º 3
0
 def test_is_plotable(self):
     try:
         import matplotlib.pyplot as plt
         ds = Dataset(name="test",
                      variables={
                          'v1': make_simple_var(10., 100.),
                          'v2': make_simple_var(30., 40.),
                          'v3': make_simple_var(60., 500.)
                      },
                      meta={})
         ax = ds.plot()
         self.assertIsNotNone(ax)
     except ImportError:
         self.skipTest("Can't import matplotlib")
Exemplo n.º 4
0
 def test_returns_false_if_variable_name_is_not_in_dataset(self):
     ds = Dataset(name="test",
                  variables={
                      'v1': SpeasyVariable(),
                      'v2': SpeasyVariable(),
                      'v3': SpeasyVariable()
                  },
                  meta={})
     self.assertNotIn('Not in', ds)
Exemplo n.º 5
0
 def test_returns_true_if_variable_name_is_in_dataset(self):
     ds = Dataset(name="test",
                  variables={
                      'v1': SpeasyVariable(),
                      'v2': SpeasyVariable(),
                      'v3': SpeasyVariable()
                  },
                  meta={})
     for v in ds:
         self.assertIn(v, ds)
Exemplo n.º 6
0
 def test_can_iterate_variables(self):
     ds = Dataset(name="test",
                  variables={
                      'v1': SpeasyVariable(),
                      'v2': SpeasyVariable(),
                      'v3': SpeasyVariable()
                  },
                  meta={})
     var_list = [v for v in ds]
     self.assertListEqual(['v1', 'v2', 'v3'], var_list)
Exemplo n.º 7
0
 def test_has_str_repr(self):
     ds = Dataset(name="test",
                  variables={
                      'v1': SpeasyVariable(),
                      'v2': SpeasyVariable(),
                      'v3': SpeasyVariable()
                  },
                  meta={})
     repr = str(ds)
     self.assertIn('v1', repr)
     self.assertIn('v2', repr)
Exemplo n.º 8
0
    def get_dataset(self, dataset_id: str or AMDADatasetIndex, start: str
                    or datetime, stop: str or datetime, **kwargs) -> Dataset:
        """Get dataset contents. Returns list of SpeasyVariable objects, one for each
        parameter in the dataset.

        Parameters
        ----------
        dataset_id: str or AMDADatasetIndex
            dataset id
        start: str or datetime
            desired data start
        stop: str or datetime
            desired data end

        Returns
        -------
        Dataset
            dataset content as a collection of SpeasyVariable

        Examples
        --------

        >>> import speasy as spz
        >>> import datetime
        >>> dataset = spz.amda.get_dataset("ace-imf-all", datetime.datetime(2000,1,1), datetime.datetime(2000,1,2))
        >>> dataset
        <Dataset: final / prelim
                variables: ['|b|', 'b_gse', 'b_gsm']
                time range: <DateTimeRange: 2000-01-01T00:00:11 -> 2000-01-01T23:59:55>


        """
        # get list of parameters for this dataset
        dataset_id = to_xmlid(dataset_id)
        name = flat_inventories.amda.datasets[dataset_id].name
        meta = {
            k: v
            for k, v in
            flat_inventories.amda.datasets[dataset_id].__dict__.items()
            if not isinstance(v, AMDAIndex)
        }
        parameters = self.list_parameters(dataset_id)
        return Dataset(name=name,
                       variables={
                           p.name: self.get_parameter(p, start, stop, **kwargs)
                           for p in parameters
                       },
                       meta=meta)
Exemplo n.º 9
0
 def test_has_no_time_range_when_empty_or_has_empty_vars(self):
     ds = Dataset(name="test", variables={}, meta={})
     self.assertIsNone(ds.time_range())
     ds = Dataset(name="test",
                  variables={
                      'v1': SpeasyVariable(),
                      'v2': SpeasyVariable(),
                      'v3': SpeasyVariable()
                  },
                  meta={})
     self.assertIsNone(ds.time_range())
Exemplo n.º 10
0
 def test_can_be_indexed_by_variable_name(self):
     ds = Dataset(name="test", variables={"v": SpeasyVariable()}, meta={})
     self.assertIs(type(ds['v']), SpeasyVariable)
Exemplo n.º 11
0
 def test_raises_if_given_variables_is_not_a_dict_of_variables(self):
     with self.assertRaises(TypeError):
         ds = Dataset(name='Should raise',
                      variables={'this is not a var': 10.},
                      meta={})
Exemplo n.º 12
0
 def test_accepts_a_dict_of_variables(self):
     ds = Dataset(name="test", variables={"v": SpeasyVariable()}, meta={})
     self.assertEqual(len(ds), 1)
     self.assertEqual("test", ds.name)