diff --git a/timeseriesviewer/dateparser.py b/timeseriesviewer/dateparser.py index 5897e77fa5a2e40588cc6b7d7b441dd79c609bac..2a73f0ee2b6f804e745b7ee53322f30787f039cb 100644 --- a/timeseriesviewer/dateparser.py +++ b/timeseriesviewer/dateparser.py @@ -103,8 +103,9 @@ class ImageDateParserPLEIADES(ImageDateParser): if ext == '.xml': md = self.dataSet.GetMetadata_Dict() - timeStamp = '{}T{}'.format(md.get('IMAGING_DATE', ''), - md.get('IMAGING_TIME', '')) + if 'IMAGING_DATE' in md.keys() and 'IMAGING_TIME' in md.keys(): + timeStamp = '{}T{}'.format(md.get('IMAGING_DATE', ''), + md.get('IMAGING_TIME', '')) elif ext == '.jp2': timeStamp = self.dataSet.GetMetadataItem('ACQUISITIONDATETIME', 'IMAGERY') if len(timeStamp) > 0: @@ -122,10 +123,7 @@ class ImageDateParserSentinel2(ImageDateParser): if ext == '.xml': md = self.dataSet.GetMetadata_Dict() - timeStamp = '{}T{}'.format(md.get('IMAGING_DATE', ''), - md.get('IMAGING_TIME', '')) - elif ext == '.jp2': - timeStamp = self.dataSet.GetMetadataItem('ACQUISITIONDATETIME', 'IMAGERY') + timeStamp = md.get('DATATAKE_1_DATATAKE_SENSING_START', '') if len(timeStamp) > 0: return np.datetime64(timeStamp) return None diff --git a/timeseriesviewer/profilevisualization.py b/timeseriesviewer/profilevisualization.py index d51578ab2255da61755eaaac4013f7b9d72f9f85..e454ea83ab4f6628717be2b2bce09e1ba62c0252 100644 --- a/timeseriesviewer/profilevisualization.py +++ b/timeseriesviewer/profilevisualization.py @@ -87,6 +87,9 @@ class PixelLoadWorker(QObject): self.recentFile = path lyr = QgsRasterLayer(path) + if not lyr.isValid(): + logger.debug('Layer not valid: {}'.format(path)) + continue dp = lyr.dataProvider() trans = QgsCoordinateTransform(crs, dp.crs()) diff --git a/timeseriesviewer/timeseries.py b/timeseriesviewer/timeseries.py index 8f1681f6e274a2ce53c61d3935f93d0d46eacdb3..25f58d0bc028e6f50a5fea3f034900aa9c287800 100644 --- a/timeseriesviewer/timeseries.py +++ b/timeseriesviewer/timeseries.py @@ -1,6 +1,7 @@ from __future__ import absolute_import import six, sys, os, gc, re, collections, site, inspect, time, traceback, copy - +import logging +logger = logging.getLogger(__name__) import bisect, datetime from osgeo import gdal, ogr @@ -11,13 +12,15 @@ from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtXml import * -from osgeo import gdal, ogr +from osgeo import gdal, ogr, gdal_array + gdal.SetConfigOption('VRT_SHARED_SOURCE', '0') #!important. really. do not change this. import numpy as np -from timeseriesviewer import DIR_REPO, DIR_EXAMPLES, dprint, jp, findAbsolutePath +from timeseriesviewer import DIR_REPO, DIR_EXAMPLES, jp from timeseriesviewer.dateparser import parseDateFromDataSet + def transformGeometry(geom, crsSrc, crsDst, trans=None): if trans is None: assert isinstance(crsSrc, QgsCoordinateReferenceSystem) @@ -178,12 +181,6 @@ class SensorInstrument(QObject): def verifyInputImage(path, vrtInspection=''): if path is None or not type(path) in [str, unicode]: return None - - path2 = path.split(':')[0] - if not os.path.exists(path2): - print('{}Image does not exist: '.format(vrtInspection, path2)) - return False - ds = gdal.Open(path) if not ds: @@ -218,12 +215,11 @@ class TimeSeriesDatum(QObject): :return: """ - p = findAbsolutePath(path) tsd = None - if verifyInputImage(p): + if verifyInputImage(path): try: - tsd = TimeSeriesDatum(None, p) + tsd = TimeSeriesDatum(None, path) except : pass @@ -244,7 +240,7 @@ class TimeSeriesDatum(QObject): ds = getDS(pathImg) - self.pathImg = ds.GetFileList()[0] + self.pathImg = ds.GetFileList()[0] if isinstance(pathImg, gdal.Dataset) else pathImg self.timeSeries = timeSeries self.nb, self.nl, self.ns, self.crs, px_x, px_y = getSpatialPropertiesFromDataset(ds) @@ -498,7 +494,7 @@ class TimeSeries(QObject): tsd = TimeSeriesDatum.createFromPath(file) if tsd is None: msg = 'Unable to add: {}'.format(os.path.basename(file)) - dprint(msg, file=sys.stderr) + logger.error(msg) else: self.addTimeSeriesDates([tsd]) msg = 'Added {}'.format(os.path.basename(file))