12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # -*- coding: utf-8 -*-
- """
- Created on Thu Jul 30 18:27:22 2015
- @author: lucadelu
- """
- from grass.gunittest.case import TestCase
- from grass.gunittest.main import test
- from numpy.random import random
- from grass.pygrass.raster import raster2numpy, numpy2raster, RasterRow
- def check_raster(name):
- r = RasterRow(name)
- try:
- r.open(mode='r')
- r.close()
- return True
- except:
- return False
- class NumpyTestCase(TestCase):
- name = "RasterRowTestCase_map"
- @classmethod
- def setUpClass(cls):
- """Create test raster map and region"""
- cls.use_temp_region()
- cls.runModule("g.region", n=40, s=0, e=60, w=0, res=1)
- cls.runModule("r.mapcalc",
- expression="%s = float(row() + (10.0 * col()))" % (cls.name),
- overwrite=True)
- cls.numpy_obj = raster2numpy(cls.name)
- @classmethod
- def tearDownClass(cls):
- """Remove the generated vector map, if exist"""
- cls.runModule("g.remove", flags='f', type='raster',
- name=cls.name)
- cls.del_temp_region()
- def test_type(self):
- self.assertTrue(str(self.numpy_obj.dtype), 'float32')
- def test_len(self):
- self.assertTrue(len(self.numpy_obj), 40)
- self.assertTrue(len(self.numpy_obj[0]), 60)
- def test_write(self):
- ran = random([40, 60])
- numpy2raster(ran, 'FCELL', self.name, True)
- self.assertTrue(check_raster(self.name))
- if __name__ == '__main__':
- test()
|