/usr/share/pyshared/PyMca/DataObject.py is in pymca 4.5.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | #/*##########################################################################
# Copyright (C) 2004-2010 European Synchrotron Radiation Facility
#
# This file is part of the PyMCA X-ray Fluorescence Toolkit developed at
# the ESRF by the Beamline Instrumentation Software Support (BLISS) group.
#
# This toolkit is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# PyMCA is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# PyMCA; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307, USA.
#
# PyMCA follows the dual licensing model of Trolltech's Qt and Riverbank's PyQt
# and cannot be used as a free plugin for a non-free program.
#
# Please contact the ESRF industrial unit (industry@esrf.fr) if this license
# is a problem for you.
#############################################################################*/
import numpy
import copy
class DataObject(object):
def __init__(self):
self.info = {}
self.data = numpy.array([])
def getInfo(self):
return self.info
def getData(self):
return self.data
if 0:
def select(self,selection=None):
if selection is None:
return copy.deepcopy(self.data)
else:
print("Not implemented (yet)")
#it will be a new array
return copy.deepcopy(self.data)
else:
def select(self,selection=None):
dataObject = DataObject()
dataObject.info = self.info
dataObject.info['selection'] = selection
if selection is None:
dataObject.data = self.data
return dataObject
if type(selection) == type({}):
#dataObject.data = self.data #should I set it to none???
dataObject.data = None
if 'rows' in selection:
dataObject.x = None
dataObject.y = None
dataObject.m = None
if 'x' in selection['rows']:
for rownumber in selection['rows']['x']:
if rownumber is None:continue
if dataObject.x is None:dataObject.x = []
dataObject.x.append(self.data[rownumber,:])
if 'y' in selection['rows']:
for rownumber in selection['rows']['y']:
if rownumber is None:continue
if dataObject.y is None:dataObject.y = []
dataObject.y.append(self.data[rownumber,:])
if 'm' in selection['rows']:
for rownumber in selection['rows']['m']:
if rownumber is None:continue
if dataObject.m is None:dataObject.m = []
dataObject.m.append(self.data[rownumber,:])
elif ('cols' in selection) or ('columns' in selection):
if 'cols' in selection:
key = 'cols'
else:
key = columns
dataObject.x = None
dataObject.y = None
dataObject.m = None
if 'x' in selection[key]:
for rownumber in selection[key]['x']:
if rownumber is None:continue
if dataObject.x is None:dataObject.x = []
dataObject.x.append(self.data[:,rownumber])
if 'y' in selection[key]:
for rownumber in selection[key]['y']:
if rownumber is None:continue
if dataObject.y is None:dataObject.y = []
dataObject.y.append(self.data[:,rownumber])
if 'm' in selection[key]:
for rownumber in selection[key]['m']:
if rownumber is None:continue
if dataObject.m is None:dataObject.m = []
dataObject.m.append(self.data[:,rownumber])
if dataObject.x is None:
if 'Channel0' in dataObject.info:
ch0 = int(output.info['Channel0'])
else:
ch0 = 0
dataObject.x = [numpy.arange(ch0,
ch0 + len(dataObject.y[0])).astype(numpy.float)]
if not ("selectiontype" in dataObject.info):
dataObject.info["selectiontype"] = "%dD" % len(dataObject.y)
return dataObject
|