Exemple #1
0
    def test_grid(self):
        """Test that dataset has the correct data proxies for grids."""
        dataset = DAPHandler("http://localhost:8001/", self.app1).dataset

        self.assertEqual(dataset.keys(), ["SimpleGrid", "x", "y"])
        self.assertEqual(dataset.SimpleGrid.keys(), ["SimpleGrid", "x", "y"])

        # test one of the axis
        self.assertIsInstance(dataset.SimpleGrid.x.data, BaseProxy)
        self.assertEqual(dataset.SimpleGrid.x.data.baseurl,
                         "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.x.data.id, "SimpleGrid.x")
        self.assertEqual(dataset.SimpleGrid.x.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.x.data.shape, (3, ))
        self.assertEqual(dataset.SimpleGrid.x.data.slice, (slice(None), ))

        # test the grid
        self.assertIsInstance(dataset.SimpleGrid.SimpleGrid.data, BaseProxy)
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.baseurl,
                         "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.id,
                         "SimpleGrid.SimpleGrid")
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.dtype,
                         np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (2, 3))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.slice,
                         (slice(None), slice(None)))
        self.assertEqual(
            repr(dataset.SimpleGrid[:]),
            "<GridType with array 'SimpleGrid' and maps 'x', 'y'>")
Exemple #2
0
def open_url(url):
    dataset = DAPHandler(url).dataset

    # attach server-side functions
    dataset.functions = Functions(url)

    return dataset
Exemple #3
0
    def test_sequence(self):
        """Test that dataset has the correct data proxies for sequences."""
        dataset = DAPHandler("http://localhost:8001/", self.app2).dataset

        self.assertEqual(dataset.keys(), ["cast"])
        self.assertEqual(dataset.cast.keys(), [
            'id', 'lon', 'lat', 'depth', 'time', 'temperature', 'salinity',
            'pressure'
        ])

        # check the sequence
        self.assertIsInstance(dataset.cast.data, SequenceProxy)
        self.assertEqual(dataset.cast.data.baseurl, "http://localhost:8001/")
        self.assertEqual(dataset.cast.data.id, "cast")
        self.assertEqual(dataset.cast.data.shape, ())
        self.assertEqual(dataset.cast.data.selection, [])
        self.assertEqual(dataset.cast.data.slice, (slice(None), ))

        # check a child
        self.assertIsInstance(dataset.cast.lon.data, SequenceProxy)
        self.assertEqual(dataset.cast.lon.data.baseurl,
                         "http://localhost:8001/")
        self.assertEqual(dataset.cast.lon.data.id, "cast.lon")
        self.assertEqual(dataset.cast.lon.data.shape, ())
        self.assertEqual(dataset.cast.lon.data.dtype, np.dtype(">i4"))
        self.assertEqual(dataset.cast.lon.data.selection, [])
        self.assertEqual(dataset.cast.lon.data.slice, (slice(None), ))
Exemple #4
0
    def test_grid_output_grid_false(self):
        """Test that dataset has the correct data proxies for grids with
           option output_grid set to False."""
        dataset = DAPHandler("http://localhost:8001/", self.app1,
                             output_grid=False).dataset

        self.assertEqual(list(dataset.keys()), ["SimpleGrid", "x", "y"])
        self.assertEqual(
            list(dataset.SimpleGrid.keys()), ["SimpleGrid", "x", "y"])

        # test one of the axis
        self.assertIsInstance(dataset.SimpleGrid.x.data, BaseProxy)
        self.assertEqual(
            dataset.SimpleGrid.x.data.baseurl, "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.x.data.id, "SimpleGrid.x")
        self.assertEqual(dataset.SimpleGrid.x.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.x.data.shape, (3,))
        self.assertEqual(
            dataset.SimpleGrid.x.data.slice, (slice(None),))

        # test the grid
        self.assertIsInstance(dataset.SimpleGrid.SimpleGrid.data, BaseProxy)
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.baseurl,
            "http://localhost:8001/")
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.id, "SimpleGrid.SimpleGrid")
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (2, 3))
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.slice,
            (slice(None), slice(None)))
        np.testing.assert_array_equal(dataset.SimpleGrid[:],
                                      [[0, 1, 2], [3, 4, 5]])
