Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
I am trying to incorporate Blue Marble Next Gen images into an IDV based app. The images have Plat Carre map projection, a very simple lat -> y, lon -> x. I load the image, using e.g. GIFAdapter and then use DataUtility to get a FlatField, call it f1, whose mathtype is ((ImageElement, ImageLine) -> (Red, Green, Blue)) (I actually snip/crop the orig image using BufferedImage.getSubimage but i think that is working ok)I then build a new FlatField f2 with domain SpatialEarth2DTuple and same range as f1. I am calling f2.setSamples(f1.getFloats(false)) to transfer the range values. (I suspect that I should be using a CoordinateSystem somewhere here to transform ElementLine -> Lon etc ??)
If I then take f2 and build a visad style of DisplayImpl, with 5 scalar maps (lat,lon,r,g,b) and a single DataReferenceImpl, then the image shows up as expected in the displayImpl.
But I have got used to using IDV's DisplayMaster and subclasses of Displayable. For instance, I load bathy data into a Contour2DDisplayable and that works great. I get all the map projection stuff for free with the IDV classes.
My actual problem is that I think I am supposed to be using Grid2DDisplayable to incorporate my flatfield f2 into an IDV DisplayMaster. Alas it is not working. I see no image data. Is this the wrong class? It subclasses RGBDisplayable so I thought I was on the right track.
Any help gratefully appreciated. Stuart Maclean
idvusers
archives: