コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
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)
コード例 #8
0
ファイル: __init__.py プロジェクト: rashadkm/grass_cmake
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)
コード例 #9
0
    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")
コード例 #10
0
    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")
コード例 #11
0
    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")
コード例 #12
0
 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()
コード例 #13
0
 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()
コード例 #14
0
    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)
コード例 #15
0
    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)
コード例 #16
0
    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")