示例#1
0
def testvisad():
    from visad import RealType, Real, FunctionType, FlatField, RealTuple
    from visad.java3d import DisplayImplJ3D, DirectManipulationRendererJ3D
    from visad.java2d import DisplayImplJ2D, DirectManipulationRendererJ2D
    import subs

    # make Types for our data
    ir_radiance = RealType("ir_raidance")
    count = RealType("count")
    ir_histogram = FunctionType(ir_radiance, count)
    vis_radiance = RealType("vis_radiance")

    # make up the data values...
    histogram = FlatField.makeField(ir_histogram, 64, 0)
    direct = Real(ir_radiance, 2.0)
    direct_tuple = RealTuple( (Real(count, 1.0), Real(ir_radiance,2.0), Real(vis_radiance, 1.0)) )

    # create the scalar mappings for display 0
    maps0=subs.makeMaps(vis_radiance,"z", ir_radiance,"x",
                                        count, "y", count,"green")
    # make display 0 a 3-D display
    dpys0 = subs.makeDisplay3D(maps0)
    subs.setPointSize(dpys0, 5.0)

    # add the data to display 0 and keep the references
    ref_hist = subs.addData("histo", histogram, dpys0,
                    renderer=DirectManipulationRendererJ3D())
    ref_dir = subs.addData("dir", direct, dpys0,
                    renderer=DirectManipulationRendererJ3D())
    ref_dir_tuple = subs.addData("dir_tup", direct_tuple, dpys0,
                    renderer=DirectManipulationRendererJ3D())

    # create the scalar mappings for display 1
    maps1 = subs.makeMaps(ir_radiance,"x", count,"y", count,"green")

    # make display 1 a 2-D display
    dpys1 = subs.makeDisplay2D(maps1)
    subs.setPointSize(dpys1, 5.0)

    # add the data to this display, but use the references from
    # the previous one so the direct manipulations interact with both
    subs.addData("histo", histogram, dpys1,
            renderer=DirectManipulationRendererJ2D(), ref=ref_hist)
    subs.addData("dir", direct, dpys1,
            renderer=DirectManipulationRendererJ2D(), ref=ref_dir)
    subs.addData("dir_tup", direct_tuple, dpys1,
            renderer=DirectManipulationRendererJ2D(), ref=ref_dir_tuple)

    # function to clean up when display window is closed
    def cleanup(event):
        dpys0.destroy()
        dpys1.destroy()
        frame.dispose()

    # create window for display and add the dspy displays to it
    from javax.swing import JPanel, JFrame
    from java.awt import GridLayout
    panel1 = JPanel()
    panel1.add(dpys0.getComponent())
    panel2 = JPanel()
    panel2.add(dpys1.getComponent())

    frame = JFrame("Test35", windowClosing=cleanup)
    pane = frame.getContentPane()
    pane.setLayout(GridLayout(1,2))
    pane.add(panel1)
    pane.add(panel2)
    frame.setSize(600,300)
    frame.setVisible(1)
示例#2
0
from visad import Real, RealTuple, RealType, DataReferenceImpl
from visad.java3d import DefaultRendererJ3D
from visad.bom import DiscoverableZoom

a=load("../data/mcidas/AREA0007")
ds = a.getDomainSet()
xdim = ds.getX().getLength()
ydim = ds.getY().getLength()
print "Image size = ",ydim," by",xdim

cs = ds.getCoordinateSystem()

rangetype = a.getType().getRange()
maps=subs.makeMaps(RealType.Latitude, "y", RealType.Longitude, "x",
                   rangetype[0], "text")
disp=subs.makeDisplay3D(maps)

pcontrol = disp.getProjectionControl()
dzoom = DiscoverableZoom()
pcontrol.addControlListener(dzoom)

tcontrol = maps[2].getControl()
tcontrol.setAutoSize(1)

rends = []

for i in range (ydim/2, ydim/2 + 20):
  for j in range (xdim/2, xdim/2 + 20):

    ref = DataReferenceImpl("data")
    latlon = cs.toReference( ( (j,), (i,) ))
示例#3
0
from visad import Real, RealTuple, RealType, DataReferenceImpl
from visad.java3d import DefaultRendererJ3D
from visad.bom import DiscoverableZoom

a = load("../data/mcidas/AREA0007")
ds = a.getDomainSet()
xdim = ds.getX().getLength()
ydim = ds.getY().getLength()
print "Image size = ", ydim, " by", xdim

cs = ds.getCoordinateSystem()

rangetype = a.getType().getRange()
maps = subs.makeMaps(RealType.Latitude, "y", RealType.Longitude, "x",
                     rangetype[0], "text")
disp = subs.makeDisplay3D(maps)

pcontrol = disp.getProjectionControl()
dzoom = DiscoverableZoom()
pcontrol.addControlListener(dzoom)

tcontrol = maps[2].getControl()
tcontrol.setAutoSize(1)

rends = []

for i in range(ydim / 2, ydim / 2 + 20):
    for j in range(xdim / 2, xdim / 2 + 20):

        ref = DataReferenceImpl("data")
        latlon = cs.toReference(((j, ), (i, )))