Changeset 4450 for trunk/GSASIIphsGUI.py


Ignore:
Timestamp:
May 31, 2020 12:06:22 PM (2 years ago)
Author:
vondreele
Message:

Add Histogram bonds & angles to Atoms/Compute? menu - makes histogram plots of bonds & angles about selected atoms

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r4448 r4450  
    41024102        fp.close()
    41034103   
    4104     def OnDistAngle(event,fp=None):
     4104    def OnDistAngleHist(event):
     4105        OnDistAngle(event,hist=True)
     4106       
     4107    def OnDistAngle(event,fp=None,hist=False):
    41054108        'Compute distances and angles'   
    41064109        indx = getAtomSelections(Atoms)
     
    41264129            cx = colLabels.index('x')
    41274130            cn = colLabels.index('Name')
     4131            ct = colLabels.index('Type')
     4132            Atypes = []
    41284133            for i,atom in enumerate(atomData):
    41294134                xyz.append([i,]+atom[cn:cn+2]+atom[cx:cx+3])
    41304135                if i in indx:
    41314136                    Oxyz.append([i,]+atom[cn:cn+2]+atom[cx:cx+3])
     4137                    Atypes.append(atom[ct])
     4138            Atypes = set(Atypes)
     4139            Atypes = ', '.join(Atypes)
    41324140            DisAglData['OrigAtoms'] = Oxyz
    41334141            DisAglData['TargAtoms'] = xyz
     
    41394147                DisAglData['covData'] = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,G2frame.root, 'Covariance'))
    41404148            try:
    4141                 if fp:
     4149                if hist:
     4150                    AtomLabels,DistArray,AngArray = G2stMn.RetDistAngle(DisAglCtls,DisAglData)
     4151                    Bonds = []
     4152                    for dists in DistArray:
     4153                        Bonds += [item[3] for item in DistArray[dists]]
     4154                    G2plt.PlotBarGraph(G2frame,Bonds,Xname=r'$\mathsf{Bonds,\AA}$',
     4155                        Title='Bond distances for %s'%Atypes,PlotName='%s Bonds'%Atypes)
     4156                    Angles = []
     4157                    for angles in AngArray:
     4158                        Angles += [item[2][0] for item in AngArray[angles]]
     4159                    G2plt.PlotBarGraph(G2frame,Angles,Xname='$\mathsf{Angles,{^o}}$',
     4160                        Title='Bond angles about %s'%Atypes,PlotName='%s Angles'%Atypes)
     4161                   
     4162                elif fp:
    41424163                    G2stMn.PrintDistAngle(DisAglCtls,DisAglData,fp)
    41434164                else:   
     
    56915712                                        impangles = 180.*item.get_constraint_value()['angles']/np.pi
    56925713                                        impangleList = item.anglesList[:4]
     5714                                        print(' Dihedral angle chi^2 =  %2f'%item.standardError)
    56935715                                        atoms = ENGINE.get_original_data("allElements",frame)
    56945716                                        impangleNames = ['%s-%s-%s-%s'%(atoms[impangleList[0][iat]],atoms[impangleList[1][iat]],
     
    1179611818        G2frame.Bind(wx.EVT_MENU, OnDistAngle, id=G2G.wxID_ATOMSDISAGL)
    1179711819        G2frame.Bind(wx.EVT_MENU, OnDistAnglePrt, id=G2G.wxID_ATOMSPDISAGL)
     11820        G2frame.Bind(wx.EVT_MENU, OnDistAngleHist, id=G2G.wxID_ATOMSBNDANGLHIST)
    1179811821        G2frame.Bind(wx.EVT_MENU, OnDensity, id=G2G.wxID_ATOMSDENSITY)
    1179911822        G2frame.Bind(wx.EVT_MENU, OnIsoDistortCalc, id=G2G.wxID_ISODISP)
Note: See TracChangeset for help on using the changeset viewer.