Newer
Older
import os, re, io, importlib, uuid, unittest
import qgis.testing
from unittest import TestCase
from eotimeseriesviewer import *
from eotimeseriesviewer.utils import *
DIR_SENTINEL = r''
DIR_PLEIADES = r'H:\Pleiades'
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
DIR_LANDSAT = jp(DIR_EXAMPLES, 'Images')
DIR_VRT = r'O:\SenseCarbonProcessing\BJ_NOC\01_RasterData\02_CuttedVRT'
class TestFileFormatLoading(TestCase):
@classmethod
def setUpClass(cls):
cls.TS = TimeSeries()
if False:
cls.savedStdOut = sys.stdout
cls.savedStdIn = sys.stdin
cls.stdout = io.StringIO()
cls.stderr = io.StringIO()
sys.stdout = cls.stdout
sys.stderr = cls.stderr
@classmethod
def tearDownClass(cls):
pass
#sys.stdout = cls.stdout
#sys.stderr = cls.stderr
def setUp(self):
self.TS.clear()
def tearDown(self):
self.TS.clear()
def test_loadRapidEyeLocal(self):
# load RapidEye
searchDir = jp(DIR_EXAMPLES, 'Images')
if not os.path.isdir(searchDir):
print('data directory undefined. skip test.')
return

Benjamin Jakimow
committed
files = list(file_search(searchDir, 're_*.tif', recursive=True))
for file in files:
tss = TimeSeriesSource.create(file)
self.assertIsInstance(tss, TimeSeriesSource)
self.assertEqual(len(files), len(self.TS))
def test_loadLandsat(self):
searchDir = DIR_LANDSAT
if not os.path.isdir(searchDir):
print('DIR_LANDSAT undefined. skip test.')
return
files = list(file_search(searchDir, '*_L*_BOA.bsq'))[0:3]
self.assertEqual(len(files), len(self.TS))
s = ""

Benjamin Jakimow
committed
def test_loadOSARIS_GRD(self):
testDir = r'Q:\Processing_BJ\99_OSARIS_Testdata\Loibl-2019-OSARIS-Ala-Archa\Coherences'
if os.path.isdir(testDir):
files = file_search(testDir, re.compile(r'.*\.grd$'))
for i, path in enumerate(files):
tss = TimeSeriesSource.create(path)
self.assertIsInstance(tss, TimeSeriesSource)
self.assertTrue(tss.crs().isValid())
self.TS.addSources([path], runAsync=False)
self.assertEqual(len(self.TS), i+1)
tss = self.TS[0][0]
self.assertIsInstance(tss, TimeSeriesSource)
sensor = self.TS[0].sensor()
self.assertIsInstance(sensor, SensorInstrument)
def test_ForceLevel2(self):
path = r'J:\diss_bj\level2\s-america\X0050_Y0025\20140601_LEVEL2_LND08_BOA.tif'
path = r'J:\diss_bj\level2\s-america\X0049_Y0025\20140531_LEVEL2_LND07_BOA.tif'
testData = r'J:\diss_bj\level2\s-america\X0049_Y0025'
if os.path.isdir(testData):
files = list(file_search(testData, '*IMP.tif'))
for i, path in enumerate(files):
self.TS.addSources([path], runAsync=False)
self.assertEqual(len(self.TS), i + 1)
tss = self.TS[0][0]
self.assertIsInstance(tss, TimeSeriesSource)
sensor = self.TS[0].sensor()
self.assertIsInstance(sensor, SensorInstrument)
def test_badtimeformat(self):
p = r'C:\Users\geo_beja\Desktop\23042014_LEVEL2_LND08_VZN.tif'
if os.path.isfile(p):
tss = TimeSeriesSource.create(p)
s = ""
def test_nestedVRTs(self):
# load VRTs pointing to another VRT pointing to Landsat imagery
searchDir = DIR_VRT
if not os.path.isdir(searchDir):
print('DIR_VRT undefined. skip test.')
return
files = list(file_search(searchDir, '*BOA.vrt', recursive=True))[0:3]
self.assertEqual(len(files), len(self.TS))
def test_loadRapidEye(self):
# load RapidEye
searchDir =DIR_RAPIDEYE
if not os.path.isdir(searchDir):
print('DIR_RAPIDEYE undefined. skip test.')
return
files = file_search(searchDir, '*.tif', recursive=True)
files = [f for f in files if not re.search(r'_(udm|browse)\.tif$', f)]
tsd = self.TS[0]
self.assertIsInstance(tsd, TimeSeriesDate)
for wl in tsd.sensor().wl:
self.assertTrue(wl > 0)
tss = tsd[0]
self.assertIsInstance(tss, TimeSeriesSource)
def test_loadPleiades(self):
#load Pleiades data
searchDir = DIR_PLEIADES
if not os.path.isdir(searchDir):
print('DIR_PLEIADES undefined. skip test.')
return
#files = file_search(searchDir, 'DIM*.xml', recursive=True)
files = list(file_search(searchDir, '*.jp2', recursive=True))[0:3]
self.assertEqual(len(files), len(self.TS))
def test_loadSentinel2(self):
#load Sentinel-2
searchDir = DIR_SENTINEL
if not os.path.isdir(searchDir):
print('DIR_SENTINEL undefined. skip test.')
return
files = list(file_search(searchDir, '*MSIL1C.xml', recursive=True))
#self.assertRegexpMatches(self.stderr.getvalue().strip(), 'Unable to add:')
self.assertEqual(0, len(self.TS)) # do not add a containers
subdatasets = []
for file in files:
subs = gdal.Open(file).GetSubDatasets()
subdatasets.extend(s[0] for s in subs)
self.assertEqual(len(subdatasets), len(self.TS)) # add subdatasets
if __name__ == '__main__':
unittest.main()