Source code for pymcxray.FileFormat.Results.exported.DataMap

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

Read data map exported by MCXRay.
"""

# 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.

# Third party modules.
import numpy as np
from PIL import Image

# Local modules.

# Project modules

# Globals and constants variables.

[docs]class DataMap(object): def __init__(self, filepath): self._filepath = filepath self.size = (0, 0)
[docs] def read(self): lines = open(self._filepath, 'r').readlines() line = lines[0] index = line.rfind('(') self.imageName = line[:index].strip() text = line[index:].strip() items = text[1:-1].split(',') self.size = (int(items[0]), int(items[1])) pixels = np.zeros(self.size) for indexX, line in enumerate(lines[2:]): for indexY, value in enumerate(line.split()): pixels[indexX][indexY] = float(value) self.pixels = pixels
[docs] def showImage(self): image = Image.fromarray(self.pixels) image.show()
[docs] def saveImage(self, imageFilepath=None): if imageFilepath == None: imageFilepath = self._filepath[:-4] + '.tiff' image = Image.fromarray(self.pixels) image.save(imageFilepath)
@property def imageName(self): return self._imageName @imageName.setter def imageName(self, imageName): self._imageName = imageName @property def size(self): return self._size @size.setter def size(self, size): self._size = size @property def pixels(self): return self._pixels @pixels.setter def pixels(self, pixels): self._pixels = pixels
[docs]def run(): from pymcxray import get_current_module_path filepath = get_current_module_path(__file__, "../../../../test_data/exportedFiles/CNTsFePt_30keV_100e_100pixels_BF.txt") dataMap = DataMap(filepath) dataMap.read() dataMap.showImage() dataMap.saveImage()
if __name__ == '__main__': #pragma: no cover run()