def test_wrap_360(self): row = VectorDimension(value=40.,bounds=[38.,42.]) col = VectorDimension(value=181.5,bounds=[181.,182.]) grid = SpatialGridDimension(row=row,col=col) self.assertEqual(grid.value[1,0,0],181.5) sdim = SpatialDimension(grid=grid,crs=WGS84()) orig_sdim = deepcopy(sdim) orig_grid = deepcopy(sdim.grid) sdim.crs.wrap(sdim) self.assertNumpyAll(np.array(sdim.geom.point.value[0,0]),np.array([-178.5,40.])) self.assertEqual(sdim.geom.polygon.value[0,0].bounds,(-179.0,38.0,-178.0,42.0)) self.assertNumpyNotAll(orig_grid.value,sdim.grid.value) sdim.crs.unwrap(sdim) to_test = ([sdim.grid.value,orig_sdim.grid.value],[sdim.get_grid_bounds(),orig_sdim.get_grid_bounds()]) for tt in to_test: self.assertNumpyAll(*tt)
def test_grid_value(self): for b in [True,False]: row = self.get_row(bounds=b) col = self.get_col(bounds=b) sdim = SpatialDimension(row=row,col=col) col_test,row_test = np.meshgrid(col.value,row.value) self.assertNumpyAll(sdim.grid.value[0].data,row_test) self.assertNumpyAll(sdim.grid.value[1].data,col_test) self.assertFalse(sdim.grid.value.mask.any()) try: ret = sdim.get_grid_bounds() self.assertEqual(ret.shape,(3,4,4)) self.assertFalse(ret.mask.any()) except ImproperPolygonBoundsError: if b is False: pass else: raise