Source code for pymcxray.FileFormat.Results.XraySimulatedSpectraRegion

#!/usr/bin/env python
"""
.. py:currentmodule:: FileFormat.Results.XraySimulatedSpectraRegion
.. moduleauthor:: Hendrix Demers <hendrix.demers@mail.mcgill.ca>

description
"""

# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2012 Hendrix Demers"
__license__ = ""

# Standard library modules.
import os.path
import csv

# Third party modules.

# Local modules.

# Project modules
import pymcxray.FileFormat.Results.BaseResults as BaseResults

# Globals and constants variables.
CHANNEL_NUMBER = "Channel index"
ENERGIES_REFERENCE_keV = "Channel reference energy (keV)"
ENERGIES_SIMULATED_keV = "Channel synthetic energy (keV)"
SIMULATED_INTENSITY = "Simulated intensity"
DETECTED_INTENSITY = "Detected intensity"
E_NET_PEAK_I = "E_Net peak %i"
PEAK_TO_BACKGROUND = "P_B (continuum)"
PEAK_TO_BACKGROUND_AVERAGE ="P_B_pm_avg (continuum)"

[docs]class XraySimulatedSpectraRegion(BaseResults.BaseResults): def __init__(self): super(XraySimulatedSpectraRegion, self).__init__() self.channelNumbers = [] self.energiesReference_keV = [] self.energies_keV = [] self.simulatedIntensities = [] self.detectedIntensities = [] self.eNetPeak = {} self.peakToBackgrpound = [] self.peakToBackgrpoundAverage = []
[docs] def read(self, regionID=0): suffix = "_SimulatedSpectraRegion_%i.csv" % (regionID) filename = self.basename + suffix filepath = os.path.join(self.path, filename) with open(filepath, 'r') as csvFile: reader = csv.DictReader(csvFile) _fieldNames = reader.fieldnames # Skip header row for row in reader: self.channelNumbers.append(float(row[CHANNEL_NUMBER])) self.energiesReference_keV.append(float(row[ENERGIES_REFERENCE_keV])) self.energies_keV.append(float(row[ENERGIES_SIMULATED_keV])) self.simulatedIntensities.append(float(row[SIMULATED_INTENSITY])) self.detectedIntensities.append(float(row[DETECTED_INTENSITY])) indexPeak = 0 key = E_NET_PEAK_I % (indexPeak) while key in row.keys(): self.eNetPeak.setdefault(indexPeak, []).append(float(row[key])) indexPeak += 1 key = E_NET_PEAK_I % (indexPeak) self.peakToBackgrpound.append(float(row[PEAK_TO_BACKGROUND])) self.peakToBackgrpoundAverage.append(float(row[PEAK_TO_BACKGROUND_AVERAGE]))
@property def fieldNames(self): fieldNames = [] fieldNames.append(SIMULATED_INTENSITY) fieldNames.append(DETECTED_INTENSITY) return fieldNames @property def channelNumbers(self): return self._channelNumbers @channelNumbers.setter def channelNumbers(self, channelNumbers): self._channelNumbers = channelNumbers @property def energiesReference_keV(self): return self._energiesReference_keV @energiesReference_keV.setter def energiesReference_keV(self, energiesReference_keV): self._energiesReference_keV = energiesReference_keV @property def energies_keV(self): return self._energies_keV @energies_keV.setter def energies_keV(self, energies_keV): self._energies_keV = energies_keV @property def simulatedIntensities(self): return self._simulatedIntensities @simulatedIntensities.setter def simulatedIntensities(self, simulatedIntensities): self._simulatedIntensities = simulatedIntensities @property def detectedIntensities(self): return self._detectedIntensities @detectedIntensities.setter def detectedIntensities(self, detectedIntensities): self._detectedIntensities = detectedIntensities @property def eNetPeak(self): return self._eNetPeak @eNetPeak.setter def eNetPeak(self, eNetPeak): self._eNetPeak = eNetPeak @property def peakToBackgrpound(self): return self._peakToBackgrpound @peakToBackgrpound.setter def peakToBackgrpound(self, peakToBackgrpound): self._peakToBackgrpound = peakToBackgrpound @property def peakToBackgrpoundAverage(self): return self._peakToBackgrpoundAverage @peakToBackgrpoundAverage.setter def peakToBackgrpoundAverage(self, peakToBackgrpoundAverage): self._peakToBackgrpoundAverage = peakToBackgrpoundAverage