#!/usr/bin/python import sys from optparse import OptionParser import numpy as np import scipy.spatial from grid import simple_rect_grid, exact_func import baker from tools import rms if __name__ == '__main__': parser = OptionParser() parser.add_option("-e", "--extra-points", dest="extra", type='int', default = 3, help = "how many extra points") parser.add_option("-s", "--source-density", dest="source", type='int', default = 11, help = "resolution of source mesh") parser.add_option("-d", "--dest-density", dest="dest", type='int', default = 11, help = "resolution of dest mesh") parser.add_option("-t", "--random-total", dest="random_total", type='int', default = 100, help = "total number of random points") parser.add_option("-r", "--random-dest", action = 'store_true', default = False, help = "verbosity") parser.add_option("-v", "--verbose", action = 'store_true', default = False, help = "verbosity") (options, args) = parser.parse_args() print >> sys.stderr, options mesh_source = simple_rect_grid(options.source, options.source) tree = scipy.spatial.KDTree(mesh_source.points) mesh_dest = simple_rect_grid(options.dest, options.dest) if options.random_dest: x = [] for i in xrange(options.random_total): rx = np.random.rand() * 2 - 1 ry = np.random.rand() * 2 - 1 x.append([rx, ry]) mesh_dest.points = np.array(x) errors = [] for x in mesh_dest.points: (final, exact) = baker.run_baker(x, mesh_source, tree, options.extra, options.verbose) cur_error = np.abs(final - exact) errors.append(cur_error) print rms(errors)