def test_resampling_2(self): region = Region() region.ewres = 5 region.nsres = 5 region.north = 60 region.south = -20 region.east = 60 region.west = -20 region.adjust(rows=True, cols=True) rast = RasterRow(self.name) rast.set_region(region) rast.open(mode='r') """ [nan, nan, nan, nan, nan, nan, nan, nan] [nan, nan, nan, nan, nan, nan, nan, nan] [nan, nan, 11.0, 21.0, 31.0, 41.0, nan, nan] [nan, nan, 12.0, 22.0, 32.0, 42.0, nan, nan] [nan, nan, 13.0, 23.0, 33.0, 43.0, nan, nan] [nan, nan, 14.0, 24.0, 34.0, 44.0, nan, nan] [nan, nan, nan, nan, nan, nan, nan, nan] [nan, nan, nan, nan, nan, nan, nan, nan] """ six.assertCountEqual(self, rast[2].tolist()[2:6], [11., 21., 31., 41.]) six.assertCountEqual(self, rast[5].tolist()[2:6], [14., 24., 34., 44.]) rast.close()
def test_resampling_2(self): region = Region() region.ewres = 5 region.nsres = 5 region.north = 60 region.south = -20 region.east = 60 region.west = -20 region.adjust(rows=True, cols=True) rast = RasterRow(self.name) rast.set_region(region) rast.open(mode='r') """ [nan, nan, nan, nan, nan, nan, nan, nan] [nan, nan, nan, nan, nan, nan, nan, nan] [nan, nan, 11.0, 21.0, 31.0, 41.0, nan, nan] [nan, nan, 12.0, 22.0, 32.0, 42.0, nan, nan] [nan, nan, 13.0, 23.0, 33.0, 43.0, nan, nan] [nan, nan, 14.0, 24.0, 34.0, 44.0, nan, nan] [nan, nan, nan, nan, nan, nan, nan, nan] [nan, nan, nan, nan, nan, nan, nan, nan] """ self.assertItemsEqual(rast[2].tolist()[2:6], [11.,21.,31.,41.]) self.assertItemsEqual(rast[5].tolist()[2:6], [14.,24.,34.,44.]) rast.close()
def test_resampling_to_numpy_img_4(self): region = Region() region.ewres = 0.1 region.nsres = 0.1 region.adjust(rows=True, cols=True) a = raster2numpy_img(self.name, region, color="GRAY2") self.assertEqual(len(a), region.rows * region.cols * 1)
def test_resampling_to_numpy_img_1(self): region = Region() region.ewres = 10 region.nsres = 10 region.adjust(rows=True, cols=True) a = raster2numpy_img(self.name, region) self.assertEqual(len(a), region.rows * region.cols * 4)
def test_resampling_to_numpy_img_4(self): region = Region() region.ewres = 0.1 region.nsres = 0.1 region.adjust(rows=True, cols=True) a = raster2numpy_img(self.name, region, color="GRAY2") self.assertEqual(len(a), region.rows * region.cols*1)
def test_resampling_to_numpy_img_1(self): region = Region() region.ewres = 10 region.nsres = 10 region.adjust(rows=True, cols=True) a = raster2numpy_img(self.name, region) self.assertEqual(len(a), region.rows * region.cols*4)
def _get_raster_image_as_np(lock, conn, data): """Convert a raster map into an image and return a numpy array with RGB or Gray values. :param lock: A multiprocessing.Lock instance :param conn: A multiprocessing.Pipe instance used to send True or False :param data: The list of data entries [function_id, raster_name, extent, color] """ array = None try: name = data[1] mapset = data[2] extent = data[3] color = data[4] mapset = utils.get_mapset_raster(name, mapset) if not mapset: raise ValueError("Unable to find raster map <%s>" % (name)) rast = RasterRow(name, mapset) if rast.exist(): reg = Region() reg.from_rast(name) if extent is not None: if "north" in extent: reg.north = extent["north"] if "south" in extent: reg.south = extent["south"] if "east" in extent: reg.east = extent["east"] if "west" in extent: reg.west = extent["west"] if "rows" in extent: reg.rows = extent["rows"] if "cols" in extent: reg.cols = extent["cols"] reg.adjust() array = raster2numpy_img(name, reg, color) except: raise finally: conn.send(array)
def _get_raster_image_as_np(lock, conn, data): """Convert a raster map into an image and return a numpy array with RGB or Gray values. :param lock: A multiprocessing.Lock instance :param conn: A multiprocessing.Pipe instance used to send True or False :param data: The list of data entries [function_id, raster_name, extent, color] """ array = None try: name = data[1] mapset = data[2] extent = data[3] color = data[4] mapset = utils.get_mapset_raster(name, mapset) if not mapset: raise ValueError("Unable to find raster map <%s>"%(name)) rast = RasterRow(name, mapset) if rast.exist(): reg = Region() reg.from_rast(name) if extent is not None: if "north" in extent: reg.north = extent["north"] if "south" in extent: reg.south = extent["south"] if "east" in extent: reg.east = extent["east"] if "west" in extent: reg.west = extent["west"] if "rows" in extent: reg.rows = extent["rows"] if "cols" in extent: reg.cols = extent["cols"] reg.adjust() array = raster2numpy_img(name, reg, color) except: raise finally: conn.send(array)
def test_resampling_to_QImg_1(self): region = Region() region.from_rast(self.name) region.cols = 320 region.rows = 240 region.adjust() tmpfile = tempfile(False) tmpfile = tmpfile + ".png" a = raster2numpy_img(self.name, region) image = QImage(a.data, region.cols, region.rows, QImage.Format_ARGB32) # image.save("data/a.png") image.save(tmpfile) self.assertFilesEqualMd5(tmpfile, "data/a.png")
def test_resampling_to_QImg_1(self): region = Region() region.from_rast(self.name) region.cols = 320 region.rows = 240 region.adjust() tmpfile = tempfile(False) tmpfile = tmpfile + ".png" a = raster2numpy_img(self.name, region) image = QImage(a.data, region.cols, region.rows, QImage.Format_ARGB32) #image.save("data/a.png") image.save(tmpfile) self.assertFilesEqualMd5(tmpfile, "data/a.png")
def test_resampling_to_QImg_4(self): region = Region() region.from_rast(self.name) region.cols = 400 region.rows = 300 region.adjust() tmpfile = tempfile(False) tmpfile = tmpfile + ".png" array = raster2numpy_img(rastname=self.name, region=region, color="RGB") image = QImage(array.data, region.cols, region.rows, QImage.Format_RGB32) #image.save("data/e.png") image.save(tmpfile) self.assertFilesEqualMd5(tmpfile, "data/e.png")
def test_resampling_1(self): region = Region() region.ewres = 4 region.nsres = 4 region.north = 30 region.south = 10 region.east = 30 region.west = 10 region.adjust(rows=True, cols=True) rast = RasterRow(self.name) rast.set_region(region) rast.open(mode='r') self.assertItemsEqual(rast[0].tolist(), [22,22,22,22,22,32,32,32,32,32]) self.assertItemsEqual(rast[5].tolist(), [23,23,23,23,23,33,33,33,33,33]) rast.close()
def test_resampling_1(self): region = Region() region.ewres = 4 region.nsres = 4 region.north = 30 region.south = 10 region.east = 30 region.west = 10 region.adjust(rows=True, cols=True) rast = RasterRow(self.name) rast.set_region(region) rast.open(mode='r') self.assertItemsEqual(rast[0].tolist(), [22, 22, 22, 22, 22, 32, 32, 32, 32, 32]) self.assertItemsEqual(rast[5].tolist(), [23, 23, 23, 23, 23, 33, 33, 33, 33, 33]) rast.close()
def test_resampling_to_numpy(self): region = Region() region.ewres = 0.1 region.nsres = 0.1 region.adjust() region.set_raster_region() a = raster2numpy(self.name) self.assertEqual(len(a), 400) region.ewres = 1 region.nsres = 1 region.adjust() region.set_raster_region() a = raster2numpy(self.name) self.assertEqual(len(a), 40) region.ewres = 5 region.nsres = 5 region.adjust() region.set_raster_region() a = raster2numpy(self.name) self.assertEqual(len(a), 8)
def test_resampling_to_numpy(self): region = Region() region.ewres = 0.1 region.nsres = 0.1 region.adjust() region.set_raster_region() a = raster2numpy(self.name) self.assertEqual(len(a), 400) region.ewres = 1 region.nsres = 1 region.adjust() region.set_raster_region() a = raster2numpy(self.name) self.assertEqual(len(a), 40) region.ewres = 5 region.nsres = 5 region.adjust() region.set_raster_region() a = raster2numpy(self.name) self.assertEqual(len(a), 8)
def test_resampling_to_QImg_large(self): region = Region() region.from_rast(self.name) region.cols = 4000 region.rows = 3000 region.adjust() tmpfile = tempfile(False) tmpfile = tmpfile + ".png" # With array as argument array = np.ndarray((region.rows*region.cols*4), np.uint8) raster2numpy_img(rastname=self.name, region=region, color="ARGB", array=array) image = QImage(array.data, region.cols, region.rows, QImage.Format_ARGB32) #image.save("data/c.png") image.save(tmpfile) self.assertFilesEqualMd5(tmpfile, "data/c.png")