Changes in src/sas/dataloader/data_info.py [7eaf9f2:b3efb7d] in sasview
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/dataloader/data_info.py
r7eaf9f2 rb3efb7d 25 25 import numpy 26 26 import math 27 28 29 class plottable_sesans1D:30 """31 SESANS is a place holder for 1D SESANS plottables.32 33 #TODO: This was directly copied from the plottables_1D.34 #TODO: The class has not been updated from there.35 """36 # The presence of these should be mutually37 # exclusive with the presence of Qdev (dx)38 x = None39 y = None40 dx = None41 dy = None42 ## Slit smearing length43 dxl = None44 ## Slit smearing width45 dxw = None46 47 # Units48 _xaxis = ''49 _xunit = ''50 _yaxis = ''51 _yunit = ''52 53 def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None):54 self.x = numpy.asarray(x)55 self.y = numpy.asarray(y)56 if dx is not None:57 self.dx = numpy.asarray(dx)58 if dy is not None:59 self.dy = numpy.asarray(dy)60 if dxl is not None:61 self.dxl = numpy.asarray(dxl)62 if dxw is not None:63 self.dxw = numpy.asarray(dxw)64 65 def xaxis(self, label, unit):66 """67 set the x axis label and unit68 """69 self._xaxis = label70 self._xunit = unit71 72 def yaxis(self, label, unit):73 """74 set the y axis label and unit75 """76 self._yaxis = label77 self._yunit = unit78 27 79 28 … … 991 940 992 941 993 class SESANSData1D(plottable_sesans1D, DataInfo):994 """995 SESANS 1D data class996 """997 x_unit = '1/A'998 y_unit = '1/cm'999 1000 def __init__(self, x, y, dx=None, dy=None):1001 DataInfo.__init__(self)1002 plottable_sesans1D.__init__(self, x, y, dx, dy)1003 1004 def __str__(self):1005 """1006 Nice printout1007 """1008 _str = "%s\n" % DataInfo.__str__(self)1009 1010 _str += "Data:\n"1011 _str += " Type: %s\n" % self.__class__.__name__1012 _str += " X-axis: %s\t[%s]\n" % (self._xaxis, self._xunit)1013 _str += " Y-axis: %s\t[%s]\n" % (self._yaxis, self._yunit)1014 _str += " Length: %g\n" % len(self.x)1015 1016 return _str1017 1018 def is_slit_smeared(self):1019 """1020 Check whether the data has slit smearing information1021 1022 :return: True is slit smearing info is present, False otherwise1023 1024 """1025 def _check(v):1026 if (v.__class__ == list or v.__class__ == numpy.ndarray) \1027 and len(v) > 0 and min(v) > 0:1028 return True1029 1030 return False1031 1032 return _check(self.dxl) or _check(self.dxw)1033 1034 def clone_without_data(self, length=0, clone=None):1035 """1036 Clone the current object, without copying the data (which1037 will be filled out by a subsequent operation).1038 The data arrays will be initialized to zero.1039 1040 :param length: length of the data array to be initialized1041 :param clone: if provided, the data will be copied to clone1042 """1043 from copy import deepcopy1044 1045 if clone is None or not issubclass(clone.__class__, Data1D):1046 x = numpy.zeros(length)1047 dx = numpy.zeros(length)1048 y = numpy.zeros(length)1049 dy = numpy.zeros(length)1050 clone = Data1D(x, y, dx=dx, dy=dy)1051 1052 clone.title = self.title1053 clone.run = self.run1054 clone.filename = self.filename1055 clone.instrument = self.instrument1056 clone.notes = deepcopy(self.notes)1057 clone.process = deepcopy(self.process)1058 clone.detector = deepcopy(self.detector)1059 clone.sample = deepcopy(self.sample)1060 clone.source = deepcopy(self.source)1061 clone.collimation = deepcopy(self.collimation)1062 clone.trans_spectrum = deepcopy(self.trans_spectrum)1063 clone.meta_data = deepcopy(self.meta_data)1064 clone.errors = deepcopy(self.errors)1065 1066 return clone1067 1068 1069 942 class Data2D(plottable_2D, DataInfo): 1070 943 """
Note: See TracChangeset
for help on using the changeset viewer.