def test_extent(self): # It should work exact same for any projection args = dict(nxny=(9, 9), dxdy=(1, 1), x0y0=(0, 0), proj=wgs84) g1 = Grid(**args) assert_allclose(g1.extent, g1.extent_in_crs(crs=g1.proj), atol=1e-3) args = dict(nxny=(9, 9), dxdy=(30000, 30000), x0y0=(0., 1577463), proj=gis.check_crs('+init=epsg:26915')) g2 = Grid(**args) assert_allclose(g2.extent, g2.extent_in_crs(crs=g2.proj), atol=1e-3) exg = np.array(g2.extent_in_crs(crs=g1)) exgx, exgy = g1.ij_to_crs(exg[[0, 1]], exg[[2, 3]], crs=wgs84) lon, lat = g2.corner_grid.ll_coordinates assert_allclose([np.min(lon), np.min(lat)], [exgx[0], exgy[0]], rtol=0.1) p = g2.extent_as_polygon(crs=g2.proj) assert p.is_valid x, y = p.exterior.coords.xy assert_allclose([np.min(x), np.max(x), np.min(y), np.max(y)], g2.extent)
def test_extent(self): # It should work exact same for any projection args = dict(nxny=(9, 9), dxdy=(1, 1), ll_corner=(0, 0), proj=wgs84) g1 = Grid(**args) assert_allclose(g1.extent, g1.extent_in_crs(crs=g1.proj), atol=1e-3) args = dict(nxny=(9, 9), dxdy=(30000, 30000), ll_corner=(0., 1577463), proj=pyproj.Proj(init='epsg:26915')) g2 = Grid(**args) assert_allclose(g2.extent, g2.extent_in_crs(crs=g2.proj), atol=1e-3) exg = np.array(g2.extent_in_crs(crs=g1)) exgx, exgy = g1.ij_to_crs(exg[[0, 1]], exg[[2, 3]], crs=wgs84) lon, lat = g2.corner_grid.ll_coordinates assert_allclose([np.min(lon), np.min(lat)], [exgx[0], exgy[0]], rtol=0.1)