Exemple #5
0
    def test_sequence(self):
        """Test that dataset has the correct data proxies for sequences."""
        dataset = DAPHandler("http://localhost:8001/", self.app2).dataset

        self.assertEqual(list(dataset.keys()), ["cast"])
        self.assertEqual(
            list(dataset.cast.keys()), [
                'id', 'lon', 'lat', 'depth', 'time', 'temperature', 'salinity',
                'pressure'])

        # check the sequence
        self.assertIsInstance(dataset.cast.data, SequenceProxy)
        self.assertEqual(
            dataset.cast.data.baseurl, "http://localhost:8001/")
        self.assertEqual(dataset.cast.data.id, "cast")
        self.assertEqual(dataset.cast.data.shape, ())
        self.assertEqual(dataset.cast.data.selection, [])
        self.assertEqual(dataset.cast.data.slice, (slice(None),))

        # check a child
        self.assertIsInstance(dataset.cast.lon.data, SequenceProxy)
        self.assertEqual(
            dataset.cast.lon.data.baseurl, "http://localhost:8001/")
        self.assertEqual(dataset.cast.lon.data.id, "cast.lon")
        self.assertEqual(dataset.cast.lon.data.shape, ())
        self.assertEqual(dataset.cast.lon.data.dtype, np.dtype(">i4"))
        self.assertEqual(dataset.cast.lon.data.selection, [])
        self.assertEqual(dataset.cast.lon.data.slice, (slice(None),))
Exemple #6
0
    def test_grid_gzip(self):
        """Test that dataset has the correct data proxies for grids."""
        dataset = DAPHandler("http://localhost:8001/", self.app3).dataset

        self.assertEqual(list(dataset.keys()), ["SimpleGrid", "x", "y"])
        self.assertEqual(
            list(dataset.SimpleGrid.keys()), ["SimpleGrid", "x", "y"])

        # test one of the axis
        self.assertIsInstance(dataset.SimpleGrid.x.data, BaseProxy)
        self.assertEqual(
            dataset.SimpleGrid.x.data.baseurl, "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.x.data.id, "SimpleGrid.x")
        self.assertEqual(dataset.SimpleGrid.x.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.x.data.shape, (3,))
        self.assertEqual(
            dataset.SimpleGrid.x.data.slice, (slice(None),))

        # test the grid
        self.assertIsInstance(dataset.SimpleGrid.SimpleGrid.data, BaseProxy)
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.baseurl,
            "http://localhost:8001/")
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.id, "SimpleGrid.SimpleGrid")
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (2, 3))
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.slice,
            (slice(None), slice(None)))
        self.assertEqual(
                repr(dataset.SimpleGrid[:]),
                "<GridType with array 'SimpleGrid' and maps 'x', 'y'>")
Exemple #7
0
    def test_grid_output_grid_false(self):
        """Test that dataset has the correct data proxies for grids with
           option output_grid set to False."""
        dataset = DAPHandler("http://localhost:8001/",
                             self.app1,
                             output_grid=False).dataset

        self.assertEqual(dataset.keys(), ["SimpleGrid", "x", "y"])
        self.assertEqual(dataset.SimpleGrid.keys(), ["SimpleGrid", "x", "y"])

        # test one of the axis
        self.assertIsInstance(dataset.SimpleGrid.x.data, BaseProxy)
        self.assertEqual(dataset.SimpleGrid.x.data.baseurl,
                         "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.x.data.id, "SimpleGrid.x")
        self.assertEqual(dataset.SimpleGrid.x.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.x.data.shape, (3, ))
        self.assertEqual(dataset.SimpleGrid.x.data.slice, (slice(None), ))

        # test the grid
        self.assertIsInstance(dataset.SimpleGrid.SimpleGrid.data, BaseProxy)
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.baseurl,
                         "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.id,
                         "SimpleGrid.SimpleGrid")
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.dtype,
                         np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (2, 3))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.slice,
                         (slice(None), slice(None)))
        np.testing.assert_array_equal(dataset.SimpleGrid[:],
                                      [[0, 1, 2], [3, 4, 5]])
