Revision 4eaf0dce8350a336dd310a788f96f236db7f0d7f authored by Eh Tan on 08 September 2008, 19:18:16 UTC, committed by Eh Tan on 08 September 2008, 19:18:16 UTC
1 parent b20f4d7
Citcoms_HdfDisplay.py
#! /usr/bin/env python
try:
import wxversion
wxversion.ensureMinimal('2.6')
except ImportError:
pass
from enthought.mayavi.app import Mayavi
import sys
from os.path import isfile
from getopt import getopt, GetoptError
class HdfDisplay(Mayavi):
filename = None
timestep = 0
nx_redu = 0
ny_redu = 0
nz_redu = 0
def run(self):
from enthought.mayavi.sources.vtk_file_reader import VTKFileReader
#import modules here
from enthought.mayavi.modules import surface, glyph , axes, outline, orientation_axes, scalar_cut_plane
from enthought.mayavi.sources.vtk_data_source import VTKDataSource
from enthought.tvtk.api import tvtk
#citcomS Filter and Modules
from plugins.CitcomSHDFUgrid import CitcomSHDFUgrid
from plugins.filter.CitcomSshowCaps import CitcomSshowCaps
from plugins.filter.CitcomSreduce import CitcomSreduce
import re
script = self.script
#DEFINES
orange = (1.0,0.5,0)
reduce_factor = 2
#Read Hdf file
src_hdf = CitcomSHDFUgrid()
hexgrid = src_hdf.initialize(self.filename,self.timestep,self.nx_redu,self.ny_redu,self.nz_redu)
radius_inner = src_hdf._radius_inner
data = VTKDataSource()
data.data = hexgrid
###########Display Data############
#Create new scene
script.new_scene()
script.add_source(data)
scap = CitcomSshowCaps()
script.add_filter(scap)
#Show ScalarCutPlane
scp = scalar_cut_plane.ScalarCutPlane()
script.add_module(scp)
#Add filter for a reduce grid
redu = CitcomSreduce()
#redu.setvalues(nx,ny,nz)
script.add_filter(redu)
gly = glyph.Glyph()
gly.glyph.glyph_source.scale = 0.082
gly.glyph.scale_mode = 'scale_by_scalar'
gly.glyph.color_mode = 'color_by_scalar'
script.add_module(gly)
mm = gly.module_manager
mm.scalar_lut_manager.use_default_range = False
mm.scalar_lut_manager.data_range = 0.0, 1.0
################### Create CORE ################################
#Load VTK Data Sets
sphere = tvtk.SphereSource()
sphere.radius = radius_inner
sphere.theta_resolution = 24
sphere.phi_resolution = 24
# Create a mesh from the data created above.
src = VTKDataSource()
src.data = sphere.output
script.add_source(src)
#Show Surface
surf_module = surface.Surface()
surf_module.actor.property.color = orange
script.add_module(surf_module)
# to create the rendering scene
## your stuff here
if __name__ == '__main__':
mc = HdfDisplay()
if len(sys.argv)>=3:
mc.filename = sys.argv[1]
try:
mc.timestep = int(sys.argv[2])
except ValueError:
print "Timestep is not a number."
sys.exit(1)
if not isfile(mc.filename):
print "File not found."
sys.exit(1)
else:
print "[filename] [timestep] -x [Reduce Grid Size X] -y [Reduce Grid Size X] -z [Reduce Grid Size Z]"
sys.exit(0)
##parse for reduction factors
try:
opts, args = getopt(sys.argv[3:], "x:y:z:", ['x=','y=','z='])
except GetoptError, msg:
print "Error: %s" % msg
sys.exit(1)
for opt,arg in opts:
if opt in ('-x','--nx_redu'):
try:
mc.nx_redu = int(arg)
print "Reducing Grid Size to x:",mc.nx_redu
except ValueError:
print "x is not a number..."
sys.exit(1)
if opt in ('-y','--ny_redu'):
try:
mc.ny_redu = int(arg)
print "Reducing Grid Size to y:",mc.ny_redu
except ValueError:
print "y is not a number..."
sys.exit(1)
if opt in ('-z','--nz_redu'):
try:
mc.nz_redu = int(arg)
print "Reducing Grid Size to z:",mc.nz_redu
except ValueError:
print "z is not a number..."
sys.exit(1)
mc.main()

Computing file changes ...