Skip to content
Snippets Groups Projects
test_sensorvisualization.py 2.25 KiB
Newer Older
# coding=utf-8
"""Tests QGIS plugin init."""

import os
import unittest
import example
import example.Images
from osgeo import gdal, ogr, osr
from eotimeseriesviewer.utils import file_search
from eotimeseriesviewer.tests import TestObjects
from eotimeseriesviewer.timeseries import *
from eotimeseriesviewer.tests import initQgisApplication
from eotimeseriesviewer.sensorvisualization import *
app = initQgisApplication()

class TestInit(unittest.TestCase):


    def createTestDatasets(self):

        vsiDir = '/vsimem/tmp'
        from eotimeseriesviewer.temporalprofiles2d import date2num
        ns = 50
        nl = 100

        r1 = np.arange('2000-01-01', '2005-06-14', step=np.timedelta64(16, 'D'), dtype=np.datetime64)
        r2 = np.arange('2000-01-01', '2005-06-14', step=np.timedelta64(8, 'D'), dtype=np.datetime64)
        drv = gdal.GetDriverByName('ENVI')

        crs = osr.SpatialReference()
        crs.ImportFromEPSG(32633)

        assert isinstance(drv, gdal.Driver)
        datasets = []

        for i, r in enumerate([r1, r2]):
            p = '{}tmpstack{}.bsq'.format(vsiDir, i+1)

            ds = drv.Create(p, ns, nl, len(r), eType=gdal.GDT_Float32)
            assert isinstance(ds, gdal.Dataset)

            ds.SetProjection(crs.ExportToWkt())

            dateString = ','.join([str(d) for d in r])
            dateString = '{{{}}}'.format(dateString)
            ds.SetMetadataItem('wavelength', dateString, 'ENVI')

            for b, date in enumerate(r):
                decimalYear = date2num(date)

                band = ds.GetRasterBand(b+1)
                assert isinstance(band, gdal.Band)
                band.Fill(decimalYear)
            ds.FlushCache()
            datasets.append(p)

        return datasets

    def createTimeSeries(self)->TimeSeries:

        pathes = [example.Images.Img_2014_01_15_LC82270652014015LGN00_BOA,
                  example.Images.Img_2014_04_29_LE72270652014119CUB00_BOA,
                  example.Images.re_2014_06_25
                ]

        TS = TimeSeries()
        model = SensorListModel(TS)
        self.assertTrue(model.rowCount() == 0)

        TS.addSources(pathes)
        self.assertTrue(len(TS) == len(pathes))

        self.assertTrue(model.rowCount() == 2)




if __name__ == '__main__':
    unittest.main()