from visad.python.JPythonMethods import *
import subs, graph
from visad import Real, RealTuple, RealType, DataReferenceImpl
from visad.java3d import DefaultRendererJ3D
from visad.bom import DiscoverableZoom

a=load("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,) ))
    tuple = RealTuple( ( 
           a[i * xdim + j][0], 
           Real( RealType.Latitude, latlon[0][0]), 
           Real( RealType.Longitude, latlon[1][0]) ) )

    ref.setData(tuple)
    rend = DefaultRendererJ3D()
    rends.append(rend)
    disp.addReferences(rend, ref, None)

dzoom.setRenderers(rends, .1)
subs.showDisplay(disp)

