def test__get_intersection(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.assertRaises(TypeError, lambda: zdb._get_intersection()) np.testing.assert_equal(zdb._get_intersection(trg=self.box3), [self.box5]) np.testing.assert_equal(zdb._get_intersection(idx=0), [self.box5]) self.assertRaises(TypeError, lambda: zdb._get_intersection(idx=2)) zdb = zonalstats.ZonalDataBase(self.src, [self.box7], srs=self.proj) zdb.trg = None self.assertRaises(TypeError, lambda: zdb._get_intersection(idx=0))
def test__get_intersection(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) with pytest.raises(TypeError): zdb._get_intersection() np.testing.assert_equal(zdb._get_intersection(trg=self.box3), [self.box5]) np.testing.assert_equal(zdb._get_intersection(idx=0), [self.box5]) with pytest.raises(TypeError): zdb._get_intersection(idx=2) zdb = zonalstats.ZonalDataBase(self.src, [self.box7], srs=self.proj) zdb.trg = None with pytest.raises(TypeError): zdb._get_intersection(idx=0)
def test___init__(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert isinstance(zdb.src, zonalstats.DataSource) assert isinstance(zdb.trg, zonalstats.DataSource) assert isinstance(zdb.dst, zonalstats.DataSource) assert zdb._count_intersections == 2 zd = zonalstats.DataSource(self.src, name="src", srs=self.proj) zdb = zonalstats.ZonalDataBase(zd, self.trg, srs=self.proj) assert isinstance(zdb.src, zonalstats.DataSource) assert isinstance(zdb.trg, zonalstats.DataSource) assert isinstance(zdb.dst, zonalstats.DataSource) assert zdb._count_intersections == 2 zd1 = zonalstats.DataSource(self.src, name="src", srs=self.proj) zd2 = zonalstats.DataSource(self.trg, name="trg", srs=self.proj) zdb = zonalstats.ZonalDataBase(zd1, zd2, srs=self.proj) assert isinstance(zdb.src, zonalstats.DataSource) assert isinstance(zdb.trg, zonalstats.DataSource) assert isinstance(zdb.dst, zonalstats.DataSource) assert zdb._count_intersections == 2
def test___init__(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.assertIsInstance(zdb.src, zonalstats.DataSource) self.assertIsInstance(zdb.trg, zonalstats.DataSource) self.assertIsInstance(zdb.dst, zonalstats.DataSource) self.assertEqual(zdb._count_intersections, 2) zd = zonalstats.DataSource(self.src, name='src', srs=self.proj) zdb = zonalstats.ZonalDataBase(zd, self.trg, srs=self.proj) self.assertIsInstance(zdb.src, zonalstats.DataSource) self.assertIsInstance(zdb.trg, zonalstats.DataSource) self.assertIsInstance(zdb.dst, zonalstats.DataSource) self.assertEqual(zdb._count_intersections, 2) zd1 = zonalstats.DataSource(self.src, name='src', srs=self.proj) zd2 = zonalstats.DataSource(self.trg, name='trg', srs=self.proj) zdb = zonalstats.ZonalDataBase(zd1, zd2, srs=self.proj) self.assertIsInstance(zdb.src, zonalstats.DataSource) self.assertIsInstance(zdb.trg, zonalstats.DataSource) self.assertIsInstance(zdb.dst, zonalstats.DataSource) self.assertEqual(zdb._count_intersections, 2)
def setUp(self): # GK3-Projection self.proj = osr.SpatialReference() self.proj.ImportFromEPSG(31466) # create synthetic box self.box0 = np.array([[2600000., 5630000.], [2600000., 5640000.], [2610000., 5640000.], [2610000., 5630000.], [2600000., 5630000.]]) self.box1 = np.array([[2610000., 5630000.], [2610000., 5640000.], [2620000., 5640000.], [2620000., 5630000.], [2610000., 5630000.]]) self.box3 = np.array([[2595000., 5625000.], [2595000., 5635000.], [2605000., 5635000.], [2605000., 5625000.], [2595000., 5625000.]]) self.box4 = np.array([[2615000., 5635000.], [2615000., 5645000.], [2625000., 5645000.], [2625000., 5635000.], [2615000., 5635000.]]) self.box5 = np.array([[2600000., 5635000.], [2605000., 5635000.], [2605000., 5630000.], [2600000., 5630000.], [2600000., 5635000.]]) self.box6 = np.array([[2615000., 5635000.], [2615000., 5640000.], [2620000., 5640000.], [2620000., 5635000.], [2615000., 5635000.]]) self.box7 = np.array([[2715000., 5635000.], [2715000., 5640000.], [2720000., 5640000.], [2720000., 5635000.], [2715000., 5635000.]]) self.src = np.array([self.box0, self.box1]) self.trg = np.array([self.box3, self.box4]) self.dst = np.array([[self.box5], [self.box6]]) self.zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.f = tempfile.NamedTemporaryFile(mode='w+b').name self.zdb.dump_vector(self.f)
def setUp(self): # GK3-Projection self.proj = osr.SpatialReference() self.proj.ImportFromEPSG(31466) # create synthetic box self.box0 = np.array([[2600000., 5630000.], [2600000., 5640000.], [2610000., 5640000.], [2610000., 5630000.], [2600000., 5630000.]]) self.box1 = np.array([[2610000., 5630000.], [2610000., 5640000.], [2620000., 5640000.], [2620000., 5630000.], [2610000., 5630000.]]) self.box3 = np.array([[2595000., 5625000.], [2595000., 5635000.], [2605000., 5635000.], [2605000., 5625000.], [2595000., 5625000.]]) self.box4 = np.array([[2615000., 5635000.], [2615000., 5645000.], [2625000., 5645000.], [2625000., 5635000.], [2615000., 5635000.]]) self.box5 = np.array([[2600000., 5635000.], [2605000., 5635000.], [2605000., 5630000.], [2600000., 5630000.], [2600000., 5635000.]]) self.box6 = np.array([[2615000., 5635000.], [2615000., 5640000.], [2620000., 5640000.], [2620000., 5635000.], [2615000., 5635000.]]) self.box7 = np.array([[2715000., 5635000.], [2715000., 5640000.], [2720000., 5640000.], [2720000., 5635000.], [2715000., 5635000.]]) self.src = np.array([self.box0, self.box1]) self.trg = np.array([self.box3, self.box4]) self.dst = np.array([[self.box5], [self.box6]]) self.zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.zdp = zonalstats.ZonalDataPoly(self.src, self.trg, srs=self.proj)
def test_load_vector(self): zonalstats.ZonalDataBase(self.f)
def test_dump_vector(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) f = tempfile.NamedTemporaryFile(mode='w+b').name zdb.dump_vector(f)
def test_get_source_index(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.assertEqual(zdb.get_source_index(0), 0) self.assertEqual(zdb.get_source_index(1), 1)
def test_get_isec(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) np.testing.assert_equal(zdb.get_isec(0), [self.box5]) np.testing.assert_equal(zdb.get_isec(1), [self.box6])
def test_isecs(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) np.testing.assert_equal(zdb.isecs, self.dst)
def test_count_intersections(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.assertEqual(zdb.count_intersections, 2)
class TestZonalStatsBase: # GK3-Projection proj = osr.SpatialReference() proj.ImportFromEPSG(31466) # create synthetic box box0 = np.array([ [2600000.0, 5630000.0], [2600000.0, 5640000.0], [2610000.0, 5640000.0], [2610000.0, 5630000.0], [2600000.0, 5630000.0], ]) box1 = np.array([ [2610000.0, 5630000.0], [2610000.0, 5640000.0], [2620000.0, 5640000.0], [2620000.0, 5630000.0], [2610000.0, 5630000.0], ]) box3 = np.array([ [2595000.0, 5625000.0], [2595000.0, 5635000.0], [2605000.0, 5635000.0], [2605000.0, 5625000.0], [2595000.0, 5625000.0], ]) box4 = np.array([ [2615000.0, 5635000.0], [2615000.0, 5645000.0], [2625000.0, 5645000.0], [2625000.0, 5635000.0], [2615000.0, 5635000.0], ]) box5 = np.array([ [2600000.0, 5635000.0], [2605000.0, 5635000.0], [2605000.0, 5630000.0], [2600000.0, 5630000.0], [2600000.0, 5635000.0], ]) box6 = np.array([ [2615000.0, 5635000.0], [2615000.0, 5640000.0], [2620000.0, 5640000.0], [2620000.0, 5635000.0], [2615000.0, 5635000.0], ]) box7 = np.array([ [2715000.0, 5635000.0], [2715000.0, 5640000.0], [2720000.0, 5640000.0], [2720000.0, 5635000.0], [2715000.0, 5635000.0], ]) src = np.array([box0, box1]) trg = np.array([box3, box4]) dst = np.array([[box5], [box6]]) zdb = zonalstats.ZonalDataBase(src, trg, srs=proj) zdp = zonalstats.ZonalDataPoly(src, trg, srs=proj) def test__init__(self): with pytest.raises(NotImplementedError): zonalstats.ZonalStatsBase(self.zdb) zonalstats.ZonalStatsBase(self.zdp) with pytest.raises(TypeError): zonalstats.ZonalStatsBase("test") with pytest.raises(TypeError): zonalstats.ZonalStatsBase() with pytest.raises(TypeError): zonalstats.ZonalStatsBase(ix=np.arange(10), w=np.arange(11)) def test_w(self): zdp = zonalstats.ZonalStatsBase(self.zdp) np.testing.assert_equal(zdp.w, np.array([[25000000.0], [25000000.0]])) np.testing.assert_equal(zdp.ix, np.array([[0], [1]])) def test__check_vals(self): zdp = zonalstats.ZonalStatsBase(self.zdp) with pytest.raises(AssertionError): zdp._check_vals(np.arange(3)) def test_mean(self): zdp = zonalstats.ZonalStatsBase(self.zdp) np.testing.assert_equal(zdp.mean(np.arange(10, 21, 10)), np.array([10, 20])) def test_var(self): zdp = zonalstats.ZonalStatsBase(self.zdp) np.testing.assert_equal(zdp.var(np.arange(10, 21, 10)), np.array([0, 0]))
class TestZonalDataPoint: # GK3-Projection proj = osr.SpatialReference() proj.ImportFromEPSG(31466) # create synthetic box point0 = np.array([2600000.0, 5630000.0]) point1 = np.array([2620000.0, 5640000.0]) box3 = np.array([ [2595000.0, 5625000.0], [2595000.0, 5635000.0], [2605000.0, 5635000.0], [2605000.0, 5625000.0], [2595000.0, 5625000.0], ]) box4 = np.array([ [2615000.0, 5635000.0], [2615000.0, 5645000.0], [2625000.0, 5645000.0], [2625000.0, 5635000.0], [2615000.0, 5635000.0], ]) box5 = np.array([ [2600000.0, 5635000.0], [2605000.0, 5635000.0], [2605000.0, 5630000.0], [2600000.0, 5630000.0], [2600000.0, 5635000.0], ]) box6 = np.array([ [2615000.0, 5635000.0], [2615000.0, 5640000.0], [2620000.0, 5640000.0], [2620000.0, 5635000.0], [2615000.0, 5635000.0], ]) box7 = np.array([ [2715000.0, 5635000.0], [2715000.0, 5640000.0], [2720000.0, 5640000.0], [2720000.0, 5635000.0], [2715000.0, 5635000.0], ]) src = np.array([point0, point1]) trg = np.array([box3, box4]) dst = np.array([[point0], [point1]]) zdb = zonalstats.ZonalDataBase(src, trg, srs=proj) f = tempfile.NamedTemporaryFile(mode="w+b").name zdb.dump_vector(f) def test__get_idx_weights(self): zdp = zonalstats.ZonalDataPoint(self.src, self.trg, srs=self.proj) assert zdp._get_idx_weights() == ( [np.array([0]), np.array([1])], [np.array([1.0]), np.array([1.0])], )
def test_get_source_index(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert zdb.get_source_index(0) == 0 assert zdb.get_source_index(1) == 1
def test_srs(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert zdb.srs == self.proj
def test_srs(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) self.assertEqual(zdb.srs, self.proj)
class TestZonalDataBase: # GK3-Projection proj = osr.SpatialReference() proj.ImportFromEPSG(31466) # create synthetic box box0 = np.array([ [2600000.0, 5630000.0], [2600000.0, 5640000.0], [2610000.0, 5640000.0], [2610000.0, 5630000.0], [2600000.0, 5630000.0], ]) box1 = np.array([ [2610000.0, 5630000.0], [2610000.0, 5640000.0], [2620000.0, 5640000.0], [2620000.0, 5630000.0], [2610000.0, 5630000.0], ]) box3 = np.array([ [2595000.0, 5625000.0], [2595000.0, 5635000.0], [2605000.0, 5635000.0], [2605000.0, 5625000.0], [2595000.0, 5625000.0], ]) box4 = np.array([ [2615000.0, 5635000.0], [2615000.0, 5645000.0], [2625000.0, 5645000.0], [2625000.0, 5635000.0], [2615000.0, 5635000.0], ]) box5 = np.array([ [2600000.0, 5635000.0], [2605000.0, 5635000.0], [2605000.0, 5630000.0], [2600000.0, 5630000.0], [2600000.0, 5635000.0], ]) box6 = np.array([ [2615000.0, 5635000.0], [2615000.0, 5640000.0], [2620000.0, 5640000.0], [2620000.0, 5635000.0], [2615000.0, 5635000.0], ]) box7 = np.array([ [2715000.0, 5635000.0], [2715000.0, 5640000.0], [2720000.0, 5640000.0], [2720000.0, 5635000.0], [2715000.0, 5635000.0], ]) src = np.array([box0, box1]) trg = np.array([box3, box4]) dst = np.array([[box5], [box6]]) zdb = zonalstats.ZonalDataBase(src, trg, srs=proj) f = tempfile.NamedTemporaryFile(mode="w+b").name zdb.dump_vector(f) def test___init__(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert isinstance(zdb.src, zonalstats.DataSource) assert isinstance(zdb.trg, zonalstats.DataSource) assert isinstance(zdb.dst, zonalstats.DataSource) assert zdb._count_intersections == 2 zd = zonalstats.DataSource(self.src, name="src", srs=self.proj) zdb = zonalstats.ZonalDataBase(zd, self.trg, srs=self.proj) assert isinstance(zdb.src, zonalstats.DataSource) assert isinstance(zdb.trg, zonalstats.DataSource) assert isinstance(zdb.dst, zonalstats.DataSource) assert zdb._count_intersections == 2 zd1 = zonalstats.DataSource(self.src, name="src", srs=self.proj) zd2 = zonalstats.DataSource(self.trg, name="trg", srs=self.proj) zdb = zonalstats.ZonalDataBase(zd1, zd2, srs=self.proj) assert isinstance(zdb.src, zonalstats.DataSource) assert isinstance(zdb.trg, zonalstats.DataSource) assert isinstance(zdb.dst, zonalstats.DataSource) assert zdb._count_intersections == 2 def test_count_intersections(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert zdb.count_intersections == 2 def test_srs(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert zdb.srs == self.proj def test_isecs(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) np.testing.assert_equal(zdb.isecs, self.dst) def test_get_isec(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) np.testing.assert_equal(zdb.get_isec(0), [self.box5]) np.testing.assert_equal(zdb.get_isec(1), [self.box6]) def test_get_source_index(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) assert zdb.get_source_index(0) == 0 assert zdb.get_source_index(1) == 1 def test_dump_vector(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) f = tempfile.NamedTemporaryFile(mode="w+b").name zdb.dump_vector(f) def test_load_vector(self): zonalstats.ZonalDataBase(self.f) def test__get_intersection(self): zdb = zonalstats.ZonalDataBase(self.src, self.trg, srs=self.proj) with pytest.raises(TypeError): zdb._get_intersection() np.testing.assert_equal(zdb._get_intersection(trg=self.box3), [self.box5]) np.testing.assert_equal(zdb._get_intersection(idx=0), [self.box5]) with pytest.raises(TypeError): zdb._get_intersection(idx=2) zdb = zonalstats.ZonalDataBase(self.src, [self.box7], srs=self.proj) zdb.trg = None with pytest.raises(TypeError): zdb._get_intersection(idx=0)