Source code for pymcxray.FileFormat.Results.XraySpectraAtomEmittedDetectedLines

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

Read MCXRay XraySpectraAtomEmittedDetectedLines file.
"""

# 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.
ENERGIES_keV = "Energy (keV)"

[docs]class XraySpectraAtomEmittedDetectedLines(BaseResults.BaseResults): def __init__(self): super(XraySpectraAtomEmittedDetectedLines, self).__init__() self.fieldNames = [] self.energies_keV = [] self.characteristics = {}
[docs] def read(self, regionID): suffix = "_SpectraAtomEmittedDetectedLines_Region%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 assert fieldnames[0] == ENERGIES_keV self.fieldNames = fieldnames for row in reader: self.energies_keV.append(float(row[ENERGIES_keV])) for elementSymbol in self.fieldNames[1:]: self.characteristics.setdefault(elementSymbol.strip(), []).append(float(row[elementSymbol]))
@property def fieldNames(self): return self._fieldNames @fieldNames.setter def fieldNames(self, fieldNames): self._fieldNames = fieldNames @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 characteristics(self): return self._characteristics @characteristics.setter def characteristics(self, characteristics): self._characteristics = characteristics