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 trouble producing a 3D vector plot with VisAD. In this case my u,v,w components are defined on the same x,y grid. What I get is a plane showing what I assume is the u,v vector inside a 3D cube--can't see any effect of the w component. Thanks in adbance. This is what I'm doing: X = new RealType(xtypeName, null, null); Y = new RealType(ytypeName, null, null); domain_tuple = new RealTupleType(Y, X); U = new RealType(utypeName, null, null); V = new RealType(vtypeName, null, null); W = new RealType(wtypeName, null, null); range_tuple = new RealTupleType(U, V, W); func_domain_range = new FunctionType(domain_tuple, range_tuple); // Create the domain Set domain_set = new Linear2DSet(domain_tuple, yArray[0], yArray[ySize-1], ySize, xArray[0], xArray[xSize-1], xSize); float[][] set_samples = domain_set.getSamples(true); float[][] flat_samples = new float[3][xSize * ySize]; count = 0; for(int i=0; i < xSize; i++) { for(int j=0; j < ySize; j++) { double uval = uArray[count]; double vval = vArray[count]; double wval = wArray[count]; flat_samples[0][count] = (float)uval; flat_samples[1][count] = (float)vval; flat_samples[2][count] = (float)wval; count++; } } vals_ff = new FlatField(func_domain_range, domain_set); vals_ff.setSamples(flat_samples, false); // A 3D display display = new DisplayImplJ3D("display1"); // Create the X,Y ScalarMaps yMap = new ScalarMap(Y, Display.YAxis); xMap = new ScalarMap(X, Display.XAxis); xRangeMap = new ScalarMap(X, Display.SelectRange); yRangeMap = new ScalarMap(Y, Display.SelectRange); // Add X,Y maps to display display.addMap(yMap); display.addMap(xMap); display.addMap(xRangeMap); display.addMap(yRangeMap); // "u" component uMap = new ScalarMap(U, Display.Flow1X); uRangeMap = new ScalarMap(U, Display.SelectRange); display.addMap(uRangeMap); display.addMap(uMap); // "v" component vMap = new ScalarMap(V, Display.Flow1Y); vRangeMap = new ScalarMap(V, Display.SelectRange); display.addMap(vRangeMap); display.addMap(vMap); // "w" component wMap = new ScalarMap(W, Display.Flow1Z); wRangeMap = new ScalarMap(W, Display.SelectRange); display.addMap(wRangeMap); display.addMap(wMap); selXRange = new SelectRangeWidget(xRangeMap); selYRange = new SelectRangeWidget(yRangeMap); // Create a data reference and set the FlatField as our data data_ref = new DataReferenceImpl("data_ref"); data_ref.setData(vals_ff); // Add reference to display display.addReference(data_ref);
visad
archives: