Closed dschwede closed 2 years ago
I believe the 3-D contour plot is from vis5d.
https://www.ssec.wisc.edu/visad-docs/javadoc/index.html?visad/data/vis5d/Vis5DFamily.html
We could look into using VisAD, which is what IDV uses: https://www.unidata.ucar.edu/software/idv/ https://www.unidata.ucar.edu/software/idv/docs/userguide/examples/3DSurface.html https://www.ssec.wisc.edu/~billh/visad.html#collaboration
There is a very nice 3D visualization package called Paraview. Paraview's documentation is available here: https://www.paraview.org/ Paraview in turn uses VTK, as described in their User Manual - both are available as open source from Kitaware. https://kitware.github.io/vtk-examples/site/Java/
The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, mod- eling, image processing, volume rendering, scientific visualization, and information visualization. VTK also includes ancillary support for 3D interaction widgets, two and three-dimensional annotation, and parallel computing. At its core, VTK is implemented as a C++ toolkit, requiring users to build applications by combining various objects into an application. The system also supports automated wrapping of the C++ core into Python, Java, and Tcl so that VTK applications may also be written using these interpreted programming languages. VTK is used world-wide in commercial applications, research and development, and as the basis of many advanced visualization applications such as ParaView, VisIt, VisTrails, Slicer, MayaVi, and OsiriX.
Retested with VERDI_2.1.4_linux64_20220706.tar.gz on Atmos, found that this issue has not resolved. Tested with the data file "CCTM46_P16.baseO2a.36k.O3MAX" to VERDI GUI and clicked on " Contour Plot", no plot was displayed and the following error messages was shown in the command window.
299 is fixed now. I'm still working on an alternate display to reduce the noise.
retested using VERDI_2.1.4_mac_20220720.tar.gz
cd VERDI_2.1.4
./verdi.sh -f $cwd/data/model/CCTM46_P16.baseO2a.36k.O3MAX -s "O3[1]" -g contour
It worked. I was able to generate a plot on my MacBook Pro. Including a few screenshots.
Note, when I used the option to save as image within VERDI, it seemed to generate an image that was only a partial capture of the full image. See the following:
Created a script to try and create the contour plot, then save the image as a "png" file, and then quit. The script doesn't work unless I comment out the -saveImage step. cd VERDI_2.1.4/data/scripts
#!/bin/csh -f
#script for testing command line options
echo 'running verdi_script_contour.csh'
cd $cwd/../..
./verdi.sh \
-f $cwd/data/model/CCTM46_P16.baseO2a.36k.O3MAX \
-s "O3[1]" \
-g contour \
# -saveImage "png" $cwd/data/plots/contour_O3.png \
# -quit
echo 'check outputfile' `ls -lrt $cwd/data/plots/contour_O3.png`
VERDI should allow the user to create a png image of the contour plot, and it should also capture the full image available, not just the upper left corner.
I also tried this on our Linux servers, dogwood and longleaf. VERDI_2.1.4_linux64_20220720.tar.gz
I don't know if I need to load a module or if there is a dependency that is not available on our servers, or if this is an issue with the linux distribution of VERDI.
./verdi_script_contour.csh
running verdi_script_contour.csh
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Caught handled GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection 172.22.212.206:14.0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x6e6097ac, isOwner false, <149f4264, 22e81e63>[count 0, qsz 0, owner
[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.base/java.lang.Thread.run(Thread.java:833)
Caused0 by GLException: main-SharedResourceRunner: Error making temp context(1) current: display 0x2b5224000f30, context 0x2b5224014350, drawable X11OnscreenGLXDrawable[Realized true,
Factory jogamp.opengl.x11.glx.X11GLXDrawableFactory@2b9eb25d,
Handle 0xe00002,
Surface WrappedSurface[ displayHandle 0x2b5224000f30
, surfaceHandle 0xe00002
, size 64x64
, UOB[ OWNS_SURFACE | WINDOW_INVISIBLE ]
, X11GLXGraphicsConfiguration[X11GraphicsScreen[X11GraphicsDevice[type .x11, connection 172.22.212.206:14.0, unitID 0, handle 0x2b5224000f30, owner true, ResourceToolkitLock[obj 0xfcc9676, isOwner true, <46176ce1, 262b85c9>[count 2, qsz 0, owner
[1]: jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:770)
[2]: jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:653)
[3]: jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:591)
[4]: jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:277)
[5]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[6]: java.base/java.lang.Thread.run(Thread.java:833)
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
com.jogamp.opengl.GLException: J3D-Renderer-1: Error making temp context(1) current: display 0x2b5254031c20, context 0x2b52540bcaa0, drawable X11OnscreenGLXDrawable[Realized true,
Factory jogamp.opengl.x11.glx.X11GLXDrawableFactory@2b9eb25d,
Handle 0xa00041,
Surface JAWTWindow[0x45c4398f][JVM version: 17.0.2 (17.0.2 update 0)
JAWT version: 0x10004, CA_LAYER: false, isLayeredSurface false, bounds [ 0 / 0 1 x 1 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], pixelScale 1.0x1.0, shallUseOffscreenLayer false, isOffscreenLayerSurface false, attachedSurfaceLayer 0x0, windowHandle 0xa00041, surfaceHandle 0xa00041, bounds [ 0 / 0 1 x 1 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], window [0/0 1x1], pixels[scale 1.0, 1.0 -> 1x1], visible true, lockedExt false,
config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection :0.0, unitID 0, awtDevice X11GraphicsDevice[screen=0], handle 0x0], idx 0],
chosen GLCaps[glx vid 0x177, fbc 0x8f: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/0/0, dbl, mono , sw, GLProfile[GL2/GL2.sw], on-scr[.]],
requested GLCaps[rgba 5/5/5/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GL2/GL2.sw], on-scr[.]],
X11GraphicsConfig[dev=X11GraphicsDevice[screen=0],vis=0x177],
encapsulated X11GLXGraphicsConfiguration[X11GraphicsScreen[X11GraphicsDevice[type .x11, connection 172.22.212.206:14.0, unitID 0, handle 0x2b5254031c20, owner true, JAWTToolkitLock[obj 0x262d3b9e, isOwner true, <4357990c, 667ed9ef>[count 1, qsz 0, owner
DefaultRenderingErrorListener.errorOccurred: CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context for queryProperties() graphicsDevice = X11GraphicsDevice[screen=0] canvas = org.jogamp.java3d.Canvas3D[canvas2,0,0,0x0,invalid] This version of Java3D can't query "textureWidthMax/textureHeightMax" so they are being assigned the default values: textureWidthMax: 1024 textureHeightMax: 1024 If images render as a 'grey-box', try setting these parameters to a lower value, eg. 512, with '-DtextureWidthMax=512' Otherwise check your graphics environment specifications X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 2/2, reusable (open, marked uncloseable): 0, pending (open in creation order): 2) X11Util: Open X11 Display Connections: 2 X11Util: Open0: NamedX11Display[172.22.212.206:14.0, 0x2b5224000f30, refCount 1, unCloseable false] X11Util: Open[1]: NamedX11Display[172.22.212.206:14.0, 0x2b5254031c20, refCount 1, unCloseable false] ls: cannot access /proj/ie/proj/CMAS/VERDI/VERDI_2.1.4/data/plots/contour_O3.png: No such file or directory check outputfile end: Not in while/foreach. [lizadams@dogwood-login2 scripts]$ module list
Currently Loaded Modules: 1) gcc/9.1.0 2) openmpi_4.0.1/gcc_9.1.0
Retested "save Image" option in VERDI GUI on Atmos, found that it worked ok. Note that there is an "imageDimension" pop-up window after inputting the saved image name.
I retested this on the mac using VERDI_2.1.4_mac_20221007.tar.gz, and it doesn't fully save the new image - but I think this may be related to my screen resolution settings.
Retested "save Image" option with VERDI_2.1.4_linux64_20221007.tar.gz GUI on Atmos, confirmed that it worked ok.
• 3-D contour plots display too much up-and-down visual noise that doesn’t reflect the actual data field.