예제 #1
0
def show(name, slice):
    from enthought.tvtk.api import tvtk
    import pylab
    import numpy

    gridreader = tvtk.XMLStructuredGridReader()
    gridreader.file_name = name
    gridreader.update()

    grid = gridreader.output

    data = grid.point_data
    points = grid.points
    dims = grid.dimensions
    dims = dims.tolist()
    dims.reverse()
    phase = numpy.array(data.get_array("Phase"))
    velocity = numpy.array(data.get_array("Velocity"))
    velx = velocity[:, 0]
    vely = velocity[:, 1]
    velz = velocity[:, 2]
    phase_numpy = phase.reshape(dims)
    velx_numpy = velx.reshape(dims)
    vely_numpy = vely.reshape(dims)
    velz_numpy = velz.reshape(dims)

    pylab.imshow(phase_numpy[slice, :, :])
    pylab.show()
예제 #2
0
def read(name):
    from enthought.tvtk.api import tvtk
    from enthought.mayavi import mlab
    import numpy

    gridreader = tvtk.XMLStructuredGridReader()
    gridreader.file_name = name
    gridreader.update()

    grid = gridreader.output
    data = grid.point_data
    points = grid.points
    dims = grid.dimensions
    dims = dims.tolist()
    dims.reverse()
    phase = numpy.array(data.get_array("Phase"))
    velocity = numpy.array(data.get_array("Velocity"))
    velx = velocity[:, 0]
    vely = velocity[:, 1]
    velz = velocity[:, 2]
    phase_numpy = phase.reshape(dims)
    velx_numpy = velx.reshape(dims)
    vely_numpy = vely.reshape(dims)
    velz_numpy = velz.reshape(dims)

    fig = mlab.figure()

    src = mlab.pipeline.scalar_field(phase_numpy)
    mlab.axes()

    v = mlab.pipeline.vector_field(velx_numpy, vely_numpy, velz_numpy)
    vx = mlab.pipeline.scalar_field(velx_numpy)
    vy = mlab.pipeline.scalar_field(vely_numpy)
    vz = mlab.pipeline.scalar_field(velz_numpy)

    extract = mlab.pipeline.extract_grid(src)
    extract.set(z_min=1, z_max=dims[2] - 2, y_min=1, y_max=dims[1] - 2)
    surf = mlab.pipeline.contour_surface(extract)

    mlab.pipeline.image_plane_widget(vx,
                                     plane_orientation='x_axes',
                                     slice_index=250)
    #mlab.pipeline.vectors(v, mask_points=20, scale_factor=3.)
    mlab.pipeline.vector_cut_plane(v, mask_points=2, scale_factor=3)
    mlab.show()
예제 #3
0
def Read_Phase(name):
    print os.getcwd()
    gridreader = tvtk.XMLStructuredGridReader()
    gridreader.file_name = name
    gridreader.update()

    grid = gridreader.output
    data = grid.point_data
    points = grid.points
    dims = grid.dimensions
    dims = dims.tolist()
    dims.reverse()
    phase = numpy.array(data.get_array("Phase"))
    velocity = numpy.array(data.get_array("Velocity"))
    velx = velocity[:, 0]
    vely = velocity[:, 1]
    velz = velocity[:, 2]
    phase_numpy = phase.reshape(dims)
    velx_numpy = velx.reshape(dims)
    vely_numpy = vely.reshape(dims)
    velz_numpy = velz.reshape(dims)

    #right way to reshape
    #phase_numpy=numpy.zeros(dims)
    #velx_numpy=numpy.zeros(dims)
    #vely_numpy =numpy.zeros(dims)
    #velz_numpy =numpy.zeros(dims)

    #for counter in range(0,phase.number_of_tuples):
    #    x,y,z=grid.get_point(counter)
    #    x=int(x)
    #    y=int(y)
    #    z=int(z)
    #    #print x,y,z
    #    phase_numpy[x,y,z]=phase[counter]
    #    #print velocity[counter]
    #    velx_numpy[x,y,z]=velocity[counter][0]
    #    vely_numpy[x,y,z]=velocity[counter][1]
    #    velz_numpy[x,y,z]=velocity[counter][2]

    return phase_numpy, velx_numpy, vely_numpy, velz_numpy
예제 #4
0
def check_symmetry(name):
    from enthought.tvtk.api import tvtk
    import pylab
    import numpy

    gridreader = tvtk.XMLStructuredGridReader()
    gridreader.file_name = name
    gridreader.update()

    grid = gridreader.output
    data = grid.point_data
    points = grid.points
    dims = grid.dimensions
    dims = dims.tolist()
    dims.reverse()
    phase = numpy.array(data.get_array("Phase"))
    velocity = numpy.array(data.get_array("Velocity"))
    velx = velocity[:, 0]
    vely = velocity[:, 1]
    velz = velocity[:, 2]
    phase_numpy = phase.reshape(dims)
    velx_numpy = velx.reshape(dims)
    vely_numpy = vely.reshape(dims)
    velz_numpy = velz.reshape(dims)

    print velx_numpy[25, :10, 0], velx_numpy[25, :10, 1]
    print vely_numpy[25, :10, 0], vely_numpy[25, :10, 1]
    print velz_numpy[25, :10, 0], velz_numpy[25, :10, 1]

    print "Another set:"
    print velx_numpy[25, 0, :10], velx_numpy[25, 1, :10]
    print vely_numpy[25, 0, :10], vely_numpy[25, 1, :10]
    print velz_numpy[25, 0, :10], velz_numpy[25, 1, :10]

    pylab.figure()
    pylab.imshow(phase_numpy[25, :, :])
    pylab.figure()
    pylab.imshow(velz_numpy[25, :, :])
    pylab.show()
    print velx_numpy.shape
예제 #5
0
def compare(name, name_quarter):
    from enthought.tvtk.api import tvtk
    import pylab
    import numpy

    gridreader = tvtk.XMLStructuredGridReader()
    gridreader.file_name = name
    gridreader.update()

    gridreader_quarter = tvtk.XMLStructuredGridReader()
    gridreader_quarter.file_name = name_quarter
    gridreader_quarter.update()

    grid = gridreader.output
    data = grid.point_data

    grid_quarter = gridreader_quarter.output
    data_quarter = grid_quarter.point_data

    dims = grid.dimensions
    dims = dims.tolist()
    dims.reverse()

    dims_quarter = grid_quarter.dimensions
    dims_quarter = dims_quarter.tolist()
    dims_quarter.reverse()

    phase = numpy.array(data.get_array("Phase"))
    velocity = numpy.array(data.get_array("Velocity"))
    velx = velocity[:, 0]
    vely = velocity[:, 1]
    velz = velocity[:, 2]
    phase_numpy = phase.reshape(dims)
    velx_numpy = velx.reshape(dims)
    vely_numpy = vely.reshape(dims)
    velz_numpy = velz.reshape(dims)

    phase_quarter = numpy.array(data_quarter.get_array("Phase"))
    velocity_quarter = numpy.array(data_quarter.get_array("Velocity"))
    velx_quarter = velocity_quarter[:, 0]
    vely_quarter = velocity_quarter[:, 1]
    velz_quarter = velocity_quarter[:, 2]
    phase_quarter_numpy = phase_quarter.reshape(dims_quarter)
    velx_quarter_numpy = velx_quarter.reshape(dims_quarter)
    vely_quarter_numpy = vely_quarter.reshape(dims_quarter)
    velz_quarter_numpy = velz_quarter.reshape(dims_quarter)

    pylab.figure()
    pylab.imshow(phase_numpy[25, 0:27, 26:])
    pylab.figure()
    pylab.imshow(phase_quarter_numpy[25, 1:, 1:], origin="lower")
    pylab.figure()
    pylab.plot(phase_quarter_numpy[25, :, 0])
    pylab.plot(phase_quarter_numpy[25, :, 1])
    pylab.figure()
    pylab.plot(phase_numpy[25, 26:, 26])
    pylab.plot(phase_quarter_numpy[25, 1:, 0])

    print "The difference is", phase_quarter_numpy[
        25, :, 0] - phase_quarter_numpy[25, :, 1]
    print "Another difference is", phase_numpy[25, 26:,
                                               26] - phase_quarter_numpy[25,
                                                                         1:, 0]

    #print velx_quarter_numpy[25,:10,0], velx_quarter_numpy[25,:10,1]
    #print vely_quarter_numpy[25,:10,0], vely_quarter_numpy[25,:10,1]
    #print velz_quarter_numpy[25,:10,0], velz_quarter_numpy[25,:10,1]

    pylab.show()