diff --git a/sensecarbon_tsv.py b/sensecarbon_tsv.py
index 09f4ace21ff757bc64d3d688a90098d8d6746c79..3b9fa0411946c4ef842564505eca8b3cc8d493e9 100644
--- a/sensecarbon_tsv.py
+++ b/sensecarbon_tsv.py
@@ -35,6 +35,7 @@ import os, sys, re, fnmatch, collections, copy
 from osgeo import gdal, ogr, osr, gdal_array
 import numpy as np
 import pickle
+import qimage2ndarray
 import six
 import multiprocessing
 #i don't know why but this is required to run this in QGIS
@@ -727,7 +728,7 @@ def getDateTime64FromDOY(year, doy):
 
 class PictureTest(QMainWindow):
 
-    def __init__(self, parent=None):
+    def __init__(self, parent=None, qImage=None):
         super(PictureTest,self).__init__(parent)
         self.setWindowTitle("Show Image with pyqt")
         self.imageLabel=QLabel()
@@ -736,20 +737,24 @@ class PictureTest(QMainWindow):
 
         self.cv_img = None
 
-    def addNumpy(self, data):
+        if qImage:
+            self.addImage(qImage)
 
+    def addImage(self, qImage):
+        pxmap = QPixmap.fromImage(qImage)
+        self.addPixmap(pxmap)
+
+    def addPixmap(self, pixmap):
+        pxmap = pixmap.scaled(self.imageLabel.size(), Qt.KeepAspectRatio)
+        self.imageLabel.setPixmap(pxmap)
+        self.imageLabel.adjustSize()
+        self.imageLabel.update()
+
+    def addNumpy(self, data):
 
-        if False:
-            nb, nl, ns = data.shape
-            byteperline = nb
-            data = data.transpose([1,2,0]).copy()
 
-            img = QImage(data.data, ns, nl, QImage.Format_RGB888)
-            self.imageLabel.setPixmap(QPixmap.fromImage(img))
         img = Array2Image(data)
-        pxMap = QPixmap.fromImage(img)
-        pxMap = pxMap.scaled(self.imageLabel.size(), Qt.KeepAspectRatio)
-        self.imageLabel.setPixmap(pxMap)
+        self.addImage(img)
 
         #self.resize(img.width(), img.height())
 
@@ -813,7 +818,7 @@ class ImageChipBuffer(object):
     def getDataCube(self, date):
         return self.data.get(date)
 
-    def getChipImage(self, date, view):
+    def getChipRGB(self, date, view):
         bands = view.getBands()
         band_ranges = view.getRanges()
         assert len(bands) == 3 and len(bands) == len(band_ranges)
@@ -841,11 +846,13 @@ class ImageChipBuffer(object):
             for i, c in enumerate(rgb):
                 rgb_data[i, is_masked[0], is_masked[1]] = c
 
+        return  rgb_data
 
-
-        rgb_data = rgb_data.transpose([1,2,0]).copy()
-        return QImage(rgb_data.data, ns, nl, QImage.Format_RGB888)
-
+    def getChipImage(self, date, view):
+        rgb = self.getChipRGB(date, view)
+        nb, nl, ns = rgb.shape
+        rgb = rgb.transpose([1,2,0]).copy('C')
+        return QImage(rgb.data, ns, nl, QImage.Format_RGB888)
 
     def clear(self):
         self.data.clear()
@@ -1303,6 +1310,7 @@ class SenseCarbon_TSV:
             self.ImageChipBuffer.addDataCube(date, chipData)
 
         viewList = self.CHIPWIDGETS.get(date)
+
         if viewList:
             for j, view in enumerate(self.VIEWS):
 
@@ -1310,9 +1318,14 @@ class SenseCarbon_TSV:
                 imageLabel.clear()
                 #imageLabel.setScaledContents(True)
 
-                img = self.ImageChipBuffer.getChipImage(date, view)
-                pxMap = QPixmap.fromImage(img)
+                rgb = self.ImageChipBuffer.getChipRGB(date, view)
+                rgb2 = rgb.transpose([1,2,0]).copy('C')
+                qImg = qimage2ndarray.array2qimage(rgb2)
+                #img = QImage(rgb2.data, nl, ns, QImage.Format_RGB888)
+
+                pxMap = QPixmap.fromImage(qImg)
                 pxMap = pxMap.scaled(imageLabel.size(), Qt.KeepAspectRatio)
+
                 imageLabel.setPixmap(pxMap)
                 #imageLabel.update()
                 imageLabel.adjustSize()
@@ -1405,12 +1418,6 @@ class SenseCarbon_TSV:
         M.endResetModel()
         self.check_enabled()
 
-    def getSelectedDates(self):
-        TV = self.dlg.tableView_TimeSeries
-        TVM = TV.model()
-
-        return [TVM.getTimeSeriesDatumFromIndex(idx).getDate() for idx in TV.selectionModel().selectedRows()]
-
     def ua_removeTSD(self, dates):
         if dates is None:
             dates = self.getSelectedDates()
@@ -1428,9 +1435,15 @@ class SenseCarbon_TSV:
         L.removeWidget(w)
         w.deleteLater()
         self.setViewNames()
+    def getSelectedDates(self):
+        TV = self.dlg.tableView_TimeSeries
+        TVM = TV.model()
+
+        return [TVM.getTimeSeriesDatumFromIndex(idx).getDate() for idx in TV.selectionModel().selectedRows()]
+
 
 
-def showDataCube(data):
+def showRGBData(data):
     from scipy.misc import toimage
     toimage(data).show()
 
@@ -1514,7 +1527,8 @@ def run_tests():
         if True:
             dirSrc = r'O:\SenseCarbonProcessing\BJ_NOC\01_RasterData\00_VRTs\02_Cutted'
             filesImg = file_search(dirSrc, '2014*_BOA.vrt')
-            filesMsk = file_search(dirSrc, '2014*_Msk.vrt')
+            #filesMsk = file_search(dirSrc, '2014*_Msk.vrt')
+            #S.ua_addTSImages(files=filesImg[0:1])
             S.ua_addTSImages(files=filesImg)
             #S.ua_addTSMasks(files=filesMsk)