#!/usr/bin/env python import numpy as np import argparse import sys import os import logging from py_src import read_config from py_src import py_utils if __name__ == "__main__": logging.basicConfig(filename="recon.log", level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description="make detector") args = parser.special_parse_args() det_file = os.path.join(args.main_dir, read_config.get_filename(args.config_file, 'make_detector', "out_detector_file")) to_write = py_utils.check_to_overwrite(det_file) logging.info("\n\nStarting make_detector....") logging.info(' '.join(sys.argv)) if to_write: timer = py_utils.my_timer() pm = read_config.get_detector_config(args.config_file, show=args.vb) q_pm = read_config.compute_q_params(pm['detd'], pm['dets_x'], pm['dets_y'], pm['pixsize'], pm['wavelength'], pm['ewald_rad'], show=args.vb) timer.reset_and_report("Reading experiment parameters") if args.vb else timer.reset() fov_len = 2 * int(np.ceil(q_pm['fov_in_A']/q_pm['half_p_res']/2.)) + 3 det_cen_x = pm['detc_x'] det_cen_y = pm['detc_y'] qscaling = 1. / pm['wavelength'] / q_pm['q_sep'] (x, y) = np.mgrid[0:pm['dets_x'], 0:pm['dets_y']] (x, y) = (x.flatten()-det_cen_x, y.flatten()-det_cen_y)
''' import os import numpy as np import h5py import sys import logging #Add utils directory to pythonpath sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from py_src import py_utils from py_src import writeemc from py_src import read_config if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='cheetahtodet') parser.add_argument('h5_name', help='HDF5 file to convert to detector format') parser.add_argument('-M', '--mask', help='Path to detector style mask (0:good, 1:no_orient, 2:bad) in h5 file') parser.add_argument('--mask_dset', help='Data set in mask file. Default: /data/data', default='data/data') args = parser.special_parse_args() logging.info('Starting cheetahtodet...') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) q_pm = read_config.compute_q_params(pm['detd'], pm['dets_x'], pm['dets_y'], pm['pixsize'], pm['wavelength'], pm['ewald_rad'], show=args.vb) output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') # Cheetah geometry files have coordinates in m with h5py.File(args.h5_name, 'r') as f: x = f['x'][:].flatten() * 1.e3 y = f['y'][:].flatten() * 1.e3
import logging #Add utils directory to pythonpath sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from py_src import py_utils from py_src import writeemc from py_src import read_config try: import psana except ImportError: sys.stderr.write('This utility needs PSANA to run. Unable to import psana module\n') sys.exit(1) if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='PSANA to det') parser.add_argument('exp_string', help='PSANA experiment string') parser.add_argument('det_name', help='Detector name (either source string or alias)') args = parser.special_parse_args() logging.info('Starting psanatodet...') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) q_pm = read_config.compute_q_params(pm['detd'], pm['dets_x'], pm['dets_y'], pm['pixsize'], pm['wavelength'], pm['ewald_rad'], show=args.vb) output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') ds = psana.DataSource(args.exp_string + ':idx') run = ds.runs().next() times = run.times() evt = run.event(times[0]) det = psana.Detector(args.det_name)
#!/usr/bin/env python import numpy as np import argparse import sys import os import logging from py_src import read_config from py_src import process_pdb from py_src import py_utils if __name__ == "__main__": # logging config must occur before my_argparser, because latter already starts logging logging.basicConfig(filename="recon.log", level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description="make electron density") args = parser.special_parse_args() logging.info("\n\nStarting.... make_densities") logging.info(' '.join(sys.argv)) try: pdb_file = os.path.join(args.main_dir, read_config.get_filename(args.config_file, 'make_densities', "in_pdb_file")) pdb_code = None except read_config.ConfigParser.NoOptionError: pdb_code = read_config.get_filename(args.config_file, 'make_densities', 'pdb_code') pdb_file = 'aux/%s.pdb' % pdb_code.upper() aux_dir = os.path.join(args.main_dir, read_config.get_filename(args.config_file, 'make_densities', "scatt_dir")) den_file = os.path.join(args.main_dir, read_config.get_filename(args.config_file, 'make_densities', "out_density_file")) to_write = py_utils.check_to_overwrite(den_file) if to_write: timer = py_utils.my_timer() pm = read_config.get_detector_config(args.config_file, show=args.vb)
#!/usr/bin/env python import numpy as np import argparse import sys import os import logging from py_src import read_config from py_src import py_utils if __name__ == "__main__": logging.basicConfig(filename="recon.log", level=logging.INFO, format='%(asctime)s - %(levelname)s -%(message)s') parser = py_utils.my_argparser(description="make intensities") args = parser.special_parse_args() den_file = os.path.join( args.main_dir, read_config.get_filename(args.config_file, 'make_intensities', "in_density_file")) intens_file = os.path.join( args.main_dir, read_config.get_filename(args.config_file, 'make_intensities', "out_intensity_file")) to_write = py_utils.check_to_overwrite(intens_file) logging.info("Starting.... make_intensities") logging.info(' '.join(sys.argv)) if to_write: timer = py_utils.my_timer() pm = read_config.get_detector_config(args.config_file, show=args.vb)
num = int(self.numstr.get()) - 1 if num > -1: self.numstr.set(str(num)) self.plot_frame() def rand_frame(self, event=None): num = np.random.randint(0, self.num_frames) self.numstr.set(str(num)) self.plot_frame() def quit(self, event=None): self.master.quit() if __name__ == '__main__': parser = py_utils.my_argparser( description='Utility for viewing frames of the emc file (list)') parser.add_argument('--cmap', help='Matplotlib color map (default: jet)') parser.add_argument('--mask', help='Name of mask file of type uint8 (default: None)') args = parser.special_parse_args() try: pfile = read_config.get_filename(args.config_file, 'emc', 'in_photons_file') print 'Using in_photons_file: %s' % pfile photons_list = [pfile] except ConfigParser.NoOptionError: plist = read_config.get_filename(args.config_file, 'emc', 'in_photons_list') print 'Using in_photons_list: %s' % plist with open(plist, 'r') as f:
''' import os import numpy as np import h5py import sys import logging #Add utils directory to pythonpath sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from py_src import py_utils from py_src import writeemc from py_src import read_config if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='condortoemc') parser.add_argument('condor_fname', help='Condor CXI file to convert to emc format') parser.add_argument('-o', '--output', help='Output folder, read from config file by default', type=str, default=None) parser.add_argument('-l', '--list', help='condor_fname is list of condor CXI files rather than a single one', action='store_true', default=False) args = parser.special_parse_args() logging.info('Starting condortoemc...') logging.info(' '.join(sys.argv)) print args.config_file pm = read_config.get_detector_config(args.config_file, show=args.vb) if args.output is None: output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') else: output_folder = args.output if not os.path.isfile(args.condor_fname):
from py_src import py_utils from py_src import writeemc from py_src import read_config try: import psana except ImportError: sys.stderr.write( 'This utility needs PSANA to run. Unable to import psana module\n') sys.exit(1) if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='PSANA to det') parser.add_argument('exp_string', help='PSANA experiment string') parser.add_argument('det_name', help='Detector name (either source string or alias)') args = parser.special_parse_args() logging.info('Starting psanatodet...') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) q_pm = read_config.compute_q_params(pm['detd'], pm['dets_x'], pm['dets_y'], pm['pixsize'], pm['wavelength'], pm['ewald_rad'], show=args.vb)
import logging #Add utils directory to pythonpath sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from py_src import py_utils from py_src import writeemc from py_src import read_config try: import condor except ImportError: sys.stderr.write('This utility needs CONDOR to run. Unable to import condor module\n') sys.exit(1) if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='CONDOR to det') parser.add_argument('filename', help='CONDOR file', type=str) args = parser.special_parse_args() logging.info('Starting condortodet...') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') with h5py.File(args.filename,'r') as f: condor_dets_x = f['detector']['nx'][0] condor_dets_y = f['detector']['ny'][0] condor_detc_x = f['detector']['cx'][0] condor_detc_y = f['detector']['cy'][0] condor_detd = f['detector']['distance'][0] # in units of m condor_pixsize = f['detector']['pixel_size'][0] # in units of m
def bin_image(array, binning): ''' Convenience function to bin 2D array by some bin factor The binning must divide the array shape ''' s = array.shape out = array.reshape(s[0] / binning, binning, s[1] / binning, binning).sum(axis=(1, 3)) return out if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='h5toemc') parser.add_argument('h5_name', help='HDF5 file to convert to emc format') parser.add_argument('-d', '--dset_name', help='Name of HDF5 dataset containing photon data', default=None) parser.add_argument( '-s', '--sel_file', help= 'Path to text file containing indices of frames\nor a set of 0 or 1 values. Default: Do all', default=None) parser.add_argument( '-S', '--sel_dset', help='Same as --sel_file, but pointing to the name of an HDF5 dataset',
from py_src import py_utils from py_src import writeemc from py_src import read_config try: import condor except ImportError: sys.stderr.write( 'This utility needs CONDOR to run. Unable to import condor module\n') sys.exit(1) if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='CONDOR to det') parser.add_argument('filename', help='CONDOR file', type=str) args = parser.special_parse_args() logging.info('Starting condortodet...') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') with h5py.File(args.filename, 'r') as f: condor_dets_x = f['detector']['nx'][0] condor_dets_y = f['detector']['ny'][0] condor_detc_x = f['detector']['cx'][0] condor_detc_y = f['detector']['cy'][0] condor_detd = f['detector']['distance'][0] # in units of m
''' import os import numpy as np import h5py import sys import logging #Add utils directory to pythonpath sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from py_src import py_utils from py_src import writeemc from py_src import read_config if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='cheetahtodet') parser.add_argument('h5_name', help='HDF5 file to convert to detector format') parser.add_argument('-M', '--mask', help='Path to detector style mask (0:good, 1:no_orient, 2:bad) in h5 file') parser.add_argument('--mask_dset', help='Data set in mask file. Default: /data/data', default='data/data') parser.add_argument('--dragonfly_mask', help='Whether mask has Dragonfly style values or not. (Default: false)', default=False, action='store_true') args = parser.special_parse_args() logging.info('Starting cheetahtodet...') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) q_pm = read_config.compute_q_params(pm['detd'], pm['dets_x'], pm['dets_y'], pm['pixsize'], pm['wavelength'], pm['ewald_rad'], show=args.vb) output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') # Cheetah geometry files have coordinates in m with h5py.File(args.h5_name, 'r') as f: x = f['x'][:].flatten() * 1.e3
if self.classes.unsaved: result = QtWidgets.QMessageBox.question( self, 'Warning', 'Unsaved changes to class list. Save?', QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | QtWidgets.QMessageBox.Cancel, QtWidgets.QMessageBox.Cancel) if result == QtWidgets.QMessageBox.Yes: self.classes.save() event.accept() elif result == QtWidgets.QMessageBox.No: event.accept() else: event.ignore() if __name__ == '__main__': parser = py_utils.my_argparser(description='Data classifier') parser.add_argument('--cmap', help='Matplotlib color map (default: CMRmap)') parser.add_argument( '-M', '--mask', help='Whether to zero out masked pixels (default False)', action='store_true', default=False) parser.add_argument('-C', '--class_fname', help='File containing classes for each frame', default='my_classes.dat') args = parser.special_parse_args() app = QtWidgets.QApplication(sys.argv)
num_frames = 1 return ind, num_frames def bin_image(array, binning): ''' Convenience function to bin 2D array by some bin factor The binning must divide the array shape ''' s = array.shape out = array.reshape(s[0]/binning, binning, s[1]/binning, binning).sum(axis=(1,3)) return out if __name__ == '__main__': logging.basicConfig(filename='recon.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') parser = py_utils.my_argparser(description='h5toemc') parser.add_argument('h5_name', help='HDF5 file to convert to emc format') parser.add_argument('-d', '--dset_name', help='Name of HDF5 dataset containing photon data', default=None) parser.add_argument('-s', '--sel_file', help='Path to text file containing indices of frames\nor a set of 0 or 1 values. Default: Do all', default=None) parser.add_argument('-S', '--sel_dset', help='Same as --sel_file, but pointing to the name of an HDF5 dataset', default=None) parser.add_argument('-l', '--list', help='h5_name is list of h5 files rather than a single one', action='store_true', default=False) parser.add_argument('-o', '--out_fname', help='Output filename if different from calculated name', default=None) args = parser.special_parse_args() logging.info('Starting h5toemc....') logging.info(' '.join(sys.argv)) pm = read_config.get_detector_config(args.config_file, show=args.vb) output_folder = read_config.get_filename(args.config_file, 'emc', 'output_folder') curr_num_data = 0 if not os.path.isfile(args.h5_name):
#!/usr/bin/env python import numpy as np import sys import os import ConfigParser from py_src import py_utils from py_src import read_config if __name__ == "__main__": # Read detector and photons file from config parser = py_utils.my_argparser(description="Generate virtual powder pattern") args = parser.special_parse_args() try: photons_list = [read_config.get_filename(args.config_file, 'emc', "in_photons_file")] except ConfigParser.NoOptionError: with open(read_config.get_param(args.config_file, 'emc', "in_photons_list"), 'r') as f: photons_list = map(lambda x: x.rstrip(), f.readlines()) pm = read_config.get_detector_config(args.config_file, show=args.vb) x, y = np.indices((pm['dets_x'], pm['dets_y'])) x = x.flatten() y = y.flatten() powder = np.zeros((x.max()+1,y.max()+1)) # For each emc file, read data and add to powder for photons_file in photons_list: # Read photon data with open(photons_file, 'rb') as f: