Changeset b45cde3 in sasview for src/sas/dataloader


Ignore:
Timestamp:
Feb 17, 2015 5:17:42 AM (10 years ago)
Author:
krzywon
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, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
7eaf9f2
Parents:
5dfdfa7
Message:

Added the base SESANS data objects to the dataloader/data_info.py that
will be modified and updated to accommodate the SESANS data format. THis
is not complete.

Changed to error/logging messages that said to contact the DANSE team.
The messages were changed to tell the user to contact the SasView? team.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/dataloader/data_info.py

    rb3efb7d rb45cde3  
    2525import numpy 
    2626import math 
     27 
     28 
     29class 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 mutually 
     37    # exclusive with the presence of Qdev (dx) 
     38    x = None 
     39    y = None 
     40    dx = None 
     41    dy = None 
     42    ## Slit smearing length 
     43    dxl = None 
     44    ## Slit smearing width 
     45    dxw = None 
     46     
     47    # Units 
     48    _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 unit 
     68        """ 
     69        self._xaxis = label 
     70        self._xunit = unit 
     71         
     72    def yaxis(self, label, unit): 
     73        """ 
     74        set the y axis label and unit 
     75        """ 
     76        self._yaxis = label 
     77        self._yunit = unit 
    2778 
    2879 
     
    940991         
    941992         
    942 class Data2D(plottable_2D, DataInfo): 
     993class SESANSData1D(plottable_sesans1D, DataInfo): 
     994    """ 
     995    SESANS 1D data class 
     996    """ 
     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 printout 
     1007        """ 
     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 _str 
     1017 
     1018    def is_slit_smeared(self): 
     1019        """ 
     1020        Check whether the data has slit smearing information 
     1021         
     1022        :return: True is slit smearing info is present, False otherwise 
     1023         
     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 True 
     1029             
     1030            return False 
     1031         
     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 (which 
     1037        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 initialized 
     1041        :param clone: if provided, the data will be copied to clone 
     1042        """ 
     1043        from copy import deepcopy 
     1044         
     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.title 
     1053        clone.run            = self.run 
     1054        clone.filename       = self.filename 
     1055        clone.instrument     = self.instrument 
     1056        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 clone 
     1067     
     1068     
     1069    class Data2D(plottable_2D, DataInfo): 
    9431070    """ 
    9441071    2D data class 
Note: See TracChangeset for help on using the changeset viewer.