Ignore:
Timestamp:
Jan 10, 2013 5:16:51 PM (12 years ago)
Author:
Jae Cho <jhjcho@…>
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:
b1174ec
Parents:
2d9c7266
Message:

fixed and added some features in pdb reader

Location:
calculatorview/src/sans/perspectives/calculator
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py

    r3cfa760 rdbc01f2  
    353353        x_in = n_qbins * n_pixs / 100000 
    354354        # magic equation: not very accurate 
    355         etime = 0.00001 + 0.085973 * x_in 
     355        etime = 1.0 + 0.14 * x_in 
    356356        return int(etime) 
    357357         
     
    526526            else: 
    527527                raise 
    528             for name, _, unit in  self.parameters: 
    529                 if name.GetLabelText() == 'background': 
    530                     if is_pdbdata: 
    531                         unit.SetLabel('[A^(2)]') 
    532                     else: 
    533                         unit.SetLabel('[1/cm]') 
    534                     break 
    535528            self._set_sld_data_helper(True) 
    536529        except: 
     
    575568        Draw 3D sld profile 
    576569        """ 
     570        color_dic = {'H':'blue', 'D':'purple', 'N': 'orange',  
     571                     'O':'red', 'C':'green', 'Other':'k'} 
    577572        graph_title = self.file_name 
    578573        graph_title += "   3D SLD Profile " 
     574         
    579575        flag = self.parent.check_omfpanel_inputs() 
    580576        if not flag: 
     
    595591        add_icon(self.parent, frame) 
    596592        panel = frame.plotpanel 
     593         
    597594        try: 
    598595            # mpl >= 1.0.0 
     
    606603                logging.error("PlotPanel could not import Axes3D") 
    607604                raise 
     605             
    608606        marker = ',' 
    609607        m_size = 2 
     
    622620        is_nonzero = sld_tot > 0.0   
    623621        is_zero = sld_tot == 0.0   
     622         
     623        # Plot null points 
    624624        if is_zero.any(): 
    625625            ax.plot(pos_x[is_zero], pos_z[is_zero], pos_y[is_zero], marker,  
     
    632632            sld_my = sld_my[is_nonzero] 
    633633            sld_mz = sld_mz[is_nonzero] 
    634  
    635         ax.plot(pos_x, pos_z, pos_y,  
    636                 marker, c="k",  
    637                 alpha=0.5, markeredgecolor="k", markersize=m_size)  
     634         
     635        # Plot selective points in color 
     636        for key in color_dic.keys(): 
     637            chosen_color = output.pix_symbol == key 
     638            other_color = numpy.ones(len(output.pix_symbol), dtype='bool') 
     639            if chosen_color.any(): 
     640                other_color = other_color  & (chosen_color != True) 
     641                color = color_dic[key] 
     642                ax.plot(pos_x[chosen_color], pos_z[chosen_color],  
     643                        pos_y[chosen_color], marker, c=color, alpha=0.5,  
     644                        markeredgecolor=color, markersize=m_size, label=key)  
     645        # Plot All others         
     646        if other_color.any(): 
     647            ax.plot(pos_x[other_color], pos_z[other_color], pos_y[other_color],  
     648                    marker, c="k", alpha=0.5, markeredgecolor="k",  
     649                    markersize=m_size, label="Other")  
    638650         
    639651        if has_arrow and len(pos_x) > 0:      
     
    643655                draw w/arrow 
    644656                """ 
    645                 #frame.SetSize(wx.Size(650, 570)) 
    646                 #event.Skip() 
    647657                max_mx = max(numpy.fabs(sld_mx)) 
    648658                max_my = max(numpy.fabs(sld_my)) 
     
    679689                                                  mutation_scale=10, lw=1,  
    680690                                                  arrowstyle="->", alpha = 0.5) 
    681                         ax.add_artist(arrows) 
    682                          
     691                        ax.add_artist(arrows)  
    683692                except: 
    684693                    pass  
     
    701710        ax.set_ylabel('z ($\A%s$)'% output.pos_unit) 
    702711        ax.set_zlabel('y ($\A%s$)'% output.pos_unit) 
     712        if output.pix_type == 'atom': 
     713            ax.legend(loc='upper left', prop={'size':10}) 
    703714        num_graph = str(self.graph_num) 
    704715        frame.SetTitle('Graph %s: %s'% (num_graph, graph_title))         
     
    743754            return 
    744755        try: 
    745             vol = self.parent.get_pix_volume() 
    746             self.model.set_pixel_volume(vol) 
     756            #vol = self.parent.get_pix_volumes() 
     757            #self.model.set_pixel_volumes(vol) 
    747758            self.model.set_sld_data(self.sld_data) 
    748759            self.set_input_params() 
     
    754765             
    755766            cal_out = CalcGen(input=[self.data.qx_data,  
    756                                      self.data.qy_data,i_out],  
     767                                     self.data.qy_data, i_out],  
    757768                              completefn=self.complete,  
    758769                              updatefn=self._update) 
     
    10431054        return self.sld_data 
    10441055     
    1045     def get_pix_volume(self): 
     1056    def get_pix_volumes(self): 
    10461057        """ 
    10471058        Get the pixel volume 
    10481059        """ 
    1049         val = 1 
    1050         if self.sld_data.pix_type == 'pixel': 
    1051             for lst in self.stepsize: 
    1052                 val *= float(lst[1].GetValue()) 
    1053          
    1054         return numpy.fabs(val) 
     1060        vol = self.sld_data.vol_pix 
     1061         
     1062        return vol 
    10551063                 
    10561064    def _get_other_val(self):   
     
    12701278            ctl = InputTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    12711279                                style=wx.TE_PROCESS_ENTER) 
     1280            ctl.Bind(wx.EVT_TEXT, self._onstepsize ) 
    12721281            ctl.SetValue(format_number(value, True)) 
    12731282            ctl.Enable(not is_data) 
     
    13871396                    ctr_list[1].SetValue(format_number(mean_val, True)) 
    13881397                    ctr_list[1].Enable(enable) 
    1389                     ctr_list[2].SetLabel("[" + sld_data.sld_unit + "]") 
     1398                    #ctr_list[2].SetLabel("[" + sld_data.sld_unit + "]") 
    13901399                    break    
    13911400 
     
    14831492        return flag 
    14841493     
     1494    def _onstepsize(self, event): 
     1495        """ 
     1496        On stepsize event 
     1497        """ 
     1498        flag = True 
     1499        if event != None: 
     1500            event.Skip() 
     1501            ctl = event.GetEventObject() 
     1502            ctl.SetBackgroundColour("white") 
     1503 
     1504        if flag and not self.sld_data.is_data:#ctl.IsEnabled(): 
     1505            s_size = 1.0 
     1506            try: 
     1507                for item in self.stepsize: 
     1508                    s_val = float(item[1].GetValue()) 
     1509                    if s_val <= 0: 
     1510                        item[1].SetBackgroundColour("pink") 
     1511                        ctl.Refresh() 
     1512                        return 
     1513                    if numpy.isfinite(s_val): 
     1514                        s_size *= s_val 
     1515                self.sld_data.set_pixel_volumes(s_size) 
     1516            except: 
     1517                pass 
     1518        ctl.Refresh() 
     1519   
     1520          
    14851521    def set_npts_from_slddata(self): 
    14861522        """ 
     
    17591795        return n_pix 
    17601796     
    1761     def get_pix_volume(self): 
     1797    def get_pix_volumes(self): 
    17621798        """ 
    17631799        Get a pixel volume 
    17641800        """ 
    1765         vol = self.omfpanel.get_pix_volume() 
     1801        vol = self.omfpanel.get_pix_volumes() 
    17661802        return vol 
    17671803     
  • calculatorview/src/sans/perspectives/calculator/load_thread.py

    rdbc5dc9b rdbc01f2  
    33""" 
    44import time 
    5 import wx 
    65from data_util.calcthread import CalcThread 
    76from sans.dataloader.loader import Loader 
  • calculatorview/src/sans/perspectives/calculator/media/gen_sans_help.html

    r54d6c3e rdbc01f2  
    115115For example, both values are 0.5 for unpolarized neutrons. 
    116116<br> 
    117 *Note II: The unit of intensity calculated from .sld, .omf, or .txt files is 1/cm, otherwise 
    118 it is &#197;<sup>2</sup>. (In the first equation above, the V is set to 1.) 
    119 <br> 
    120 *Note III: This computation is totally based on the pixel (or atomic) data fixed 
     117*Note II: This computation is totally based on the pixel (or atomic) data fixed 
    121118in the xyz coordinates. Thus no angular orientational averaging is considered. 
    122119<br> 
    123 *Note IV: For the nuclear scattering length density, only the real component is taken account. 
     120*Note III: For the nuclear scattering length density, only the real component is taken account. 
     121<br> 
    124122</body> 
Note: See TracChangeset for help on using the changeset viewer.