| 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 | #
|
|---|
| 7 | def 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 |
|
|---|
| 22 | def 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 |
|
|---|
| 30 | from Midas.midas_text import addCommand
|
|---|
| 31 | addCommand('surfvalues', surfvalue_command)
|
|---|