NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hello, Detlef Gaisser wrote:
Hello I'm trying to Display RGB values in a Color Cube like in Example P4_09, with the difference that i already have the RGB Values in a 3 dimensional array. (e.g [255,255,0] should map to yellow and should be displayed as 255,255,0).
Program 4-09 is called Color CubeS, rather than Color Cube. Subtle, but important difference ;-)
I think you probably want example 4-08. Try something like (x,y,z) -> (value) Using a 3D domain set and setting the samples with int value = 0; for(int l = 0; l < NLEVS; l++) for(int c = 0; c < NCOLS; c++) for(int r = 0; r < NROWS; r++){ // set rgbVal values flat_samples[0][ value ] = value value++; }more or less like it's done in example 4-08. Then use a ColorControl and a colour table like
myColorTable = new float[][]{{0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f}, // red component {0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f}, // green component {0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f}}; // blue component
(also refer to example 4-04 and 4-05: http://www.geogr.uni-jena.de/~p6taug/visad/tutorial/s4/Section4.html#section4_4)
and set it with: ColorControl colCont = (ColorControl) yourRGBMap.getControl(); colCont.setTable( myColorTable ); yourRGBMap is a map like yourRGBMap = new ScalarMap(value, Display.RGB);Note that you'll have to convert your int values to floats (I mean the colour table values), e.g.
public float[][] normalize(float[][] tableIn_0_255){ // construct a new table, if you want... // skip... code for doing that for (int i = 0; i < tableIn_0_255.length; i++) { for (int j = 0; j < tableIn_0_255[0].length; j++) { tableIn_0_255[i][j] = tableIn_0_255[i][j] / 255f; } } return tableIn_0_255; }
I looked at also at the other examples, but couldn't find a good way to achieve this. Thanks for any hint. Detlef
I hope that helps. Grüsse, Ugo
visad
archives: