Changeset 1126 for trunk/exports


Ignore:
Timestamp:
Oct 28, 2013 4:06:58 PM (8 years ago)
Author:
toby
Message:

fix radii editing & reflection table access in CIF export

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/exports/G2export_CIF.py

    r1123 r1126  
    700700            cfrac = cx+3
    701701            DisAglData = {}
    702             DisAglCtls = {}
    703702            # create a list of atoms, but skip atoms with zero occupancy
    704703            xyz = []
     
    707706                if self.parmDict.get(fpfx+str(i),atom[cfrac]) == 0.0: continue
    708707                xyz.append([i,]+atom[cn:cn+2]+atom[cx:cx+3])
    709             if 'DisAglCtls' in generalData:
    710                 DisAglCtls = generalData['DisAglCtls']
    711             else: # should not happen, since DisAglDialog should be called for all
    712                 # phases before getting here
    713                 dlg = G2gd.DisAglDialog(self.G2frame,DisAglCtls,generalData)
     708            if 'DisAglCtls' not in generalData:
     709                # should not happen, since DisAglDialog should be called
     710                # for all phases before getting here
     711                dlg = G2gd.DisAglDialog(
     712                    self.G2frame,
     713                    {},
     714                    generalData)
    714715                if dlg.ShowModal() == wx.ID_OK:
    715                     DisAglCtls = dlg.GetData()
    716                     generalData['DisAglCtls'] = DisAglCtls
     716                    generalData['DisAglCtls'] = dlg.GetData()
    717717                else:
    718718                    dlg.Destroy()
     
    736736                DisAglData['covData'] = self.OverallParms['Covariance']
    737737            try:
    738                 AtomLabels,DistArray,AngArray = G2stMn.RetDistAngle(DisAglCtls,DisAglData)
     738                AtomLabels,DistArray,AngArray = G2stMn.RetDistAngle(
     739                    generalData['DisAglCtls'],
     740                    DisAglData)
    739741            except KeyError:        # inside DistAngle for missing atom types in DisAglCtls
    740742                print('**** ERROR - try again but do "Reset" to fill in missing atom types ****')
     
    10231025            for phasenam in histblk['Reflection Lists']:
    10241026                scale = self.Phases[phasenam]['Histograms'][histlbl]['Scale'][0]
    1025                 Icorr = np.array([refl[13] for refl in histblk['Reflection Lists'][phasenam]])[0]
    1026                 FO2 = np.array([refl[8] for refl in histblk['Reflection Lists'][phasenam]])
    1027                 I100 = scale*FO2*Icorr
     1027                refList = np.asarray(histblk['Reflection Lists'][phasenam]['RefList'])
     1028                I100 = scale*refList.T[8]*refList.T[11]
     1029                #Icorr = np.array([refl[13] for refl in histblk['Reflection Lists'][phasenam]])[0]
     1030                #FO2 = np.array([refl[8] for refl in histblk['Reflection Lists'][phasenam]])
     1031                #I100 = scale*FO2*Icorr
    10281032                Imax = max(Imax,max(I100))
    10291033
     
    10491053                scale = self.Phases[phasenam]['Histograms'][histlbl]['Scale'][0]
    10501054                phaseid = self.Phases[phasenam]['pId']
    1051                 refcount += len(histblk['Reflection Lists'][phasenam])
    1052                 for ref in histblk['Reflection Lists'][phasenam]:
     1055                refcount += len(histblk['Reflection Lists'][phasenam]['RefList'])
     1056                for j,ref in enumerate(histblk['Reflection Lists'][phasenam]['RefList']):
    10531057                    if DEBUG:
    10541058                        print('DEBUG: skipping reflection list')
     
    10731077                    s += PutInCol(G2mth.ValEsd(ref[4],-0.009),8)
    10741078                    if Imax > 0:
    1075                         I100 = 100.*scale*ref[8]*ref[13]/Imax
    1076                         s += PutInCol(G2mth.ValEsd(I100,-0.09),6)
     1079                        s += PutInCol(G2mth.ValEsd(100.*I100[j]/Imax,-0.09),6)
    10771080                    WriteCIFitem("  "+s)
    10781081
     
    11711174            dmax = None
    11721175            dmin = None
    1173             refcount = len(histblk['Data'])
    1174             for ref in histblk['Data']:
     1176            refcount = len(histblk['Data']['RefList'])
     1177            for ref in histblk['Data']['RefList']:
    11751178                s = "  "
    11761179                if hklmin is None:
     
    12541257            but = event.GetEventObject()
    12551258            phasedict = but.phasedict
    1256             dlg = G2gd.DisAglDialog(self.G2frame,{},phasedict['General'])
     1259            dlg = G2gd.DisAglDialog(
     1260                self.G2frame,
     1261                phasedict['General']['DisAglCtls'], # edited
     1262                phasedict['General'], # defaults
     1263                )
    12571264            if dlg.ShowModal() == wx.ID_OK:
    12581265                phasedict['General']['DisAglCtls'] = dlg.GetData()
     
    13791386            cfrac = cx+3
    13801387            DisAglData = {}
    1381             DisAglCtls = {}
    13821388            # create a list of atoms, but skip atoms with zero occupancy
    13831389            xyz = []
     
    13861392                if self.parmDict.get(fpfx+str(i),atom[cfrac]) == 0.0: continue
    13871393                xyz.append([i,]+atom[cn:cn+2]+atom[cx:cx+3])
    1388             if 'DisAglCtls' in generalData:
    1389                 DisAglCtls = generalData['DisAglCtls']
    1390             else: # should not happen, since DisAglDialog should be called for all
    1391                 # phases before getting here
    1392                 dlg = G2gd.DisAglDialog(self.cifdefs,DisAglCtls,generalData)
     1394            if 'DisAglCtls' not in generalData:
     1395                # should not be used, since DisAglDialog should be called
     1396                # for all phases before getting here
     1397                dlg = G2gd.DisAglDialog(
     1398                    self.cifdefs,
     1399                    {},
     1400                    generalData)
    13931401                if dlg.ShowModal() == wx.ID_OK:
    1394                     DisAglCtls = dlg.GetData()
    1395                     generalData['DisAglCtls'] = DisAglCtls
     1402                    generalData['DisAglCtls'] = dlg.GetData()
    13961403                else:
    13971404                    dlg.Destroy()
     
    14271434                DisAglData['covData'] = self.OverallParms['Covariance']
    14281435            try:
    1429                 AtomLabels,DistArray,AngArray = G2stMn.RetDistAngle(DisAglCtls,DisAglData)
     1436                AtomLabels,DistArray,AngArray = G2stMn.RetDistAngle(
     1437                    generalData['DisAglCtls'],
     1438                    DisAglData)
    14301439            except KeyError:        # inside DistAngle for missing atom types in DisAglCtls
    14311440                print('**** ERROR - try again but do "Reset" to fill in missing atom types ****')
     
    16091618                    )
    16101619                if not EditInstNames(): return
    1611         # check for a distance-angle range search range for each phase
    16121620        if not self.quickmode:
     1621            # check for a distance-angle range search range for each phase
    16131622            for phasenam in sorted(self.Phases.keys()):
    16141623                #i = self.Phases[phasenam]['pId']
    16151624                phasedict = self.Phases[phasenam] # pointer to current phase info           
    16161625                if 'DisAglCtls' not in phasedict['General']:
    1617                     dlg = G2gd.DisAglDialog(self.G2frame,{},phasedict['General'])
     1626                    dlg = G2gd.DisAglDialog(
     1627                        self.G2frame,
     1628                        {},
     1629                        phasedict['General'])
    16181630                    if dlg.ShowModal() == wx.ID_OK:
    16191631                        phasedict['General']['DisAglCtls'] = dlg.GetData()
Note: See TracChangeset for help on using the changeset viewer.