Changeset 5232 for trunk/exports/G2export_CIF.py
- Timestamp:
- Mar 16, 2022 7:21:28 PM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/exports/G2export_CIF.py
r5191 r5232 369 369 # compute and add weight fractions to table if varied 370 370 for phase in Phases: 371 var = str(Phases[phase]['pId'])+':*:Scale' 372 if var not in combinedVaryList+list(depValDict.keys()): continue 371 pId = Phases[phase]['pId'] 372 var = str(pId)+':*:Scale' 373 if var not in combinedVaryList+list(depValDict.keys()): continue 373 374 wtFrList = [] 374 375 sigwtFrList = [] 375 376 for i,name in enumerate(histNames): 377 skip = False 376 378 if name not in Phases[phase]['Histograms']: 379 skip = True 380 elif not Phases[phase]['Histograms'][name]['Use']: 381 skip = True 382 hId = Histograms[name]['hId'] 383 var = str(pId)+':'+str(hId)+':WgtFrac' 384 if var not in seqData[name]['depParmDict']: skip = True 385 if skip: 377 386 wtFrList.append(None) 378 387 sigwtFrList.append(0.0) 379 388 continue 380 elif not Phases[phase]['Histograms'][name]['Use']: 381 wtFrList.append(None) 382 sigwtFrList.append(0.0) 383 continue 384 wtFrSum = 0. 385 for phase1 in Phases: 386 if name not in Phases[phase1]['Histograms']: continue 387 if not Phases[phase1]['Histograms'][name]['Use']: continue 388 wtFrSum += Phases[phase1]['Histograms'][name]['Scale'][0]*Phases[phase1]['General']['Mass'] 389 var = str(Phases[phase]['pId'])+':'+str(i)+':Scale' 390 wtFr = Phases[phase]['Histograms'][name]['Scale'][0]*Phases[phase]['General']['Mass']/wtFrSum 389 wtFr,sig = seqData[name]['depParmDict'][var] 391 390 wtFrList.append(wtFr) 392 if var in seqData[name]['varyList']:393 sig = seqData[name]['sig'][seqData[name]['varyList'].index(var)]*wtFr/Phases[phase]['Histograms'][name]['Scale'][0]394 elif var in seqData[name].get('depParmDict',{}):395 _,sig = seqData[name]['depParmDict'][var]396 else:397 sig = 0.0398 391 sigwtFrList.append(sig) 399 392 p = phaseLookup[Phases[phase]['pId']] … … 2241 2234 sequential fits, since it is called so many times. 2242 2235 ''' 2243 #breakpoint()2244 2236 Atoms = phasedict['Atoms'] 2245 2237 generalData = phasedict['General'] … … 2833 2825 '\n _pd_phase_block_id' + 2834 2826 '\n _pd_phase_mass_%') 2835 wtFrSum = 0.2827 hId = self.Histograms[histlbl]['hId'] 2836 2828 for phasenam in phasebyhistDict.get(histlbl): 2837 hapData = self.Phases[phasenam]['Histograms'][histlbl] 2838 General = self.Phases[phasenam]['General'] 2839 wtFrSum += hapData['Scale'][0]*General['Mass'] 2840 2841 for phasenam in phasebyhistDict.get(histlbl): 2842 hapData = self.Phases[phasenam]['Histograms'][histlbl] 2843 General = self.Phases[phasenam]['General'] 2844 wtFr = hapData['Scale'][0]*General['Mass']/wtFrSum 2845 pfx = str(self.Phases[phasenam]['pId'])+':'+str(hId)+':' 2846 if pfx+'Scale' in self.sigDict: 2847 sig = self.sigDict[pfx+'Scale']*wtFr/hapData['Scale'][0] 2829 pId = self.Phases[phasenam]['pId'] 2830 var = str(pId)+':'+str(hId)+':WgtFrac' 2831 if self.seqData is None and 'depSigDict' in self.OverallParms['Covariance']: 2832 depDict = self.OverallParms['Covariance']['depSigDict'] 2833 elif self.seqData is not None and 'depParmDict' in self.seqData[histlbl]: 2834 depDict = self.seqData[histlbl]['depParmDict'] 2848 2835 else: 2849 sig = -0.0001 2836 depDict = {} 2837 if var in depDict: 2838 wtFr,sig = depDict[var] 2839 wgtstr = G2mth.ValEsd(wtFr,sig) 2840 else: 2841 wgtstr = '?' 2850 2842 WriteCIFitem(self.fp, 2851 2843 ' '+ 2852 2844 str(self.Phases[phasenam]['pId']) + 2853 2845 ' '+datablockidDict[phasenam]+ 2854 ' '+ G2mth.ValEsd(wtFr,sig)2846 ' '+wgtstr 2855 2847 ) 2856 2848 WriteCIFitem(self.fp, 'loop_' + … … 3128 3120 '\n _pd_phase_block_id' + 3129 3121 '\n _pd_phase_mass_%') 3130 wtFrSum = 0.3122 hId = self.Histograms[histlbl]['hId'] 3131 3123 for phasenam in phasebyhistDict.get(histlbl): 3132 hapData = self.Phases[phasenam]['Histograms'][histlbl] 3133 General = self.Phases[phasenam]['General'] 3134 wtFrSum += hapData['Scale'][0]*General['Mass'] 3135 3136 for phasenam in phasebyhistDict.get(histlbl): 3137 hapData = self.Phases[phasenam]['Histograms'][histlbl] 3138 General = self.Phases[phasenam]['General'] 3139 wtFr = hapData['Scale'][0]*General['Mass']/wtFrSum 3140 pfx = str(self.Phases[phasenam]['pId'])+':'+str(hId)+':' 3141 if pfx+'Scale' in self.sigDict: 3142 sig = self.sigDict[pfx+'Scale']*wtFr/hapData['Scale'][0] 3124 pId = self.Phases[phasenam]['pId'] 3125 var = str(pId)+':'+str(hId)+':WgtFrac' 3126 if self.seqData is None and 'depSigDict' in self.OverallParms['Covariance']: 3127 depDict = self.OverallParms['Covariance']['depSigDict'] 3128 elif self.seqData is not None and 'depSigDict' in self.seqData[histlbl]: 3129 depDict = self.seqData[histlbl]['depParmDict'] 3143 3130 else: 3144 sig = -0.0001 3131 depDict = {} 3132 if var in depDict: 3133 wtFr,sig = depDict[var] 3134 wgtstr = G2mth.ValEsd(wtFr,sig) 3135 else: 3136 wgtstr = '?' 3145 3137 WriteCIFitem(self.fp, 3146 3138 ' '+ 3147 3139 str(self.Phases[phasenam]['pId']) + 3148 3140 ' '+datablockidDict[phasenam]+ 3149 ' '+ G2mth.ValEsd(wtFr,sig)3141 ' '+wgtstr 3150 3142 ) 3151 3143 WriteCIFitem(self.fp, 'loop_' + … … 4295 4287 WriteCIFitem(self.fp, '\n# POINTERS TO PHASE BLOCKS') 4296 4288 phaseBlockName = {} 4297 4298 wtFrSum = 0.4299 for j,phasenam in enumerate(sorted(self.Phases.keys())):4300 if hist not in self.Phases[phasenam]['Histograms']: continue4301 if not self.Phases[phasenam]['Histograms'][hist]['Use']: continue4302 phFrac = self.Phases[phasenam]['Histograms'][hist]['Scale'][0]4303 phFracKey = str(self.Phases[phasenam]['pId'])+':'+str(hId)+':Scale'4304 phFrac = self.seqData[hist]['parmDict'].get(phFracKey,phFrac)4305 wtFrSum += phFrac * self.Phases[phasenam]['General']['Mass']4306 4289 WriteCIFitem(self.fp, 'loop_ _pd_phase_id _pd_phase_block_id _pd_phase_mass_%') 4307 4290 for j,phasenam in enumerate(sorted(self.Phases.keys())): … … 4314 4297 s = PutInCol(phasenam,20) 4315 4298 phaseBlockName[pId] = datablockidDict[hist]+'_p'+str(j+1) 4316 phFrac = self.Phases[phasenam]['Histograms'][hist]['Scale'][0] 4317 phFracKey = str(self.Phases[phasenam]['pId'])+':'+str(hId)+':Scale' 4318 phFrac = self.seqData[hist]['parmDict'].get(phFracKey,phFrac) 4319 wtFr = phFrac * self.Phases[phasenam]['General']['Mass'] / wtFrSum 4320 if phFracKey in self.seqData[hist]['varyList']: 4321 sig = self.seqData[hist]['sig'][self.seqData[hist]['varyList'].index(phFracKey)] 4322 sig *= self.Phases[phasenam]['General']['Mass'] / wtFrSum 4323 elif phFracKey in self.seqData[hist]['depParmDict']: 4324 sig = self.seqData[hist]['depParmDict'][phFracKey][1] 4325 sig *= self.Phases[phasenam]['General']['Mass'] / wtFrSum 4326 else: 4327 sig = -0.0001 4328 WriteCIFitem(self.fp, " "+ s + " " + phaseBlockName[pId] + " " + G2mth.ValEsd(wtFr,sig)) 4299 var = str(pId)+':'+str(hId)+':WgtFrac' 4300 if var in self.seqData[hist].get('depParmDict',{}): 4301 wtFr,sig = self.seqData[hist]['depParmDict'][var] 4302 wgtstr = G2mth.ValEsd(wtFr,sig) 4303 else: 4304 wgtstr = '?' 4305 WriteCIFitem(self.fp, " "+ s + " " + phaseBlockName[pId] + " " + wgtstr) 4329 4306 datablockidDict[phasenam] = phaseBlockName[pId] 4330 4307 PP = FormatInstProfile(histblk["Instrument Parameters"],histblk['hId'])
Note: See TracChangeset
for help on using the changeset viewer.