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
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
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)