コード例 #1
0
    def test_from_xarray(self):
        # numerical
        x = xr.DataArray([0, 1, 2], name="lat")
        c = ArrayCoordinates1d.from_xarray(x)
        assert c.name == "lat"
        assert_equal(c.coordinates, x.data)

        # datetime
        x = xr.DataArray(
            [np.datetime64("2018-01-01"),
             np.datetime64("2018-01-02")],
            name="time")
        c = ArrayCoordinates1d.from_xarray(x)
        assert c.name == "time"
        assert_equal(c.coordinates, x.data)

        # unnamed
        x = xr.DataArray([0, 1, 2])
        c = ArrayCoordinates1d.from_xarray(x)
        assert c.name is None
コード例 #2
0
    def test_from_xarray(self):
        # numerical
        x = xr.DataArray([0, 1, 2], name='lat')
        c = ArrayCoordinates1d.from_xarray(x, ctype='point')
        assert c.name == 'lat'
        assert c.ctype == 'point'
        assert_equal(c.coordinates, x.data)

        # datetime
        x = xr.DataArray(
            [np.datetime64('2018-01-01'),
             np.datetime64('2018-01-02')],
            name='time')
        c = ArrayCoordinates1d.from_xarray(x, ctype='point')
        assert c.name == 'time'
        assert c.ctype == 'point'
        assert_equal(c.coordinates, x.data)

        # unnamed
        x = xr.DataArray([0, 1, 2])
        c = ArrayCoordinates1d.from_xarray(x)
        assert c.name is None
コード例 #3
0
    def from_xarray(cls,
                    xcoord,
                    coord_ref_sys=None,
                    ctype=None,
                    distance_units=None):
        """
        Create podpac Coordinates from xarray coords.

        Arguments
        ---------
        xcoord : xarray.core.coordinates.DataArrayCoordinates
            xarray coords
        coord_ref_sys : str, optional
            Default coordinates reference system
        ctype : str, optional
            Default coordinates type. One of 'point', 'midpoint', 'left', 'right'.
        distance_units : Units
            Default distance units.

        Returns
        -------
        :class:`Coordinates`
            podpac Coordinates
        """

        if not isinstance(xcoord,
                          xarray.core.coordinates.DataArrayCoordinates):
            raise TypeError(
                "Coordinates.from_xarray expects xarray DataArrayCoordinates, not '%s'"
                % type(xcoord))

        coords = []
        for dim in xcoord.dims:
            if isinstance(xcoord.indexes[dim],
                          (pd.DatetimeIndex, pd.Float64Index, pd.Int64Index)):
                c = ArrayCoordinates1d.from_xarray(xcoord[dim])
            elif isinstance(xcoord.indexes[dim], pd.MultiIndex):
                c = StackedCoordinates.from_xarray(xcoord[dim])
            coords.append(c)

        return cls(coords,
                   coord_ref_sys=coord_ref_sys,
                   ctype=ctype,
                   distance_units=distance_units)