Changeset 521


Ignore:
Timestamp:
Mar 15, 2012 3:10:29 PM (10 years ago)
Author:
vondreele
Message:

fourier maps & contouring - limiting sphere

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r520 r521  
    252252            generalData['POhkl'] = [0,0,1]
    253253        if 'Map' not in generalData:
    254             generalData['Map'] = {'MapType':'','RefList':'','Resolution':1.0,'rhoMax':100.,'rho':[],'rhoMax':0.}
     254            generalData['Map'] = {'MapType':'','RefList':'','Resolution':1.0,
     255                'rhoMax':100.,'rho':[],'rhoMax':0.,'mapSize':10.0}
    255256#        if 'SH Texture' not in generalData:
    256257#            generalData['SH Texture'] = data['SH Texture']
     
    318319        SetupGeneral()
    319320        generalData = data['General']
    320         Map = generalData['Map']  # {'MapType':'','RefList':'','Resolution':1.0,'rho':[],'rhoMax':0.}
     321        Map = generalData['Map'] 
     322            # {'MapType':'','RefList':'','Resolution':1.0,'rho':[],'rhoMax':0.,'mapSize':10.0}
    321323       
    322324        def NameSizer():
     
    19911993            def OnCameraPos(event):
    19921994                drawingData['cameraPos'] = cameraPos.GetValue()
    1993                 cameraPosTxt.SetLabel('Camera Distance: '+'%.2f'%(drawingData['cameraPos']))
    1994                 ZclipTxt.SetLabel('Z clipping: '+'%.2fA'%(drawingData['Zclip']*drawingData['cameraPos']/100.))
     1995                cameraPosTxt.SetLabel(' Camera Distance: '+'%.2f'%(drawingData['cameraPos']))
     1996                ZclipTxt.SetLabel(' Z clipping: '+'%.2fA'%(drawingData['Zclip']*drawingData['cameraPos']/100.))
    19951997                G2plt.PlotStructure(G2frame,data)
    19961998
    19971999            def OnZclip(event):
    19982000                drawingData['Zclip'] = Zclip.GetValue()
    1999                 ZclipTxt.SetLabel('Z clipping: '+'%.2fA'%(drawingData['Zclip']*drawingData['cameraPos']/100.))
     2001                ZclipTxt.SetLabel(' Z clipping: '+'%.2fA'%(drawingData['Zclip']*drawingData['cameraPos']/100.))
    20002002                G2plt.PlotStructure(G2frame,data)
    20012003               
    20022004            def OnVdWScale(event):
    20032005                drawingData['vdwScale'] = vdwScale.GetValue()/100.
    2004                 vdwScaleTxt.SetLabel('van der Waals scale: '+'%.2f'%(drawingData['vdwScale']))
     2006                vdwScaleTxt.SetLabel(' van der Waals scale: '+'%.2f'%(drawingData['vdwScale']))
    20052007                G2plt.PlotStructure(G2frame,data)
    20062008   
    20072009            def OnEllipseProb(event):
    20082010                drawingData['ellipseProb'] = ellipseProb.GetValue()
    2009                 ellipseProbTxt.SetLabel('Ellipsoid probability: '+'%d%%'%(drawingData['ellipseProb']))
     2011                ellipseProbTxt.SetLabel(' Ellipsoid probability: '+'%d%%'%(drawingData['ellipseProb']))
    20102012                G2plt.PlotStructure(G2frame,data)
    20112013   
    20122014            def OnBallScale(event):
    20132015                drawingData['ballScale'] = ballScale.GetValue()/100.
    2014                 ballScaleTxt.SetLabel('Ball scale: '+'%.2f'%(drawingData['ballScale']))
     2016                ballScaleTxt.SetLabel(' Ball scale: '+'%.2f'%(drawingData['ballScale']))
    20152017                G2plt.PlotStructure(G2frame,data)
    20162018
    20172019            def OnBondRadius(event):
    20182020                drawingData['bondRadius'] = bondRadius.GetValue()/100.
    2019                 bondRadiusTxt.SetLabel('Bond radius, A: '+'%.2f'%(drawingData['bondRadius']))
     2021                bondRadiusTxt.SetLabel(' Bond radius, A: '+'%.2f'%(drawingData['bondRadius']))
    20202022                G2plt.PlotStructure(G2frame,data)
    20212023               
    20222024            def OnContourLevel(event):
    20232025                drawingData['contourLevel'] = contourLevel.GetValue()/100.
    2024                 contourLevelTxt.SetLabel('Contour level: '+'%.2f'%(drawingData['contourLevel']*generalData['Map']['rhoMax']))
     2026                contourLevelTxt.SetLabel(' Contour level: '+'%.2f'%(drawingData['contourLevel']*generalData['Map']['rhoMax']))
    20252027                G2plt.PlotStructure(G2frame,data)
     2028
     2029            def OnMapSize(event):
     2030                drawingData['mapSize'] = mapSize.GetValue()/10.
     2031                mapSizeTxt.SetLabel(' Map radius, A: '+'%.1f'%(drawingData['mapSize']))
     2032                G2plt.PlotStructure(G2frame,data)
     2033
    20262034           
    20272035            slopSizer = wx.BoxSizer(wx.HORIZONTAL)
     
    20772085                contourLevel.Bind(wx.EVT_SLIDER, OnContourLevel)
    20782086                slideSizer.Add(contourLevel,1,wx.EXPAND|wx.RIGHT)
     2087                mapSizeTxt = wx.StaticText(dataDisplay,-1,' Map radius, A: '+'%.1f'%(drawingData['mapSize']))
     2088                slideSizer.Add(mapSizeTxt,0,wx.ALIGN_CENTER_VERTICAL)
     2089                mapSize = wx.Slider(dataDisplay,style=wx.SL_HORIZONTAL,value=int(10*drawingData['mapSize']))
     2090                mapSize.SetRange(1,100)
     2091                mapSize.Bind(wx.EVT_SLIDER, OnMapSize)
     2092                slideSizer.Add(mapSize,1,wx.EXPAND|wx.RIGHT)
    20792093           
    20802094            slopSizer.Add(slideSizer,1,wx.EXPAND|wx.RIGHT)
     
    34093423        mapData['rhoMax'] = np.max(np.real(rho))
    34103424        data['Drawing']['contourLevel'] = 1.
     3425        data['Drawing']['mapSize'] = 10.
    34113426        print mapData['MapType']+' computed: rhomax = %.3f rhomin = %.3f'%(mapData['rhoMax'],np.min(np.real(rho)))
     3427        G2plt.PlotStructure(G2frame,data)                   
    34123428## map printing for testing purposes
    34133429#        ix,jy,kz = mapData['rho'].shape
  • trunk/GSASIIplot.py

    r520 r521  
    22802280    if 'Map' in generalData:
    22812281        mapData = generalData['Map']
    2282         contLevel = drawingData['contourLevel']*mapData['rhoMax']
    2283         if 'delt-F' in mapData['MapType']:
    2284             rho = ma.array(mapData['rho'],mask=(np.abs(mapData['rho'])<contLevel))
    2285         else:
    2286             rho = ma.array(mapData['rho'],mask=(mapData['rho']<contLevel))
    2287         indx = np.array(ma.nonzero(rho)).T
    2288         steps = 1./np.array(rho.shape)
    2289         rhoXYZ = indx*steps
    22902282    cx,ct,cs = drawingData['atomPtrs']
    22912283    Wt = np.array([255,255,255])
     
    27182710        glPopMatrix()
    27192711       
    2720     def RenderMap(rhoXYZ,indx,rho,cLevel):
     2712    def RenderMap(rho,rhoXYZ,indx,Rok):
     2713        cLevel = drawingData['contourLevel']
    27212714        for i,xyz in enumerate(rhoXYZ):
    2722             x,y,z = xyz
    2723             I,J,K = indx[i]
    2724             alpha = 1.0
    2725             if cLevel < 1.:
    2726                 alpha = (abs(rho[I,J,K])/mapData['rhoMax']-cLevel)/(1.-cLevel)
    2727             if rho[I,J,K] < 0.:
    2728                 RenderSmallSphere(x,y,z,0.1*alpha,Rd)
    2729             else:
    2730                 RenderSmallSphere(x,y,z,0.1*alpha,Bl)
     2715            if not Rok[i]:
     2716                x,y,z = xyz
     2717                I,J,K = indx[i]
     2718                alpha = 1.0
     2719                if cLevel < 1.:
     2720                    alpha = (abs(rho[I,J,K])/mapData['rhoMax']-cLevel)/(1.-cLevel)
     2721                if rho[I,J,K] < 0.:
     2722                    RenderSmallSphere(x,y,z,0.1*alpha,Rd)
     2723                else:
     2724                    RenderSmallSphere(x,y,z,0.1*alpha,Bl)
    27312725                           
    27322726    def Draw():
     2727        if 'Map' in generalData:
     2728            mapData = generalData['Map']
     2729            contLevel = drawingData['contourLevel']*mapData['rhoMax']
     2730            if 'delt-F' in mapData['MapType']:
     2731                rho = ma.array(mapData['rho'],mask=(np.abs(mapData['rho'])<contLevel))
     2732            else:
     2733                rho = ma.array(mapData['rho'],mask=(mapData['rho']<contLevel))
     2734            indx = np.array(ma.nonzero(rho)).T
     2735            steps = 1./np.array(rho.shape)
     2736            rhoXYZ = indx*steps
     2737            radius = drawingData['mapSize']**2
     2738            view = np.array(drawingData['viewPoint'][0])
     2739            Rok = np.sum(np.inner(Amat,rhoXYZ-view).T**2,axis=1)>radius
    27332740        Ind = GetSelectedAtoms()
    27342741        VS = np.array(Page.canvas.GetSize())
     
    28662873#        glDisable(GL_BLEND)
    28672874        if len(rhoXYZ):
    2868             RenderMap(rhoXYZ,indx,rho,drawingData['contourLevel'])
     2875            RenderMap(rho,rhoXYZ,indx,Rok)
    28692876        if Backbone:
    28702877            RenderBackbone(Backbone,BackboneColor,bondR)
Note: See TracChangeset for help on using the changeset viewer.