#!/usr/bin/env python """ Script to convert the PMT database in RAT to a CSV file (with spaces instead of commas). """ from __future__ import print_function, division import yaml if __name__ == '__main__': import argparse import numpy as np parser = argparse.ArgumentParser("convert a RATDB file -> CSV file") parser.add_argument("filename", help="RATDB filename") parser.add_argument("-o", "--output", help="output filename", required=True) args = parser.parse_args() s = '' with open(args.filename) as f: for line in f: if line.startswith('//'): continue s += line data = yaml.load(s) csv = np.zeros((len(data['x']),7),dtype=np.float64) csv[:,0] = data['x'] csv[:,1] = data['y'] csv[:,2] = data['z'] csv[:,3] = data['u'] csv[:,4] = data['v'] csv[:,5] = data['w'] csv[:,6] = data['pmt_type'] # reverse PMT normals csv[:,3] = -csv[:,3] csv[:,4] = -csv[:,4] csv[:,5] = -csv[:,5] header = "Format: x, y, z, u, v, w, pmt_type" np.savetxt(args.output, csv, fmt=['%10.2f']*6 + ['%i'], header=header)