Exemple #8
0
    def test_grid(self):
        """Test that dataset has the correct data proxies for grids."""
        dataset = DAPHandler("http://localhost:8001/", self.app1).dataset

        self.assertEqual(dataset.keys(), ["SimpleGrid", "x", "y"])
        self.assertEqual(
            dataset.SimpleGrid.keys(), ["SimpleGrid", "x", "y"])

        # test one of the axis
        self.assertIsInstance(dataset.SimpleGrid.x.data, BaseProxy)
        self.assertEqual(
            dataset.SimpleGrid.x.data.baseurl, "http://localhost:8001/")
        self.assertEqual(dataset.SimpleGrid.x.data.id, "SimpleGrid.x")
        self.assertEqual(dataset.SimpleGrid.x.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.x.data.shape, (3,))
        self.assertEqual(
            dataset.SimpleGrid.x.data.slice, (slice(None),))

        # test the grid
        self.assertIsInstance(dataset.SimpleGrid.SimpleGrid.data, BaseProxy)
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.baseurl,
            "http://localhost:8001/")
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.id, "SimpleGrid.SimpleGrid")
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.dtype, np.dtype('>i4'))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (2, 3))
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.slice,
            (slice(None), slice(None)))
Exemple #9
0
def open_url(url, application=None, session=None):
    """Open a remote URL, returning a dataset."""
    dataset = DAPHandler(url, application, session).dataset

    # attach server-side functions
    dataset.functions = Functions(url, application, session)

    return dataset
Exemple #10
0
def open_url(url, application=None, session=None, output_grid=True):
    """
    Open a remote URL, returning a dataset.

    set output_grid to False to retrieve only main arrays and
    never retrieve coordinate axes.
    """
    dataset = DAPHandler(url, application, session, output_grid).dataset

    # attach server-side functions
    dataset.functions = Functions(url, application, session)

    return dataset
Exemple #11
0
def open_url(url, application=None, session=None, output_grid=True):
    """
    Open a remote URL, returning a dataset.

    set output_grid to False to retrieve only main arrays and
    never retrieve coordinate axes.
    """
    dataset = DAPHandler(url, application, session, output_grid).dataset

    # attach server-side functions
    dataset.functions = Functions(url, application, session)

    return dataset
Exemple #12
0
    def test_grid_array_with_projection(self):
        """Test that a grid array can be properly pre sliced."""
        dataset = DAPHandler("http://localhost:8001/?SimpleGrid.SimpleGrid[0]",
                             self.app1).dataset

        # object should be a structure, not a grid
        self.assertEqual(dataset.keys(), ["SimpleGrid"])
        self.assertNotIsInstance(dataset.SimpleGrid, GridType)
        self.assertIsInstance(dataset.SimpleGrid, StructureType)

        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (1, 3))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.slice,
                         (slice(0, 1, 1), slice(0, 3, 1)))
Exemple #13
0
    def test_grid_array_with_projection(self):
        """Test that a grid array can be properly pre sliced."""
        dataset = DAPHandler(
                             "http://localhost:8001/?SimpleGrid.SimpleGrid[0]",
                             self.app1).dataset

        # object should be a structure, not a grid
        self.assertEqual(list(dataset.keys()), ["SimpleGrid"])
        self.assertNotIsInstance(dataset.SimpleGrid, GridType)
        self.assertIsInstance(dataset.SimpleGrid, StructureType)

        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (1, 3))
        self.assertEqual(
            dataset.SimpleGrid.SimpleGrid.data.slice,
            (slice(0, 1, 1), slice(0, 3, 1)))
Exemple #14
0
    def test_grid_map_with_projection(self):
        """Test that a grid map can be properly pre sliced."""
        dataset = DAPHandler("http://localhost:8001/?SimpleGrid.x[0]",
                             self.app1).dataset

        self.assertEqual(dataset.SimpleGrid.x.data.shape, (1, ))
        self.assertEqual(dataset.SimpleGrid.x.data.slice, (slice(0, 1, 1), ))
Exemple #15
0
    def test_base_type_with_projection(self):
        """Test that a sliced proxy can be created for a base type."""
        dataset = DAPHandler("http://localhost:8001/?x[1:1:2]",
                             self.app1).dataset

        self.assertEqual(dataset.x.data.shape, (2, ))
        self.assertEqual(dataset.x.data.slice, (slice(1, 2, 1), ))
