Пример #1
0
 def createVisualizerList(self):
     ids={}
     if isinstance(self.dataContainer, DataContainer.SampleContainer):
         data_type = pyphant.core.Connectors.TYPE_ARRAY
     elif isinstance(self.dataContainer, DataContainer.FieldContainer):
         data_type = pyphant.core.Connectors.TYPE_IMAGE
     for visualizer in DataVisReg.getInstance().getVisualizers(data_type):
         id=wx.NewId()
         ids[id]=visualizer
         #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id)
     return ids
Пример #2
0
 def createVisualizerList(self):
     ids = {}
     if isinstance(self.dataContainer, DataContainer.SampleContainer):
         data_type = pyphant.core.Connectors.TYPE_ARRAY
     elif isinstance(self.dataContainer, DataContainer.FieldContainer):
         data_type = pyphant.core.Connectors.TYPE_IMAGE
     for visualizer in DataVisReg.getInstance().getVisualizers(data_type):
         id = wx.NewId()
         ids[id] = visualizer
         #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id)
     return ids
Пример #3
0
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

u"""
"""

__id__ = "$Id: ImageVisualizer.py 22 2006-11-28 14:31:46Z liehr $"
__author__ = "$Author: liehr $"
__version__ = "$Revision: 22 $"
# $Source$

import pylab
import pyphant.core.Connectors
from pyphant.wxgui2.DataVisReg import DataVisReg
import scipy


class PrimitiveVisualizer(object):
    name='Primitive Visualizer'
    def __init__(self, fieldContainer):
        self.fieldContainer = fieldContainer
        self.execute()

    def execute(self):
        print self.fieldContainer


DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_INT, PrimitiveVisualizer)

Пример #4
0

class SurfaceVisualizer(object):
    name = "Surface"

    def __init__(self, fc, show=True):
        assert len(fc.dimensions) == 2, "2D FC expected"
        self.fc = fc
        self.draw()
        if show:
            self.show()

    def draw(self):
        fig = pyplot.figure()
        ax = fig.gca(projection='3d')
        y, x = np.meshgrid(*[d.data for d in self.fc.dimensions])
        z = self.fc.data
        zrange = z.max() - z.min()
        ax.plot_surface(
            x, y, z, cmap=cm.coolwarm, linewidth=0, rstride=1, cstride=1
            )
        ax.set_zlim(z.min() - zrange, z.max() + zrange)

    def show(self):
        pyplot.show()


DataVisReg.getInstance().registerVisualizer(
    TYPE_IMAGE, SurfaceVisualizer
    )
Пример #5
0
        wx.Frame.__init__(self, None, -1,
                          "Visualize " + dataContainer.longname)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.plot_panel = OscPlotPanel(self, dataContainer)
        self.configuration_panel = ConfigurationPanel(self, dataContainer,
                                                      self.plot_panel)
        self.sizer.Add(self.configuration_panel, 0, wx.EXPAND)
        self.sizer.Add(self.plot_panel, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Centre()
        self.Show(True)

    def createVisualizerList(self):
        ids = {}
        if isinstance(self.dataContainer, DataContainer.SampleContainer):
            data_type = pyphant.core.Connectors.TYPE_ARRAY
        elif isinstance(self.dataContainer, DataContainer.FieldContainer):
            data_type = pyphant.core.Connectors.TYPE_IMAGE
        for visualizer in DataVisReg.getInstance().getVisualizers(data_type):
            id = wx.NewId()
            ids[id] = visualizer
            #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id)
        return ids

    def OnExit(self, event):
        self.Close()


DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY,
                                            PlotFrame)
Пример #6
0
        self.init_cvalues(dataContainer)
        self.dclongname = dataContainer.longname
        wx.Frame.__init__(self, None, -1, "Z-Stack " + dataContainer.longname)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        imgFC = dataContainer[0]
        self.dataContainer = dataContainer
        self.plotPanel = ZStackPlotPanel(self, imgFC)
        self.configPanel = ZStackConfigPanel(self, self.plotPanel)
        self.sizer.Add(self.configPanel, 0, wx.EXPAND)
        self.sizer.Add(self.plotPanel, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Centre()
        self.Show(True)

    def init_zvalues(self, dataContainer):
        zunit = dataContainer.dimensions[0].unit
        self.zvalues = [str(zvalue * zunit) for zvalue \
                        in dataContainer.dimensions[0].data]

    def init_cvalues(self, dataContainer):
        self.cmaps = pylab.cm._cmapnames
        self.cbads = ['red', 'green', 'blue', 'yellow', 'black', 'white']
        self.cmaps.sort()
        self.cbads.sort()

    def OnExit(self, event):
        self.Close()


DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, ZStackVisualizer)
Пример #7
0
            if u"Smoothed Absorption" in data.longnames.keys():
                setField(u"Smoothed Absorption")
            elif u"Absorption" in data.longnames.keys():
                setField(u"Absorption")
            else:
                self.xData = data[u"Wellenlänge[nm]"]
                self.yData = data[u"ScopRaw[counts]"]
                pylab.ylabel("Scop Raw / a.u.")
        else:
            self.xData = self.dataContainer[0]
            self.yData = self.dataContainer[1]
        for i in xrange(len(self.xData.data)):
            self.ordinates.append(self.yData.data[i])
            self.abscissae.append(self.xData.data[i])
        if u"Minima" in data.longnames.keys():
            mins = data[u"Minima"]
            for i in xrange(len(mins.data)):
                self.mins.append(mins.data[i])

        pylab.xlabel("Wavelength $\lambda$ / nm")
        pylab.title(self.dataContainer.longname)

    def draw(self):
        for i in xrange(len(self.ordinates)):
            pylab.plot(self.abscissae[i], self.ordinates[i])
        for i in xrange(len(self.mins)):
            pylab.axvline(self.mins[i])


DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, AbsorptionVisualizer)
Пример #8
0
        wx.Frame.__init__(self, None, -1, "Visualize "+dataContainer.longname)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.plot_panel = OscPlotPanel(self, dataContainer)
        self.configuration_panel = ConfigurationPanel(self, dataContainer,
                                                      self.plot_panel)
        self.sizer.Add(self.configuration_panel, 0, wx.EXPAND)
        self.sizer.Add(self.plot_panel, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Centre()
        self.Show(True)

    def createVisualizerList(self):
        ids={}
        if isinstance(self.dataContainer, DataContainer.SampleContainer):
            data_type = pyphant.core.Connectors.TYPE_ARRAY
        elif isinstance(self.dataContainer, DataContainer.FieldContainer):
            data_type = pyphant.core.Connectors.TYPE_IMAGE
        for visualizer in DataVisReg.getInstance().getVisualizers(data_type):
            id=wx.NewId()
            ids[id]=visualizer
            #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id)
        return ids

    def OnExit(self, event):
        self.Close()




DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, PlotFrame)
Пример #9
0
            self.abscissae.append(self.xData.data[i])
        if u'Minima' in data.longnames.keys():
            mins = data[u'Minima']
            for i in xrange(len(mins.data)):
                self.mins.append(mins.data[i])

        pylab.xlabel('Wavelength $\lambda$ / nm')
        pylab.title(self.dataContainer.longname)

    def draw(self):
        for i in xrange(len(self.ordinates)):
            pylab.plot(self.abscissae[i],self.ordinates[i])
        for i in xrange(len(self.mins)):
            pylab.axvline(self.mins[i])

DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, AbsorptionVisualizer)














Пример #10
0
    def saveSample(self, path):
        outData = self.dataContainer.data

        if path[-3:] == 'csv':
            outFile = file(path,'wb')
            csvWriter = csv.writer(outFile,dialect='excel')
            #csvWriter.writerow([self.dataContainer.dimensions[0].label, self.dataContainer.label])
            csvWriter.writerows(outData.tolist())
        else:
            outFile = file(path,'w')
            #outFile.write(str([self.dataContainer.dimensions[0].label, self.dataContainer.label])+"\n")
            write_array(outFile,outData.tolist())
        outFile.close()


DataVisReg.getInstance().registerVisualizer(Connectors.TYPE_ARRAY, ExternalDAT)














Пример #11
0
                str([
                    self.dataContainer.dimensions[0].label,
                    self.dataContainer.label
                ]) + "\n")
            write_array(outFile, outData)
        outFile.close()

    def saveSample(self, path):
        outData = self.dataContainer.data

        if path[-3:] == 'csv':
            outFile = file(path, 'wb')
            csvWriter = csv.writer(outFile, dialect='excel')
            #csvWriter.writerow(
            #    [self.dataContainer.dimensions[0].label,
            #     self.dataContainer.label]
            #    )
            csvWriter.writerows(outData.tolist())
        else:
            outFile = file(path, 'w')
            #outFile.write(
            #    str([
            #            self.dataContainer.dimensions[0].label,
            #            self.dataContainer.label]) + "\n"
            #    )
            write_array(outFile, outData.tolist())
        outFile.close()


DataVisReg.getInstance().registerVisualizer(Connectors.TYPE_ARRAY, ExternalDAT)
Пример #12
0
    name = u"Line chart"
    linestyle = '-'

    def draw(self, abscissa, data, maskedData, error, **kwargs):
        if error == None:
            for ordinate in maskedData:
                pylab.plot(abscissa, ordinate, self.linestyle)
        else:
            for i in xrange(data.shape[0]):
                line = pylab.plot(abscissa, maskedData[i], self.linestyle)
                color = [l._color for l in line]
                for direction in [-1., 1.]:
                    ordinate = maskedData[i] + direction * error[i]
                    line = pylab.plot(abscissa, ordinate, linestyle=':')
                    for j in xrange(len(color)):
                        line[j]._color = color[j]
        pylab.axis([self.xmin, self.xmax, self.ymin, self.ymax])


