test_raster_region.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. # -*- coding: utf-8
  2. from grass.gunittest.case import TestCase
  3. from grass.gunittest.main import test
  4. from unittest import skip
  5. from grass.pygrass.raster import RasterRow
  6. from grass.pygrass.gis.region import Region
  7. class RasterRowRegionTestCase(TestCase):
  8. name = "RasterRowRegionTestCase_map"
  9. @classmethod
  10. def setUpClass(cls):
  11. """Create test raster map and region"""
  12. cls.use_temp_region()
  13. cls.runModule("g.region", n=40, s=0, e=40, w=0, res=10)
  14. cls.runModule("r.mapcalc", expression="%s = row() + (10.0 * col())"%(cls.name),
  15. overwrite=True)
  16. @classmethod
  17. def tearDownClass(cls):
  18. """Remove the generated vector map, if exist"""
  19. cls.runModule("g.remove", flags='f', type='raster',
  20. name=cls.name)
  21. cls.del_temp_region()
  22. def test_resampling_1(self):
  23. region = Region()
  24. region.ewres = 4
  25. region.nsres = 4
  26. region.north = 30
  27. region.south = 10
  28. region.east = 30
  29. region.west = 10
  30. region.adjust(rows=True, cols=True)
  31. rast = RasterRow(self.name)
  32. rast.set_region(region)
  33. rast.open(mode='r')
  34. self.assertItemsEqual(rast[0].tolist(), [22,22,22,22,22,32,32,32,32,32])
  35. self.assertItemsEqual(rast[5].tolist(), [23,23,23,23,23,33,33,33,33,33])
  36. rast.close()
  37. def test_resampling_2(self):
  38. region = Region()
  39. region.ewres = 5
  40. region.nsres = 5
  41. region.north = 60
  42. region.south = -20
  43. region.east = 60
  44. region.west = -20
  45. region.adjust(rows=True, cols=True)
  46. rast = RasterRow(self.name)
  47. rast.set_region(region)
  48. rast.open(mode='r')
  49. """
  50. [nan, nan, nan, nan, nan, nan, nan, nan]
  51. [nan, nan, nan, nan, nan, nan, nan, nan]
  52. [nan, nan, 11.0, 21.0, 31.0, 41.0, nan, nan]
  53. [nan, nan, 12.0, 22.0, 32.0, 42.0, nan, nan]
  54. [nan, nan, 13.0, 23.0, 33.0, 43.0, nan, nan]
  55. [nan, nan, 14.0, 24.0, 34.0, 44.0, nan, nan]
  56. [nan, nan, nan, nan, nan, nan, nan, nan]
  57. [nan, nan, nan, nan, nan, nan, nan, nan]
  58. """
  59. self.assertItemsEqual(rast[2].tolist()[2:6], [11.,21.,31.,41.])
  60. self.assertItemsEqual(rast[5].tolist()[2:6], [14.,24.,34.,44.])
  61. rast.close()
  62. if __name__ == '__main__':
  63. test()