Exemple #16
0
    def setUp(self):
        """Create a WSGI app"""
        self.app = BaseHandler(SimpleSequence)
        self.local = SimpleSequence.cast.data

        dataset = DAPHandler("http://localhost:8001/", self.app).dataset
        self.remote = dataset.cast.data
Exemple #17
0
    def test_sequence_with_projection(self):
        """Test projections applied to sequences."""
        dataset = DAPHandler("http://localhost:8001/?cast[1]",
                             self.app2).dataset

        self.assertEqual(dataset.cast.data.slice, (slice(1, 2, 1), ))
        self.assertEqual([tuple(row) for row in dataset.cast],
                         [('2', 200, 10, 500, 1, 15, 35, 100)])
Exemple #18
0
    def setUp(self):
        """Create a WSGI app with array data"""
        dataset = DatasetType("test")
        self.original_data = np.array([["This ", "is "], ["a ", "test"]],
                                      dtype='<U5')
        dataset["s"] = BaseType("s", self.original_data)
        self.app = BaseHandler(dataset)

        self.data = DAPHandler("http://localhost:8001/", self.app).dataset.s
def test_open(simple_data, simple_application):
    """Test that NetCDFHandler can be read through open_url."""
    dataset = DAPHandler("http://localhost:8001/", simple_application).dataset
    dtype = [('index', '<i4'), ('temperature', '<f8'), ('station', 'S40')]
    retrieved_data = list(
        zip(dataset['index'][:], dataset['temperature'].array[:],
            dataset['station'].array[:]))
    np.testing.assert_array_equal(np.array(retrieved_data, dtype=dtype),
                                  np.array(simple_data, dtype=dtype))
Exemple #20
0
def test_open(simple_data, simple_data_file):
    """Test that dataset has the correct data proxies for grids."""
    dataset = DAPHandler("http://localhost:8001/",
                         CSVHandler(simple_data_file)).dataset
    seq = dataset['sequence']
    dtype = [('index', '<i4'), ('temperature', '<f8'), ('site', 'S40')]
    retrieved_data = [line for line in seq]

    np.testing.assert_array_equal(np.array(retrieved_data, dtype=dtype),
                                  np.array(simple_data, dtype=dtype))
 def test_grid_erddap_output_grid_false(self):
     """Test that dataset has the correct data proxies for grids with
        option output_grid set to False and with the ERDDAP behavior."""
     with patch('pydap.handlers.lib.degenerate_grid_to_structure',
                side_effect=(lambda x: x)) as mock_degenerate:
         dataset = DAPHandler("http://localhost:8001/", self.app1,
                              output_grid=False).dataset
         np.testing.assert_array_equal(dataset.SimpleGrid[:],
                                       [[0, 1, 2], [3, 4, 5]])
         assert mock_degenerate.called
Exemple #22
0
 def test_grid_erddap(self):
     """Test that dataset has the correct data proxies for grids
        with the ERDDAP behavior."""
     with patch('pydap.handlers.lib.degenerate_grid_to_structure',
                side_effect=(lambda x: x)) as mock_degenerate:
         dataset = DAPHandler("http://localhost:8001/", self.app1).dataset
         self.assertEqual(
             repr(dataset.SimpleGrid[:]),
             "<GridType with array 'SimpleGrid' and maps 'x', 'y'>")
         assert mock_degenerate.called
Exemple #23
0
    def test_grid_with_projection(self):
        """Test that a sliced proxy can be created for grids."""
        dataset = DAPHandler("http://localhost:8001/?SimpleGrid[0]",
                             self.app1).dataset

        self.assertEqual(dataset.SimpleGrid.x.data.shape, (1, ))
        self.assertEqual(dataset.SimpleGrid.x.data.slice, (slice(0, 1, 1), ))
        self.assertEqual(dataset.SimpleGrid.y.data.shape, (2, ))
        self.assertEqual(dataset.SimpleGrid.y.data.slice, (slice(0, 3, 1), ))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.shape, (1, 3))
        self.assertEqual(dataset.SimpleGrid.SimpleGrid.data.slice,
                         (slice(0, 1, 1), slice(0, 3, 1)))
Exemple #24
0
def open_url(url):
    return DAPHandler(url).dataset