Source code for grid_translate

#!/usr/bin/env python
# *-* coding:utf-8 *-*
"""Translate a given grid using the user-supplied offsets dx, dz

Examples
--------

    grid_translate.py -e original/elem.dat -z 600 -o elem.dat

"""
from optparse import OptionParser
import numpy as np
import crtomo.grid as CRGrid


[docs] def handle_cmd_options(): parser = OptionParser() parser.add_option('-e', "--elem", dest="elem_file", type="string", help="elem.dat file (default: elem.dat)", default="elem.dat") # parser.add_option("-x", "--center_x", dest="center_x", type="float", # help="Center around which to rotate (X-coordiante)", # default=0.0) # parser.add_option("-y", "--center_y", dest="center_y", type="float", # help="Center around which to rotate (Y-coordiante)", # default=0.0) parser.add_option("-x", "--dx", dest="dx", type="float", help="Offset on x-axis (default: 0)", default=0.0) parser.add_option("-z", "--dz", dest="dz", type="float", help="Offset on z-axis (default: 0)", default=0.0) parser.add_option("-o", "--output", dest="output", help="Output file (default: elem_trans.dat)", metavar="FILE", default="elem_rot.dat") (options, args) = parser.parse_args() return options
[docs] def translate_nodes(xy, dx, dz): offset = np.array((dx, dz)) trans_xy = [] for vector in xy: trans_xy.append(vector + offset) trans_xy_array = np.array(trans_xy) return trans_xy_array
[docs] def main(): options = handle_cmd_options() # put in dummy center coordinates options.center_x = 0.0 options.center_y = 0.0 grid = CRGrid.crt_grid( elem_file=options.elem_file, elec_file='elec.dat' ) # grid.load_elem_file(options.elem_file) rotated_nodes = translate_nodes( grid.nodes['raw'][:, 1:3], options.dx, options.dz ) grid.nodes['raw'][:, 1:3] = rotated_nodes grid.save_elem_file(options.output)
if __name__ == '__main__': main()