Changeset a9f579c in sasview for src/sas/sascalc/dataloader/data_info.py
- Timestamp:
- Jan 17, 2017 2:18:58 PM (8 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- aad41bb
- Parents:
- ef0e644
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/dataloader/data_info.py
r345e7e4 ra9f579c 93 93 ## Slit smearing width 94 94 dxw = None 95 ## SESANS specific params (wavelengths for spin echo length calculation) 96 lam = None 97 dlam = None 95 98 96 99 # Units … … 100 103 _yunit = '' 101 104 102 def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None ):105 def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None, lam=None, dlam=None): 103 106 self.x = numpy.asarray(x) 104 107 self.y = numpy.asarray(y) … … 111 114 if dxw is not None: 112 115 self.dxw = numpy.asarray(dxw) 116 if lam is not None: 117 self.lam = numpy.asarray(lam) 118 if dlam is not None: 119 self.dlam = numpy.asarray(dlam) 113 120 114 121 def xaxis(self, label, unit): … … 736 743 return self._perform_union(other) 737 744 738 class SESANSData1D(plottable_sesans1D, DataInfo): 739 """ 740 SESANS 1D data class 741 """ 742 x_unit = 'nm' 743 y_unit = 'pol' 744 745 def __init__(self, x=None, y=None, lam=None, dx=None, dy=None, dlam=None): 745 class Data1D(plottable_1D, DataInfo): 746 """ 747 1D data class 748 """ 749 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None, isSesans=False): 750 self.isSesans = isSesans 746 751 DataInfo.__init__(self) 747 plottable_sesans1D.__init__(self, x, y, lam, dx, dy, dlam) 752 plottable_1D.__init__(self, x, y, dx, dy,None, None, lam, dlam) 753 if self.isSesans: 754 x_unit = 'A' 755 y_unit = 'pol' 756 elif not self.isSesans: # it's SANS data! (Could also be simple else statement, but i prefer exhaustive conditionals...-JHB) 757 x_unit = '1/A' 758 y_unit = '1/cm' 759 else: # and if it's neither, you get punished! 760 raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 748 761 749 762 def __str__(self): … … 759 772 return _str 760 773 761 def clone_without_data(self, length=0, clone=None):762 """763 Clone the current object, without copying the data (which764 will be filled out by a subsequent operation).765 The data arrays will be initialized to zero.766 767 :param length: length of the data array to be initialized768 :param clone: if provided, the data will be copied to clone769 """770 from copy import deepcopy771 if clone is None or not issubclass(clone.__class__, Data1D):772 x = numpy.zeros(length)773 dx = numpy.zeros(length)774 y = numpy.zeros(length)775 dy = numpy.zeros(length)776 clone = Data1D(x, y, dx=dx, dy=dy)777 778 clone.title = self.title779 clone.run = self.run780 clone.filename = self.filename781 clone.instrument = self.instrument782 clone.notes = deepcopy(self.notes)783 clone.process = deepcopy(self.process)784 clone.detector = deepcopy(self.detector)785 clone.sample = deepcopy(self.sample)786 clone.source = deepcopy(self.source)787 clone.collimation = deepcopy(self.collimation)788 clone.trans_spectrum = deepcopy(self.trans_spectrum)789 clone.meta_data = deepcopy(self.meta_data)790 clone.errors = deepcopy(self.errors)791 792 return clone793 794 class Data1D(plottable_1D, DataInfo):795 """796 1D data class797 """798 x_unit = '1/A'799 y_unit = '1/cm'800 801 def __init__(self, x, y, dx=None, dy=None):802 DataInfo.__init__(self)803 plottable_1D.__init__(self, x, y, dx, dy)804 805 def __str__(self):806 """807 Nice printout808 """809 _str = "%s\n" % DataInfo.__str__(self)810 _str += "Data:\n"811 _str += " Type: %s\n" % self.__class__.__name__812 _str += " X-axis: %s\t[%s]\n" % (self._xaxis, self._xunit)813 _str += " Y-axis: %s\t[%s]\n" % (self._yaxis, self._yunit)814 _str += " Length: %g\n" % len(self.x)815 return _str816 817 774 def is_slit_smeared(self): 818 775 """ … … 843 800 y = numpy.zeros(length) 844 801 dy = numpy.zeros(length) 845 clone = Data1D(x, y, dx=dx, dy=dy) 802 lam = numpy.zeros(length) 803 dlam = numpy.zeros(length) 804 clone = Data1D(x, y, lam=lam, dx=dx, dy=dy, dlam=dlam) 846 805 847 806 clone.title = self.title
Note: See TracChangeset
for help on using the changeset viewer.