471
473
if len(sys.argv)!=2 :
472
raise Exception, " WRONG NUMBER OF ARGUMENTS, give par_file_name "
481
logger.error(" problems reading file %s", filename)
482
raise Exception, " EXITING "
478
raise Exception, " WRONG NUMBER OF ARGUMENTS, give par_file_name "
483
s = sys._getframe(1).f_globals['parameters']
489
logger.error(" problems reading file %s", filename)
490
raise Exception, " EXITING "
487
495
s=treat_par_file(s)
491
500
class Parameters:
582
591
logger.debug("%i %i", START_VOXEL_3, END_VOXEL_3)
584
if( Parameters.RECONSTRUCT_FROM_SINOGRAMS):
593
if(( Parameters.RECONSTRUCT_FROM_SINOGRAMS) or (module_mode)):
588
597
################################################
591
if( "NUM_LAST_IMAGE" in dir(Parameters) and "NUM_FIRST_IMAGE" in dir(Parameters) ):
599
Parameters.NUM_FIRST_SINOGRAM = 0
600
Parameters.NUM_LAST_SINOGRAM = len(sys._getframe(1).f_globals['sinograms']) - 1
601
numpj = Parameters.NUM_LAST_SINOGRAM
602
elif( "NUM_LAST_IMAGE" in dir(Parameters) and "NUM_FIRST_IMAGE" in dir(Parameters) ):
592
603
numpj = Parameters.NUM_LAST_IMAGE+1-Parameters.NUM_FIRST_IMAGE
593
604
elif("NUM_IMAGE_2" in dir(Parameters)):
594
605
numpj = Parameters.NUM_IMAGE_2
630
641
sys.path=[Parameters.SINO_FILTER_PATH] + sys.path
631
642
exec ("from %s import Filter as SINO_FILTER" % Parameters.SINO_FILTER,locals() , globals() )
636
645
for nsino in range( Parameters.NUM_FIRST_SINOGRAM, Parameters.NUM_LAST_SINOGRAM+1 ):
638
if(Parameters.NUMBER_LENGTH_VARIES):
639
name=name+("%d"%nsino)+Parameters.SINOGRAM_POSTFIX
647
SINO = sys._getframe(1).f_globals['sinograms'][nsino]
642
if(len(number)< Parameters.LENGTH_OF_NUMERICAL_PART ):
650
if(Parameters.NUMBER_LENGTH_VARIES):
651
name=name+("%d"%nsino)+Parameters.SINOGRAM_POSTFIX
654
if(len(number)< Parameters.LENGTH_OF_NUMERICAL_PART ):
643
655
number = ("0" * (Parameters.LENGTH_OF_NUMERICAL_PART-len(number)))+ number
645
number=number[:Parameters.LENGTH_OF_NUMERICAL_PART]
647
name=name+number+Parameters.SINOGRAM_POSTFIX
648
name=Parameters.SINOGRAM_PREFIX+name
650
# name_out=name[string.rfind(name,"/")+1:] +".vol"
652
logger.info(" reading file %s", name)
653
start_time = time.time();
655
SINO = EdfFile.EdfFile(name).GetData(0, DataType="FloatValue")
656
edf_timer += time.time() - start_time
657
# SINO = Numeric.transpose(SINO)*Numeric.array([1],"f")
657
number=number[:Parameters.LENGTH_OF_NUMERICAL_PART]
659
name=name+number+Parameters.SINOGRAM_POSTFIX
661
name=Parameters.SINOGRAM_PREFIX+name
663
# name_out=name[string.rfind(name,"/")+1:] +".vol"
665
logger.info(" reading file %s", name)
666
start_time = time.time();
668
SINO = EdfFile.EdfFile(name).GetData(0, DataType="FloatValue")
669
edf_timer += time.time() - start_time
670
# SINO = Numeric.transpose(SINO)*Numeric.array([1],"f")
658
672
logger.info( SINO.shape )
662
673
SINO.shape=(1,)+SINO.shape
664
675
if(nsino==Parameters.NUM_FIRST_SINOGRAM):
665
676
name_out=Parameters.OUTPUT_FILE
666
SINOWORK=Numeric.array(SINO)
677
SINOWORK=Numeric.array(SINO)
667
678
start_time = time.clock()
669
680
pyhst=PyHST_c.PyHST( logger, name_out ,