class ScatterPlot(LineChart):
    name = u"Scatter Plot"
    linestyle = 'o'


DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE,
                                            BarChart)
DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE,
                                            LineChart)
DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE,
                                            ScatterPlot)
Пример #13
0
        self.dclongname = dataContainer.longname
        wx.Frame.__init__(self, None, -1, "Z-Stack " + dataContainer.longname)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        imgFC = dataContainer[0]
        self.dataContainer = dataContainer
        self.plotPanel = ZStackPlotPanel(self, imgFC)
        self.configPanel = ZStackConfigPanel(self, self.plotPanel)
        self.sizer.Add(self.configPanel, 0, wx.EXPAND)
        self.sizer.Add(self.plotPanel, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Centre()
        self.Show(True)

    def init_zvalues(self, dataContainer):
        zunit = dataContainer.dimensions[0].unit
        self.zvalues = [str(zvalue * zunit) for zvalue \
                        in dataContainer.dimensions[0].data]

    def init_cvalues(self, dataContainer):
        self.cmaps = pylab.cm._cmapnames
        self.cbads = ['red', 'green', 'blue', 'yellow',
                      'black', 'white']
        self.cmaps.sort()
        self.cbads.sort()

    def OnExit(self, event):
        self.Close()


DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, ZStackVisualizer)
Пример #14
0
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""This module provides a visualizer that simply prints the input"""

import pyphant.core.Connectors
from pyphant.wxgui2.DataVisReg import DataVisReg


class PrimitiveVisualizer(object):
    name = 'Primitive Visualizer'

    def __init__(self, fieldContainer):
        self.fieldContainer = fieldContainer
        self.execute()

    def execute(self):
        print self.fieldContainer


DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_INT,
                                            PrimitiveVisualizer)
Пример #15
0
            pylab.imshow(self.fieldContainer.maskedData,
                         aspect='auto',
                         interpolation='nearest',
                         vmin=vmin,
                         vmax=vmax,
                         origin='lower',
                         extent=(xmin, xmax, ymin, ymax))
            pylab.colorbar(format=F(self.fieldContainer), ax=ax)
        else:
            im = NonUniformImage(ax, extent=(xmin,xmax,ymin,ymax))
            if vmin is not None or vmax is not None:
                im.set_clim(vmin, vmax)
                im.set_data(x, y, self.fieldContainer.maskedData)
            else:
                im.set_data(x, y, self.fieldContainer.maskedData)
                im.autoscale_None()
            ax.images.append(im)
            ax.set_xlim(xmin,xmax)
            ax.set_ylim(ymin,ymax)
            pylab.colorbar(im,format=F(self.fieldContainer), ax=ax)
        pylab.xlabel(self.fieldContainer.dimensions[-1].shortlabel)
        pylab.ylabel(self.fieldContainer.dimensions[-2].shortlabel)
        pylab.title(self.fieldContainer.label)
        #ax=pylab.gca()
        if self.show:
            pylab.ion()
            pylab.show()


DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, ImageVisualizer)
Пример #16
0
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

u"""
"""

__id__ = "$Id$"
__author__ = "$Author$"
__version__ = "$Revision$"
# $Source$


from pyphant.core.Connectors import (TYPE_IMAGE, TYPE_ARRAY)
from pyphant.wxgui2.DataVisReg import DataVisReg
from pyphant.core.KnowledgeManager import KnowledgeManager


class KMVisualizer(object):
    name='Register @ KnowledgeManager'
    def __init__(self, DataContainer, show=True):
        if show:
            kmanager = KnowledgeManager.getInstance()
            kmanager.registerDataContainer(DataContainer)


DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, KMVisualizer)
DataVisReg.getInstance().registerVisualizer(TYPE_ARRAY, KMVisualizer)
Пример #17
0

class LineChart(Chart):
    name = u"Line chart"
    linestyle = '-'

    def draw(self, abscissa, data, maskedData, error, **kwargs):
        if error == None:
            for ordinate in maskedData:
                pylab.plot(abscissa, ordinate, self.linestyle)
        else:
            for i in xrange(data.shape[0]):
                line = pylab.plot(abscissa, maskedData[i], self.linestyle)
                color = [l._color for l in line]
                for direction in [-1.,1.]:
                    ordinate = maskedData[i] + direction*error[i]
                    line = pylab.plot(abscissa, ordinate, linestyle=':')
                    for j in xrange(len(color)):
                        line[j]._color = color[j]
        pylab.axis([self.xmin, self.xmax, self.ymin, self.ymax])

class ScatterPlot(LineChart):
    name = u"Scatter Plot"
    linestyle = 'o'


DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, BarChart)
DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, LineChart)
DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, ScatterPlot)