Skip to content
Snippets Groups Projects
test_inmemorydata.py 3.15 KiB
Newer Older
Benjamin Jakimow's avatar
Benjamin Jakimow committed
# -*- coding: utf-8 -*-

"""
***************************************************************************

    ---------------------
    Date                 : 30.11.2017
    Copyright            : (C) 2017 by Benjamin Jakimow
    Email                : benjamin jakimow at geo dot hu-berlin dot de
***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************
"""
# noinspection PyPep8Naming

import os, sys, unittest, configparser

from eotimeseriesviewer.tests import initQgisApplication
Benjamin Jakimow's avatar
Benjamin Jakimow committed
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import unittest, tempfile

Benjamin Jakimow's avatar
Benjamin Jakimow committed
QGIS_APP = initQgisApplication()
Benjamin Jakimow's avatar
Benjamin Jakimow committed

class TestInMemoryData(unittest.TestCase):
    """
    Tests for the GDAL/OGR VSI in-memory data
    """

    def test_vsimem_raster(self):

        from osgeo import gdal
        from eotimeseriesviewer.tests import TestObjects
Benjamin Jakimow's avatar
Benjamin Jakimow committed
        from qgis.core import QgsCoordinateReferenceSystem, QgsRasterLayer
        TestObjects.inMemoryImage()
        # create an in-memory raster
        driver = gdal.GetDriverByName('GTiff')
        self.assertIsInstance(driver, gdal.Driver)
        path = '/vsimem/inmemoryraster.tif'
        dataSet = driver.Create(path, 100, 50, bands=3, eType=gdal.GDT_Int16)
        self.assertIsInstance(dataSet, gdal.Dataset)
        c = QgsCoordinateReferenceSystem('EPSG:32632')
        dataSet.SetProjection(c.toWkt())
        dataSet.SetGeoTransform([0, 1.0, 0, \
                                 0, 0, -1.0])
        dataSet.FlushCache()
        dataSet = None

        ds2 = gdal.Open(path)
        self.assertIsInstance(ds2, gdal.Dataset)

        layer = QgsRasterLayer(path)
        self.assertIsInstance(layer, QgsRasterLayer)
        self.assertTrue(layer.isValid())



    def test_vsimem_raster2(self):

Benjamin Jakimow's avatar
Benjamin Jakimow committed
        from osgeo import gdal
        from qgis.core import QgsCoordinateReferenceSystem, QgsRasterLayer

        # create an in-memory raster
        driver = gdal.GetDriverByName('GTiff')
        assert isinstance(driver, gdal.Driver)
        path = '/vsimem/inmemoryraster.tif'
Benjamin Jakimow's avatar
Benjamin Jakimow committed
        dataSet = driver.Create(path, 100, 50, bands=3, eType=gdal.GDT_Int16)
        assert isinstance(dataSet, gdal.Dataset)
        c = QgsCoordinateReferenceSystem('EPSG:32632')
        dataSet.SetProjection(c.toWkt())
        dataSet.SetGeoTransform([0, 1.0, 0, 0, 0, -1.0])
        dataSet.FlushCache()
        dataSet = None
Benjamin Jakimow's avatar
Benjamin Jakimow committed
        ds2 = gdal.Open(path)
        assert isinstance(ds2, gdal.Dataset)
Benjamin Jakimow's avatar
Benjamin Jakimow committed
        layer = QgsRasterLayer(path)
        self.assertIsInstance(layer, QgsRasterLayer)
        self.assertTrue(layer.isValid())
Benjamin Jakimow's avatar
Benjamin Jakimow committed


if __name__ == '__main__':
    unittest.main()
Benjamin Jakimow's avatar
Benjamin Jakimow committed
    print('all tests done in '.format(__file__))
Benjamin Jakimow's avatar
Benjamin Jakimow committed



QGIS_APP.quit()