def test_polygonizeMask(): # test a simple box boxmask = np.array([[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]], dtype=np.bool) g1 = geom.polygonizeMask(boxmask, shrink=None) assert np.isclose(g1.Area(), 8.0) # polygonizeMask: simple area assert g1.GetSpatialReference() is None # polygonizeMask: empty srs # test shrink g1b = geom.polygonizeMask(boxmask, shrink=0.0001) assert np.isclose(g1b.Area(), 7.99984000) # polygonizeMask: shrunk area # test a more complex area complexmask = np.array([[0, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 0, 0, 1, 1], [1, 1, 0, 1, 0], [0, 1, 0, 0, 0]], dtype=np.bool) g2 = geom.polygonizeMask(complexmask, shrink=None, flat=False) assert np.isclose(len(g2), 3) # polygonizeMask: geometry count assert np.isclose(sum([g.Area() for g in g2]), 10.0) # polygonizeMask: area # flatten the complex area g3 = geom.polygonizeMask(complexmask, flat=True, shrink=None) assert np.isclose(g3.Area(), 10.0) # polygonizeMask: flattened area # set a boundary and srs context g4 = geom.polygonizeMask(complexmask, bounds=(-3, 10, 22, 35), srs=EPSG3035, flat=True, shrink=None) assert np.isclose(g4.Area(), 250.0) # polygonizeMask: contexted area assert g4.GetSpatialReference().IsSame( EPSG3035) # error("polygonizeMask: contexted srs
def test_transform(): # test a single point pt = geom.point(7, 48, srs=EPSG4326) t1 = geom.transform(pt, toSRS=EPSG3035) assert np.isclose(t1.GetX(), 4097075.016) assert np.isclose(t1.GetY(), 2769703.15423898) # make a collection of polygons using polygonizeMask complexmask = np.array([[0, 1, 0, 0, 0], [1, 1, 0, 1, 0], [0, 0, 0, 1, 1], [1, 1, 0, 1, 0], [0, 1, 0, 0, 0]], dtype=np.bool) polygons = geom.polygonizeMask(complexmask, bounds=(6, 45, 11, 50), flat=False, srs=EPSG4326, shrink=None) t2 = geom.transform(polygons, toSRS='europe_m', segment=0.1) assert (len(t2) == 3) # "Transform Count assert t2[0].GetSpatialReference().IsSame(EPSG3035) # "Transform srs assert np.isclose(sum([t.Area() for t in t2]), 83747886418.48529) # "Transform Area