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))