Skip to content
Snippets Groups Projects
test_sensorvisualization.py 2.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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()