def test_gdal_calculations_py_4(): ''' Test dataset reads and getattr calls ''' try: from gdal_calculations import Env,Dataset Env.tiled=True f='data/tgc_geo.tif' dsf=Dataset(f) #ReadAsArray() (also a __getattr__ gdal.Dataset method) data=dsf.ReadAsArray() assert data.shape==(100,100), "data.shape==%s"%repr(data.shape) data=None #ReadBlocksAsArray() (gdal_calculations.Dataset method) for block in dsf.ReadBlocksAsArray(): assert block.data.shape==(40,100), "data.shape==%s"%repr(block.data.shape) break del block #__getattr__ np attribute assert dsf.shape==(40,100), "dsf.shape==%s"%repr(dsf.shape) #ReadBlocksAsArray() (gdal_calculations.Dataset method) Env.ntiles=2 for block in dsf.ReadBlocksAsArray(): assert block.data.shape==(80,100), "data.shape==%s"%repr(block.data.shape) break del block Env.ntiles=1 #__getattr__ np method that doesn't return a temp dataset Env.tiled=False s=dsf.sum() assert s==50005000, "dsf.sum()==%s"%repr(s) s=dsf.max() assert s==10000, "dsf.max()==%s"%repr(s) #__getattr__ np method that returns a temp dataset Env.tiled=True s=dsf.astype(np.int32) assert isinstance(s,Dataset), "isinstance(%s,Dataset)!=True"%repr(s) del s #__getattr__ gdal.Dataset method gt=dsf.GetGeoTransform() assert gt==(147.5, 0.01, 0.0, -34.5, 0.0, -0.01), "dsf.GetGeoTransform()==%s"%repr(gt) del gt Env.tiled=True dsf=None return 'success' except ImportError: return 'skip' except AssertionError: return fail() finally:cleanup()