Changes in / [8b645cc:7949dcf7] in sasview
- Location:
- src/sas
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/data_util/qsmearing.py
rf8aa738 r392056d 5 5 #This software was developed by the University of Tennessee as part of the 6 6 #Distributed Data Analysis of Neutron Scattering Experiments (DANSE) 7 #project funded by the US National Science Foundation. 7 #project funded by the US National Science Foundation. 8 8 #See the license text in license.txt 9 9 #copyright 2008, University of Tennessee … … 13 13 import logging 14 14 import sys 15 from sasmodels import sesans 15 16 16 from sasmodels.resolution import Slit1D, Pinhole1D 17 from sasmodels.resolution import Slit1D, Pinhole1D, SESANS1D 17 18 from sasmodels.resolution2d import Pinhole2D 18 19 … … 48 49 49 50 # Look for resolution smearing data 51 _found_sesans = False 52 if data.dx is not None and data.meta_data['loader']=='SESANS': 53 if data.dx[0] > 0.0: 54 _found_sesans = True 55 56 if _found_sesans == True: 57 return sesans_smear(data, model) 58 50 59 _found_resolution = False 51 60 if data.dx is not None and len(data.dx) == len(data.x): … … 92 101 self.model = model 93 102 self.resolution = resolution 94 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 103 if hasattr(self.resolution, 'data'): 104 if self.resolution.data.meta_data['loader'] == 'SESANS': 105 self.offset = 0 106 # This is default behaviour, for future resolution/transform functions this needs to be revisited. 107 else: 108 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 109 else: 110 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 111 112 #self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 95 113 96 114 def apply(self, iq_in, first_bin=0, last_bin=None): … … 126 144 q[first:last+1]. 127 145 """ 146 128 147 q = self.resolution.q 129 148 first = numpy.searchsorted(q, q_min) … … 142 161 width = data.dx if data.dx is not None else 0 143 162 return PySmear(Pinhole1D(q, width), model) 163 164 def sesans_smear(data, model=None): 165 #This should be calculated characteristic length scale 166 #Probably not a data prameter either 167 #Need function to calculate this based on model 168 #Here assume a number 169 Rmax = 1000000 170 q_calc = sesans.make_q(data.sample.zacceptance, Rmax) 171 return PySmear(SESANS1D(data,q_calc),model) -
src/sas/sascalc/dataloader/data_info.py
r1b1a1c1 r1fac6c0 25 25 import numpy 26 26 import math 27 28 class plottable_sesans1D(object):29 """30 SESANS is a place holder for 1D SESANS plottables.31 32 #TODO: This was directly copied from the plottables_1D. Modified Somewhat.33 #Class has been updated.34 """35 # The presence of these should be mutually36 # exclusive with the presence of Qdev (dx)37 x = None38 y = None39 lam = None40 dx = None41 dy = None42 dlam = None43 ## Slit smearing length44 dxl = None45 ## Slit smearing width46 dxw = None47 48 # Units49 _xaxis = ''50 _xunit = ''51 _yaxis = ''52 _yunit = ''53 54 def __init__(self, x, y, lam, dx=None, dy=None, dlam=None):55 # print "SESANS plottable working"56 self.x = numpy.asarray(x)57 self.y = numpy.asarray(y)58 self.lam = numpy.asarray(lam)59 if dx is not None:60 self.dx = numpy.asarray(dx)61 if dy is not None:62 self.dy = numpy.asarray(dy)63 if dlam is not None:64 self.dlam = numpy.asarray(dlam)65 66 def xaxis(self, label, unit):67 """68 set the x axis label and unit69 """70 self._xaxis = label71 self._xunit = unit72 73 def yaxis(self, label, unit):74 """75 set the y axis label and unit76 """77 self._yaxis = label78 self._yunit = unit79 80 81 27 class plottable_1D(object): 82 28 """ … … 94 40 dxw = None 95 41 42 ## SESANS specific params (wavelengths for spin echo length calculation) 43 44 lam = None 45 dlam = None 46 96 47 # Units 97 48 _xaxis = '' … … 100 51 _yunit = '' 101 52 102 def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None ):53 def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None, lam=None, dlam=None): 103 54 self.x = numpy.asarray(x) 104 55 self.y = numpy.asarray(y) … … 111 62 if dxw is not None: 112 63 self.dxw = numpy.asarray(dxw) 64 if lam is not None: 65 self.lam = numpy.asarray(lam) 66 if dlam is not None: 67 self.dlam = numpy.asarray(dlam) 113 68 114 69 def xaxis(self, label, unit): … … 736 691 return self._perform_union(other) 737 692 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): 693 class Data1D(plottable_1D, DataInfo): 694 """ 695 1D data class 696 """ 697 #if plottable_1D.lam is None: # This means it's SANS data! 698 # x_unit = '1/A' 699 # y_unit = '1/cm' 700 #elif plottable_1D.lam is not None: # This means it's SESANS data! 701 # x_unit = 'A' 702 # y_unit = 'pol' 703 #else: # and if it's neither, you get punished! 704 # raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 705 706 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None, isSesans=False): 707 self.isSesans = isSesans 746 708 DataInfo.__init__(self) 747 plottable_sesans1D.__init__(self, x, y, lam, dx, dy, dlam) 709 plottable_1D.__init__(self, x, y, dx, dy,None, None, lam, dlam) 710 if self.isSesans: 711 x_unit = 'A' 712 y_unit = 'pol' 713 elif not self.isSesans: # it's SANS data! (Could also be simple else statement, but i prefer exhaustive conditionals...-JHB) 714 x_unit = '1/A' 715 y_unit = '1/cm' 716 else: # and if it's neither, you get punished! 717 raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 748 718 749 719 def __str__(self): … … 759 729 return _str 760 730 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 731 def is_slit_smeared(self): 818 732 """ … … 843 757 y = numpy.zeros(length) 844 758 dy = numpy.zeros(length) 845 clone = Data1D(x, y, dx=dx, dy=dy) 759 lam = numpy.zeros(length) 760 dlam = numpy.zeros(length) 761 clone = Data1D(x, y, lam=lam, dx=dx, dy=dy, dlam=dlam ) 846 762 847 763 clone.title = self.title -
src/sas/sascalc/dataloader/readers/sesans_reader.py
r1c0e3b0 r392056d 8 8 import numpy 9 9 import os 10 from sas.sascalc.dataloader.data_info import SESANSData1D10 from sas.sascalc.dataloader.data_info import Data1D 11 11 12 12 # Check whether we have a converter available … … 84 84 tdx = numpy.zeros(0) 85 85 # print "all good" 86 output = SESANSData1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam)86 output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam, isSesans=True ) 87 87 # print output 88 88 self.filename = output.filename = basename … … 121 121 paramvals.append(toks[1]) 122 122 if len(toks)>5: 123 #zvals.append(toks[0]) 124 #dzvals.append(toks[1]) 125 #lamvals.append(toks[2]) 126 #dlamvals.append(toks[3]) 127 #Pvals.append(toks[4]) 128 #dPvals.append(toks[5]) 129 123 130 zvals.append(toks[0]) 124 dzvals.append(toks[ 1])125 lamvals.append(toks[ 2])126 dlamvals.append(toks[ 3])127 Pvals.append(toks[ 4])128 dPvals.append(toks[ 5])131 dzvals.append(toks[3]) 132 lamvals.append(toks[4]) 133 dlamvals.append(toks[5]) 134 Pvals.append(toks[1]) 135 dPvals.append(toks[2]) 129 136 else: 130 137 continue … … 140 147 default_z_unit = "A" 141 148 data_conv_P = None 142 default_p_unit = " " 149 default_p_unit = " " # Adjust unit for axis (L^-3) 143 150 lam_unit = lam_header[1].replace("[","").replace("]","") 151 if lam_unit == 'AA': 152 lam_unit = 'A' 144 153 varheader=[zvals[0],dzvals[0],lamvals[0],dlamvals[0],Pvals[0],dPvals[0]] 145 154 valrange=range(1, len(zvals)) … … 161 170 output.x, output.x_unit = self._unit_conversion(x, lam_unit, default_z_unit) 162 171 output.y = y 172 output.y_unit = '\AA^{-2} cm^{-1}' # output y_unit erbij 163 173 output.dx, output.dx_unit = self._unit_conversion(dx, lam_unit, default_z_unit) 164 174 output.dy = dy … … 166 176 output.dlam, output.dlam_unit = self._unit_conversion(dlam, lam_unit, default_z_unit) 167 177 168 output.xaxis("\ rm{z}", output.x_unit)169 output.yaxis("\\rm{ P/P0}", output.y_unit)178 output.xaxis("\\rm{z}", output.x_unit) 179 output.yaxis("\\rm{ln(P)/(t \lambda^2)}", output.y_unit) # Adjust label to ln P/(lam^2 t), remove lam column refs 170 180 # Store loading process information 171 181 output.meta_data['loader'] = self.type_name 172 output.sample.thickness = float(paramvals[6])182 #output.sample.thickness = float(paramvals[6]) 173 183 output.sample.name = paramvals[1] 174 184 output.sample.ID = paramvals[0] 175 185 zaccept_unit_split = paramnames[7].split("[") 176 186 zaccept_unit = zaccept_unit_split[1].replace("]","") 177 if zaccept_unit.strip() == '\AA^-1' :187 if zaccept_unit.strip() == '\AA^-1' or zaccept_unit.strip() == '\A^-1': 178 188 zaccept_unit = "1/A" 179 189 output.sample.zacceptance=(float(paramvals[7]),zaccept_unit) -
src/sas/sascalc/fit/AbstractFitEngine.py
rfc18690 r7988501 131 131 a way to get residuals from data. 132 132 """ 133 def __init__(self, x, y, dx=None, dy=None, smearer=None, data=None ):133 def __init__(self, x, y, dx=None, dy=None, smearer=None, data=None, lam=None, dlam=None): 134 134 """ 135 135 :param smearer: is an object of class QSmearer or SlitSmearer … … 152 152 153 153 """ 154 Data1D.__init__(self, x=x, y=y, dx=dx, dy=dy )154 Data1D.__init__(self, x=x, y=y, dx=dx, dy=dy, lam=lam,dlam=dlam) 155 155 self.num_points = len(x) 156 156 self.sas_data = data -
src/sas/sascalc/fit/BumpsFitting.py
rb699768 r7988501 26 26 from bumps import parameter 27 27 from bumps.fitproblem import FitProblem 28 29 28 30 29 from sas.sascalc.fit.AbstractFitEngine import FitEngine -
src/sas/sasgui/guiframe/dataFitting.py
r9b6d62d r1fac6c0 17 17 """ 18 18 """ 19 def __init__(self, x=None, y=None, dx=None, dy=None ):19 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None, isSesans=False): 20 20 """ 21 21 """ … … 24 24 if y is None: 25 25 y = [] 26 PlotData1D.__init__(self, x, y, dx, dy) 27 LoadData1D.__init__(self, x, y, dx, dy) 26 self.isSesans = isSesans 27 PlotData1D.__init__(self, x, y, dx, dy, lam, dlam) 28 LoadData1D.__init__(self, x, y, dx, dy, lam, dlam, isSesans) 28 29 self.id = None 29 30 self.list_group_id = [] … … 68 69 # First, check the data compatibility 69 70 dy, dy_other = self._validity_check(other) 70 result = Data1D(x=[], y=[], dx=None, dy=None)71 result = Data1D(x=[], y=[], lam=[], dx=None, dy=None, dlam=None) 71 72 result.clone_without_data(length=len(self.x), clone=self) 72 73 result.copy_from_datainfo(data1d=self) … … 115 116 # First, check the data compatibility 116 117 self._validity_check_union(other) 117 result = Data1D(x=[], y=[], dx=None, dy=None)118 result = Data1D(x=[], y=[], lam=[], dx=None, dy=None, dlam=None) 118 119 tot_length = len(self.x) + len(other.x) 119 120 result = self.clone_without_data(length=tot_length, clone=result) 121 if self.dlam == None or other.dlam is None: 122 result.dlam = None 123 else: 124 result.dlam = numpy.zeros(tot_length) 120 125 if self.dy == None or other.dy is None: 121 126 result.dy = None … … 141 146 result.y = numpy.append(self.y, other.y) 142 147 result.y = result.y[ind] 148 result.lam = numpy.append(self.lam, other.lam) 149 result.lam = result.lam[ind] 150 if result.dlam != None: 151 result.dlam = numpy.append(self.dlam, other.dlam) 152 result.dlam = result.dlam[ind] 143 153 if result.dy != None: 144 154 result.dy = numpy.append(self.dy, other.dy) … … 260 270 # First, check the data compatibility 261 271 self._validity_check_union(other) 262 result = Data1D(x=[], y=[], dx=None, dy=None)272 result = Data1D(x=[], y=[], lam=[], dx=None, dy=None, dlam=[]) 263 273 tot_length = len(self.x)+len(other.x) 264 274 result.clone_without_data(length=tot_length, clone=self) 275 if self.dlam == None or other.dlam is None: 276 result.dlam = None 277 else: 278 result.dlam = numpy.zeros(tot_length) 265 279 if self.dy == None or other.dy is None: 266 280 result.dy = None … … 285 299 result.y = numpy.append(self.y, other.y) 286 300 result.y = result.y[ind] 301 result.lam = numpy.append(self.lam, other.lam) 302 result.lam = result.lam[ind] 287 303 if result.dy != None: 288 304 result.dy = numpy.append(self.dy, other.dy) -
src/sas/sasgui/guiframe/data_manager.py
rd85c194 r1fac6c0 62 62 if issubclass(Data2D, data.__class__): 63 63 new_plot = Data2D(image=None, err_image=None) 64 else: 65 new_plot = Data1D(x=[], y=[], dx=None, dy=None) 64 elif data.meta_data['loader'] == 'SESANS': 65 new_plot = Data1D(x=[], y=[], dx=None, dy=None, lam=None, dlam=None, isSesans=True) 66 else: 67 new_plot = Data1D(x=[], y=[], dx=None, dy=None, lam=None, dlam=None) #SESANS check??? 66 68 67 69 new_plot.copy_from_datainfo(data) -
src/sas/sasgui/perspectives/fitting/basepage.py
r313c5c9 r313c5c9 142 142 self.theory_qmin_x = None 143 143 self.theory_qmax_x = None 144 self.cb1 = None 144 145 self.btEditMask = None 145 146 self.btFit = None … … 280 281 num=self.npts_x, endpoint=True) 281 282 self.data = Data1D(x=x) 282 self.data.xaxis('\\rm{Q}', "A^{-1}") 283 self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 283 #self.data.xaxis('\\rm{Q}', "A^{-1}") 284 self.data.xaxis('\\rm{X}', "") 285 #self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 286 self.data.yaxis('\\rm{Y}', "") 284 287 self.data.is_data = False 285 288 self.data.id = str(self.uid) + " data" … … 306 309 num=self.npts_x, endpoint=True, base=10.0) 307 310 self.data = Data1D(x=x) 308 self.data.xaxis('\\rm{Q}', "A^{-1}") 309 self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 311 #self.data.xaxis('\\rm{Q}', "A^{-1}") 312 #self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 313 self.data.xaxis('\\rm{X}', "") 314 self.data.yaxis('\\rm{Y}', "") 310 315 self.data.is_data = False 311 316 self.data.id = str(self.uid) + " data" … … 426 431 self.sizer2 = wx.BoxSizer(wx.VERTICAL) 427 432 self.sizer3 = wx.BoxSizer(wx.VERTICAL) 433 self.sizerTrafo = wx.BoxSizer(wx.VERTICAL) 428 434 self.sizer4 = wx.BoxSizer(wx.VERTICAL) 429 435 self.sizer5 = wx.BoxSizer(wx.VERTICAL) … … 434 440 self.sizer2.SetMinSize((PANEL_WIDTH, -1)) 435 441 self.sizer3.SetMinSize((PANEL_WIDTH, -1)) 442 self.sizerTrafo.SetMinSize((PANEL_WIDTH, -1)) 436 443 self.sizer4.SetMinSize((PANEL_WIDTH, -1)) 437 444 self.sizer5.SetMinSize((PANEL_WIDTH, -1)) … … 442 449 self.vbox.Add(self.sizer2) 443 450 self.vbox.Add(self.sizer3) 451 self.vbox.Add(self.sizerTrafo) 444 452 self.vbox.Add(self.sizer4) 445 453 self.vbox.Add(self.sizer5) … … 1122 1130 # set data, etc. from the state 1123 1131 # reset page between theory and fitting from bookmarking 1132 #if state.data == None: 1133 # data = None 1134 #else: 1124 1135 data = state.data 1125 1136 … … 1147 1158 self.disp_cb_dict = state.disp_cb_dict 1148 1159 self.disp_list = state.disp_list 1160 1161 ## set the state of the radio box 1162 #self.shape_rbutton.SetValue(state.shape_rbutton) 1163 #self.shape_indep_rbutton.SetValue(state.shape_indep_rbutton) 1164 #self.struct_rbutton.SetValue(state.struct_rbutton) 1165 #self.plugin_rbutton.SetValue(state.plugin_rbutton) 1149 1166 1150 1167 ## fill model combobox … … 1207 1224 else: 1208 1225 self.model_view.SetLabel("1D Mode") 1226 1227 ## set the select all check box to the a given state 1228 self.cb1.SetValue(state.cb1) 1209 1229 1210 1230 ## reset state of checkbox,textcrtl and regular parameters value … … 1337 1357 logging.error(traceback.format_exc()) 1338 1358 1359 # Make sure the check box updated when all checked 1360 if self.cb1.GetValue(): 1361 self.select_all_param(None) 1362 1339 1363 def _selectDlg(self): 1340 1364 """ … … 1439 1463 self.fitrange = False 1440 1464 1465 if not self.data.is_data: 1466 is_modified = True 1467 1441 1468 ## if any value is modify draw model with new value 1442 1469 if not self.fitrange: … … 1454 1481 self._draw_model() 1455 1482 self.Refresh() 1456 1457 #logging.info("is_modified flag set to %g",is_modified)1458 1483 return is_modified 1459 1484 … … 2477 2502 item[2].Enable() 2478 2503 2479 # Make sure the check box updated 2480 self.get_all_checked_params() 2504 # Make sure the check box updated when all checked 2505 if self.cb1.GetValue(): 2506 #self.select_all_param(None) 2507 self.get_all_checked_params() 2481 2508 2482 2509 # update params … … 3660 3687 call back for model selection if implemented 3661 3688 """ 3689 def select_all_param(self, event): 3690 """ 3691 set to true or false all checkBox if implemented 3692 """ 3662 3693 def get_weight_flag(self): 3663 3694 """ -
src/sas/sasgui/perspectives/fitting/fitpage.py
r3bec50a r3bec50a 55 55 self.weightbt_string = None 56 56 self.m_name = None 57 # transform implementation 58 self._fill_Trafo_sizer() 59 # self.Trafobt_string() 57 60 # get smear info from data 58 61 self._get_smear_info() … … 92 95 self.parent.on_set_focus(event) 93 96 self.on_tap_focus() 97 98 def onTrafo(self, event): 99 """ 100 On Trafo radio button event, sets the Trafobt_string 101 """ 102 self.Trafobt_string = event.GetEventObject().GetLabelText() 103 self._set_Trafo() 104 105 def _fill_Trafo_sizer(self): 106 107 title = "Transform" 108 box_description_trafo = wx.StaticBox(self, wx.ID_ANY, str(title)) 109 box_description_trafo.SetForegroundColour(wx.BLUE) 110 #boxsizer_trafo = wx.StaticBoxSizer(box_description_trafo, wx.VERTICAL) 111 boxsizer_trafo = wx.StaticBoxSizer(box_description_trafo, wx.HORIZONTAL) 112 #sizer_trafo = wx.StaticBoxSizer(box_description_trafo, wx.HORIZONTAL) 113 #weighting_set_box = wx.StaticBox(self, wx.ID_ANY, 114 # 'Select the type of SESANS analysis') 115 116 #sizer_weighting = wx.BoxSizer(wx.HORIZONTAL) 117 # weighting_box.SetMinSize((_DATA_BOX_WIDTH, 60)) 118 119 #For every radio button (each statement x3): 120 self.no_transform = wx.RadioButton(self, wx.ID_ANY, 121 'None', style=wx.RB_GROUP) 122 123 #self.Bind(wx.EVT_RADIOBUTTON, self.onTrafo, 124 # id=self.no_transform.GetId()) 125 self.hankel = wx.RadioButton(self, wx.ID_ANY, 126 'Hankel') 127 #self.Bind(wx.EVT_RADIOBUTTON, self.onTrafo, 128 # id=self.hankel.GetId()) 129 self.cosine = wx.RadioButton(self, wx.ID_ANY, 130 'Cosine') 131 #self.Bind(wx.EVT_RADIOBUTTON, self.onTrafo, 132 # id=self.cosine.GetId()) 133 134 #Not sure about this (only once though) 135 self.no_transform.SetValue(True) 136 137 #For every radio button (each statement x3): 138 boxsizer_trafo.Add(self.no_transform, 0, wx.LEFT, 10) 139 boxsizer_trafo.Add((14, 10)) 140 boxsizer_trafo.Add(self.hankel) 141 boxsizer_trafo.Add((14, 10)) 142 boxsizer_trafo.Add(self.cosine) 143 boxsizer_trafo.Add((14, 10)) 144 #Default for weighting is False, but these need to be on by default! 145 self.no_transform.Enable(True) 146 147 #Not sure about this (only once though) 148 #weighting_box.Add(sizer_trafo) 149 150 self.sizerTrafo.Clear(True) 151 self.sizerTrafo.Add(boxsizer_trafo, 0, wx.EXPAND | wx.ALL, 10) 152 #self.sizerTrafo.Add(sizer_trafo, 0, wx.EXPAND | wx.ALL, 10) 153 self.sizerTrafo.Layout() 94 154 95 155 def _fill_data_sizer(self): … … 624 684 ## fill a sizer with the combobox to select dispersion type 625 685 model_disp = wx.StaticText(self, wx.ID_ANY, 'Function') 626 CHECK_STATE = False686 CHECK_STATE = self.cb1.GetValue() 627 687 628 688 ix = 0 … … 969 1029 self.state.model = self.model.clone() 970 1030 ## save state into 1031 self.state.cb1 = self.cb1.GetValue() 971 1032 self._copy_parameters_state(self.parameters, self.state.parameters) 972 1033 self._copy_parameters_state(self.orientation_params_disp, … … 979 1040 StatusEvent(status=" Selected Distribution: Gaussian")) 980 1041 #Fill the list of fittable parameters 1042 #self.select_all_param(event=None) 981 1043 self.get_all_checked_params() 982 1044 self.Layout() … … 2693 2755 self._manager.set_param2fit(self.uid, param2fit) 2694 2756 2757 def select_all_param(self, event): 2758 """ 2759 set to true or false all checkBox given the main checkbox value cb1 2760 """ 2761 self.param_toFit = [] 2762 if self.parameters != []: 2763 if self.cb1.GetValue(): 2764 for item in self.parameters: 2765 if item[0].IsShown(): 2766 ## for data2D select all to fit 2767 if self.data.__class__.__name__ == "Data2D" or \ 2768 self.enable2D: 2769 item[0].SetValue(True) 2770 self.param_toFit.append(item) 2771 else: 2772 ## for 1D all parameters except orientation 2773 if not item in self.orientation_params: 2774 item[0].SetValue(True) 2775 self.param_toFit.append(item) 2776 else: 2777 item[0].SetValue(False) 2778 #if len(self.fittable_param)>0: 2779 for item in self.fittable_param: 2780 if item[0].IsShown(): 2781 if self.data.__class__.__name__ == "Data2D" or \ 2782 self.enable2D: 2783 item[0].SetValue(True) 2784 self.param_toFit.append(item) 2785 try: 2786 if len(self.values[item[1]]) > 0: 2787 item[0].SetValue(False) 2788 except: 2789 pass 2790 2791 else: 2792 ## for 1D all parameters except orientation 2793 if not item in self.orientation_params_disp: 2794 item[0].SetValue(True) 2795 self.param_toFit.append(item) 2796 try: 2797 if len(self.values[item[1]]) > 0: 2798 item[0].SetValue(False) 2799 except: 2800 pass 2801 else: 2802 item[0].SetValue(False) 2803 2804 else: 2805 for item in self.parameters: 2806 item[0].SetValue(False) 2807 for item in self.fittable_param: 2808 item[0].SetValue(False) 2809 self.param_toFit = [] 2810 2811 self.save_current_state_fit() 2812 2813 if event != None: 2814 #self._undo.Enable(True) 2815 ## post state to fit panel 2816 event = PageInfoEvent(page=self) 2817 wx.PostEvent(self.parent, event) 2818 param2fit = [] 2819 for item in self.param_toFit: 2820 if item[0] and item[0].IsShown(): 2821 param2fit.append(item[1]) 2822 self.parent._manager.set_param2fit(self.uid, param2fit) 2823 2695 2824 def select_param(self, event): 2696 2825 """ … … 2739 2868 if len(self.fittable_param) > 0: 2740 2869 len_orient_para *= 2 2870 #Set the value of checkbox that selected every checkbox or not 2871 if len(self.parameters) + len(self.fittable_param) - len_orient_para \ 2872 == len(self.param_toFit): 2873 self.cb1.SetValue(True) 2874 else: 2875 self.cb1.SetValue(False) 2741 2876 2742 2877 self.save_current_state_fit() … … 2840 2975 iy = 0 2841 2976 ix = 0 2842 sizer.Add(wx.StaticText(self, wx.ID_ANY, 'Parameter'), 2843 (iy, ix), (1, 1), wx.EXPAND | wx.ADJUST_MINSIZE, 0) 2977 select_text = "Select All" 2978 self.cb1 = wx.CheckBox(self, wx.ID_ANY, str(select_text), (10, 10)) 2979 wx.EVT_CHECKBOX(self, self.cb1.GetId(), self.select_all_param) 2980 self.cb1.SetToolTipString("To check/uncheck all the boxes below.") 2981 self.cb1.SetValue(True) 2982 2983 sizer.Add(self.cb1, (iy, ix), (1, 1), \ 2984 wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 5) 2844 2985 ix += 1 2845 2986 self.text2_2 = wx.StaticText(self, wx.ID_ANY, 'Value') … … 2868 3009 self.text2_4.Hide() 2869 3010 2870 CHECK_STATE = False3011 CHECK_STATE = self.cb1.GetValue() 2871 3012 for item in keys: 2872 3013 -
src/sas/sasgui/plottools/plottables.py
r8abd96d r1fac6c0 1022 1022 """ 1023 1023 1024 def __init__(self, x, y, dx=None, dy=None ):1024 def __init__(self, x, y, dx=None, dy=None, lam=None, dlam=None): 1025 1025 """ 1026 1026 Draw points specified by x[i],y[i] in the current color/symbol. … … 1036 1036 self.x = x 1037 1037 self.y = y 1038 self.lam = lam 1038 1039 self.dx = dx 1039 1040 self.dy = dy 1041 self.dlam = dlam 1040 1042 self.source = None 1041 1043 self.detector = None
Note: See TracChangeset
for help on using the changeset viewer.