Scripts: surfval.py

File surfval.py, 1.1 KB (added by goddard, 10 years ago)
Line 
1# Output map values at surface points.
2#
3# Example command, #0 is surface, #1 is volume data:
4#
5# surfvalues #0 #1 ~/Desktop/values.txt
6#
7def surface_values(surfaces, volume, path):
8 from os.path import expanduser
9 f = open(expanduser(path), 'w')
10 f.write('# %8s %10s %10s %10s %10s\n' % ('x', 'y', 'z', 'area', 'value'))
11 for p in surfaces:
12 sxf = p.model.openState.xform
13 va, ta = p.geometry
14 vals = volume.interpolated_values(va, sxf)
15 from _surface import vertex_areas
16 areas = vertex_areas(va, ta)
17 for i in range(len(va)):
18 x,y,z = va[i]
19 f.write('%10.5g %10.5g %10.5g %10.5g %10.5g\n' % (x,y,z, areas[i], vals[i]))
20 f.close()
21
22def surfvalue_command(cmd_name, args):
23 from Commands import parse_arguments, surface_pieces_arg, volume_arg, string_arg
24 req_args = (('surfaces', surface_pieces_arg),
25 ('volume', volume_arg),
26 ('path', string_arg))
27 kw = parse_arguments(cmd_name, args, req_args)
28 surface_values(**kw)
29
30from Midas.midas_text import addCommand
31addCommand('surfvalues', surfvalue_command)