def test_ignored_interpolation_params_issue340(self, caplog): node = Array( source=[0, 1, 2], coordinates=Coordinates([[0, 2, 1]], dims=["time"]), interpolation={"method": "nearest", "params": {"fake_param": 1.1, "spatial_tolerance": 1}}, ) with warnings.catch_warnings(): warnings.filterwarnings("ignore", category=DeprecationWarning) node.eval(Coordinates([[0.5, 1.5]], ["time"])) assert "interpolation parameter 'fake_param' was ignored" in caplog.text assert "interpolation parameter 'spatial_tolerance' was ignored" not in caplog.text
def test_get_data(self): """ defined get_data function""" node = Array(source=self.data, coordinates=self.coordinates) output = node.eval(self.coordinates) assert isinstance(output, UnitsDataArray) assert output.values[0, 0] == self.data[0, 0] assert output.values[4, 5] == self.data[4, 5]
def test_stacked_coords_with_partial_dims_issue123(self): node = Array( source=[0, 1, 2], coordinates=Coordinates( [[[0, 2, 1], [10, 12, 11], ["2018-01-01", "2018-01-02", "2018-01-03"]]], dims=["lat_lon_time"] ), interpolation="nearest", ) # unstacked or and stacked requests without time o1 = node.eval(Coordinates([[0.5, 1.5], [10.5, 11.5]], dims=["lat", "lon"])) o2 = node.eval(Coordinates([[[0.5, 1.5], [10.5, 11.5]]], dims=["lat_lon"])) assert_array_equal(o1.data, [[0, 2], [2, 1]]) assert_array_equal(o2.data, [0, 1]) # request without lat or lon o3 = node.eval(Coordinates(["2018-01-01"], dims=["time"])) assert o3.data[0] == 0
def test_get_data_multiple(self): data = np.random.rand(11, 11, 2) node = Array(source=data, coordinates=self.coordinates, outputs=["a", "b"]) output = node.eval(self.coordinates) assert isinstance(output, UnitsDataArray) assert output.dims == ("lat", "lon", "output") np.testing.assert_array_equal(output["output"], ["a", "b"]) np.testing.assert_array_equal(output.sel(output="a"), data[:, :, 0]) np.testing.assert_array_equal(output.sel(output="b"), data[:, :, 1]) node = Array(source=data, coordinates=self.coordinates, outputs=["a", "b"], output="b") output = node.eval(self.coordinates) assert isinstance(output, UnitsDataArray) assert output.dims == ("lat", "lon") np.testing.assert_array_equal(output, data[:, :, 1])
def test_interpolation_mixin(self): class InterpArray(InterpolationMixin, ArrayBase): pass data = np.random.rand(4, 5) native_coords = Coordinates([np.linspace(0, 3, 4), np.linspace(0, 4, 5)], ["lat", "lon"]) coords = Coordinates([np.linspace(0, 3, 7), np.linspace(0, 4, 9)], ["lat", "lon"]) iarr_src = InterpArray(source=data, coordinates=native_coords, interpolation="bilinear") arr_src = Array(source=data, coordinates=native_coords, interpolation="bilinear") arrb_src = ArrayBase(source=data, coordinates=native_coords) iaso = iarr_src.eval(coords) aso = arr_src.eval(coords) abso = arrb_src.eval(coords) np.testing.assert_array_equal(iaso.data, aso.data) np.testing.assert_array_equal(abso.data, data)
def setup_module(): global coords, source, data, multisource, bdata coords = podpac.Coordinates( [ podpac.clinspace(0, 1, 10), podpac.clinspace(0, 1, 10), podpac.crange("2018-01-01", "2018-01-10", "1,D") ], dims=["lat", "lon", "time"], ) a = np.random.random(coords.shape) a[3, 0, 0] = np.nan a[0, 3, 0] = np.nan a[0, 0, 3] = np.nan source = Array(source=a, coordinates=coords) data = source.eval(coords) ab = np.stack([a, 2 * a], -1) multisource = Array(source=ab, coordinates=coords, outputs=["a", "b"]) bdata = 2 * data