def __init__(self, filename=None):
        self.debug_p = False

        self.phantfilename = filename

        # all measurements are in cm
        self.height = 5.
        self.radius = 10.
        self.width = 2. * self.radius
        self.depth = 30.

        # voxel size
        self.dx = 0.05
        self.dy = 0.05
        self.dz = 0.25

        # compute dimensions of phantom, i.e. number of
        # voxels in each direction
        self.dimensions = (int(self.width / self.dx), \
            int((self.height + self.radius) / self.dy), \
            int(self.depth / self.dz))

        # print self.dimensions

        # make a blank phantom
        self.phantom = EGSPhant.EGSPhant(None, self.dimensions[0],
                                         self.dimensions[1],
                                         self.dimensions[2])

        self.phantom.phantfilename = self.phantfilename

        # phantom is just air and water
        self.phantom.nmaterials = 2
        self.phantom.materials = ('AIR700ICRU', 'H2O700ICRU')

        self.phantom.estepe = ones(self.phantom.nmaterials, type=Float32)

        # set the voxel edges
        self.phantom.xedges = zeros(self.phantom.dimensions[0] + 1,
                                    type=Float32)
        self.phantom.yedges = zeros(self.phantom.dimensions[1] + 1,
                                    type=Float32)
        self.phantom.zedges = zeros(self.phantom.dimensions[2] + 1,
                                    type=Float32)

        for i in range(self.phantom.dimensions[0] + 1):
            self.phantom.xedges[i] = -10. + i * self.dx

        for i in range(self.phantom.dimensions[1] + 1):
            self.phantom.yedges[i] = -10. + i * self.dy

        for i in range(self.phantom.dimensions[2] + 1):
            self.phantom.zedges[i] = -15. + i * self.dz

        self.phantom.edges_to_centers()
Beispiel #2
0
#!/usr/bin/env python2.4

import sys

from egsnrc import EGSPhant

if len(sys.argv) == 1:
    print "Need one argument, name of phantom file to fix"
else:
    try:
        phant = EGSPhant(sys.argv[1])
    except IOError:
        raise

    suffix = '.egsphant'
    phant.fix_density()
    basename = sys.argv[1].split(suffix)[0]
    newname = basename + '_fixed' + suffix
    phant.save(newname)