Open cwsimmon opened 3 years ago
To Reproduce Steps to reproduce the behavior:
1) Load the 2-meter temperature data file "t2m_only.2016-07-04.nc" into verdi and create two formulas:" t2m[1]" and "2t2m[1]". 2) On the top menu bar, click on "Scatter Plot". 3) In the pop-up window, assign "t2m[1]" to X-Axis and "2t2m[1]" to Y_Axis, then click "OK".
Expected behavior A scatter plot showing the relationship between the above two selected formulas should be correctly displayed.
Tested with VERDI_2.1_linux64_20210707.tar.gz and VERDI_2.1_win64_20210707.zip and found that the scatter plot was actually displayed correctly (Shown as below).
However, the following error messages were written to the command prompt window when I attempted to update the time step: ucar.ma2.InvalidRangeException: Bad ranges [] length at ucar.ma2.Index.section(Index.java:243) at ucar.ma2.Array.section(Array.java:600) at anl.verdi.data.DataUtilities.minMax(DataUtilities.java:370) at anl.verdi.plot.types.ScatterPlot.updateTimeStepLayer(ScatterPlot.java:351) at anl.verdi.plot.types.ScatterPlot$1.stateChanged(ScatterPlot.java:216) at java.desktop/javax.swing.JSpinner.fireStateChanged(JSpinner.java:461) at java.desktop/javax.swing.JSpinner$ModelListener.stateChanged(JSpinner.java:388) at java.desktop/javax.swing.AbstractSpinnerModel.fireStateChanged(AbstractSpinnerModel.java:120) at java.desktop/javax.swing.SpinnerNumberModel.setValue(SpinnerNumberModel.java:460) at java.desktop/javax.swing.JSpinner.setValue(JSpinner.java:355) at java.desktop/javax.swing.plaf.basic.BasicSpinnerUI$ArrowButtonHandler.actionPerformed(BasicSpinnerUI.java:668) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6379) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Retested with VERDI_2.1_linux64_20211103.tar.gz on Atmos, the same error messages persist when I tried to change the time steps.
Retested with VERDI_2.1.4_linux64_20220706.tar.gz on Atmos, found that this issue has not resolved. Steps to reproduce the behavior: 1.Load the 2-meter temperature data file "t2m_only.2016-07-04.nc" into verdi and create two formulas:" t2m[1]" and "2*t2m[1]". 2.On the top menu bar, click on "Scatter Plot".
Re-tested using VERDI_2.1.4_linux64_20220720.tar.gz There is still an error.
./verdi.sh -f $cwd/data/model/t2m_only.nc -s "t2m[1]"
While initially, this created a plot, after I tried to re-run VERDI to load this dataset and variable, the scatter plot option was greyed out.
This is the error that I am seeing when I run using the command line:
./verdi.sh -f $cwd/data/model/t2m_only.nc -s "t2m[1]" -scatter "t2m[1]" "t2m[1]"
in netcdfdataset.java openDataset 1 arguments
in netcdfdataset.java openDataset 3 arguments
in netcdfdataset.java ready to return openDataset 5 arguments
2022.07.20 15:16:22.038 [main] ERROR anl.verdi.core.VerdiPlugin - Error
java.lang.IllegalArgumentException: Invalid call to DataFrameIndex.setXY( x = 1 ... )
at anl.verdi.data.DataFrameIndex.setXY(DataFrameIndex.java:118) ~[?:?]
at anl.verdi.plot.data.ScatterXYDataset$FrameData.getValue(ScatterXYDataset.java:79) ~[?:?]
at anl.verdi.plot.data.ScatterXYDataset.getXValue(ScatterXYDataset.java:189) ~[?:?]
at org.jfree.data.general.DatasetUtilities.iterateDomainBounds(DatasetUtilities.java:759) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.data.general.DatasetUtilities.findDomainBounds(DatasetUtilities.java:663) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.data.general.DatasetUtilities.findDomainBounds(DatasetUtilities.java:638) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.chart.plot.XYPlot.getDataRange(XYPlot.java:4466) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.chart.axis.NumberAxis.autoAdjustRange(NumberAxis.java:433) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.chart.axis.NumberAxis.configure(NumberAxis.java:415) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.chart.axis.Axis.setPlot(Axis.java:1043) ~[jfreechart-1.0.19.jar:1.0.19]
at org.jfree.chart.plot.XYPlot.
I verified that this syntax is correct by using the CCTM input file rather than the MPAS input file.
./verdi.sh -f $cwd/data/model/CCTM46_P16.baseO2a.36k.O3MAX -s "O3[1]" -s "NO2[1]" -scatter "O3[1]" "NO2[1]"
I also tried using mac version VERDI_2.1.4_mac_20220720.tar.gz
./verdi.command -f $cwd/data/model/t2m_only.nc -s "t2m[1]"
At first the scatter plot option was greyed out. When I added another dataset and variable, then reselected the t2m variable, then the scatter plot option was available. I was able to create the scatter plot by selecting t2m[1] for X-Axis and t2m[1] for Y-Axis. When I tried to increment the timestep by using the spinner, then the following errors popped up. The scatter plot does seem to be giving unique scatter plot values for each timestep. I am including a few screenshots for timestep 1, 2 and 3.
in netcdfdataset.java openDataset 1 arguments in netcdfdataset.java openDataset 3 arguments in netcdfdataset.java ready to return openDataset 5 arguments ucar.ma2.InvalidRangeException: Bad ranges [] length at ucar.ma2.Index.section(Index.java:243) at ucar.ma2.Array.section(Array.java:600) at anl.verdi.data.DataUtilities.minMax(DataUtilities.java:370) at anl.verdi.plot.types.ScatterPlot.updateTimeStepLayer(ScatterPlot.java:334) at anl.verdi.plot.types.ScatterPlot$1.stateChanged(ScatterPlot.java:216) at java.desktop/javax.swing.JSpinner.fireStateChanged(JSpinner.java:492) at java.desktop/javax.swing.JSpinner$ModelListener.stateChanged(JSpinner.java:419) at java.desktop/javax.swing.AbstractSpinnerModel.fireStateChanged(AbstractSpinnerModel.java:124) at java.desktop/javax.swing.SpinnerNumberModel.setValue(SpinnerNumberModel.java:460) at java.desktop/javax.swing.JSpinner.setValue(JSpinner.java:386) at java.desktop/com.apple.laf.AquaSpinnerUI$ArrowButtonHandler.actionPerformed(AquaSpinnerUI.java:439) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) at java.desktop/java.awt.Component.processEvent(Component.java:6391) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ucar.ma2.InvalidRangeException: Bad ranges [] length at ucar.ma2.Index.section(Index.java:243) at ucar.ma2.Array.section(Array.java:600) at anl.verdi.data.DataUtilities.minMax(DataUtilities.java:370) at anl.verdi.plot.types.ScatterPlot.updateTimeStepLayer(ScatterPlot.java:351) at anl.verdi.plot.types.ScatterPlot$1.stateChanged(ScatterPlot.java:216) at java.desktop/javax.swing.JSpinner.fireStateChanged(JSpinner.java:492) at java.desktop/javax.swing.JSpinner$ModelListener.stateChanged(JSpinner.java:419) at java.desktop/javax.swing.AbstractSpinnerModel.fireStateChanged(AbstractSpinnerModel.java:124) at java.desktop/javax.swing.SpinnerNumberModel.setValue(SpinnerNumberModel.java:460) at java.desktop/javax.swing.JSpinner.setValue(JSpinner.java:386) at java.desktop/com.apple.laf.AquaSpinnerUI$ArrowButtonHandler.actionPerformed(AquaSpinnerUI.java:439) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) at java.desktop/java.awt.Component.processEvent(Component.java:6391) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ucar.ma2.InvalidRangeException: Bad ranges [] length at ucar.ma2.Index.section(Index.java:243) at ucar.ma2.Array.section(Array.java:600) at anl.verdi.data.DataUtilities.minMax(DataUtilities.java:370) at anl.verdi.plot.types.ScatterPlot.updateTimeStepLayer(ScatterPlot.java:334) at anl.verdi.plot.types.ScatterPlot$1.stateChanged(ScatterPlot.java:216) at java.desktop/javax.swing.JSpinner.fireStateChanged(JSpinner.java:492) at java.desktop/javax.swing.JSpinner$ModelListener.stateChanged(JSpinner.java:419) at java.desktop/javax.swing.AbstractSpinnerModel.fireStateChanged(AbstractSpinnerModel.java:124) at java.desktop/javax.swing.SpinnerNumberModel.setValue(SpinnerNumberModel.java:460) at java.desktop/javax.swing.JSpinner.setValue(JSpinner.java:386) at java.desktop/com.apple.laf.AquaSpinnerUI$ArrowButtonHandler.actionPerformed(AquaSpinnerUI.java:439) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) at java.desktop/java.awt.Component.processEvent(Component.java:6391) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ucar.ma2.InvalidRangeException: Bad ranges [] length at ucar.ma2.Index.section(Index.java:243) at ucar.ma2.Array.section(Array.java:600) at anl.verdi.data.DataUtilities.minMax(DataUtilities.java:370) at anl.verdi.plot.types.ScatterPlot.updateTimeStepLayer(ScatterPlot.java:351) at anl.verdi.plot.types.ScatterPlot$1.stateChanged(ScatterPlot.java:216) at java.desktop/javax.swing.JSpinner.fireStateChanged(JSpinner.java:492) at java.desktop/javax.swing.JSpinner$ModelListener.stateChanged(JSpinner.java:419) at java.desktop/javax.swing.AbstractSpinnerModel.fireStateChanged(AbstractSpinnerModel.java:124) at java.desktop/javax.swing.SpinnerNumberModel.setValue(SpinnerNumberModel.java:460) at java.desktop/javax.swing.JSpinner.setValue(JSpinner.java:386) at java.desktop/com.apple.laf.AquaSpinnerUI$ArrowButtonHandler.actionPerformed(AquaSpinnerUI.java:439) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) at java.desktop/java.awt.Component.processEvent(Component.java:6391) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Also tested with VERDI_2.1.4_win64_20220720.zip Confirmed same error messages are generated when incrementing the timestep on the scatter plot.
Retested with VERDI_2.1.4_linux64_20220809.tar.gz on Atmos and VERDI_2.1.4_win64_20220809.zip on a Windows PC, found that this issue has resolved.
The scatter plot was correctly displayed when incrementing the timesteps, no error messages showed up in the command window.
Retested with VERDI_2.1.4_linux64_20221007.tar.gz on Atmos and VERDI_2.1.4_win64_20221007.zip on a Windows PC , confirmed that this issue has resolved.
Checked VERDI_2.1.5_linux64_20231222.tar.gz on Atmos and it worked.
I can do this within the VERDI gui using VERDI_2.1.5_mac_20240103.tar.gz, but I am getting an error using the command line option. I am getting the following command line error on the mac:
./verdi.sh -f $cwd/data/model/t2m_only.nc -s "t2m[1]" -g tile -s "t2m[1]2" -g tile -scatter "t2m[1]" "t2m[1]2"
in netcdfdataset.java openDataset 1 arguments
in netcdfdataset.java openDataset 3 arguments
in netcdfdataset.java ready to return openDataset 5 arguments
2024.01.03 21:19:43.973 [main] ERROR anl.verdi.core.VerdiPlugin - Error
java.lang.IllegalArgumentException: Invalid call to DataFrameIndex.setXY( x = 1 ... )
at anl.verdi.data.DataFrameIndex.setXY(DataFrameIndex.java:124) ~[?:?]
at anl.verdi.plot.data.ScatterXYDataset$FrameData.getValue(ScatterXYDataset.java:79) ~[?:?]
at anl.verdi.plot.data.ScatterXYDataset.getXValue(ScatterXYDataset.java:189) ~[?:?]
at org.jfree.data.general.DatasetUtilities.iterateDomainBounds(DatasetUtilities.java:759) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.data.general.DatasetUtilities.findDomainBounds(DatasetUtilities.java:663) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.data.general.DatasetUtilities.findDomainBounds(DatasetUtilities.java:638) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.plot.XYPlot.getDataRange(XYPlot.java:4466) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.axis.NumberAxis.autoAdjustRange(NumberAxis.java:433) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.axis.NumberAxis.configure(NumberAxis.java:415) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.axis.Axis.setPlot(Axis.java:1043) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.plot.XYPlot.
Additional re-tests done on VERDI_2.1.4_linux64_20231013.tar.gz (before Java update) on Atmos and got the same error:
Restested using
You can create the gui and load the variables using
./verdi.command -f $cwd/data/model/t2m_only.nc -s "t2m[1]" -g tile -s "t2m[1]*2" -g tile
Once in the GUI, you can select scatter plot, and then the formulas and create the plot, and no error is generated.
If you try to use the -scatter option and specify the formula, it fails with the following errror.
./verdi.command -f $cwd/data/model/t2m_only.nc -s "t2m[1]" -g tile -s "t2m[1]*2" -g tile -scatter "t2m[1]" "t2m[1]*2"
in netcdfdataset.java openDataset 1 arguments
in netcdfdataset.java openDataset 3 arguments
in netcdfdataset.java ready to return openDataset 5 arguments
2024.01.25 18:27:36.440 [main] ERROR anl.verdi.core.VerdiPlugin - Error
java.lang.IllegalArgumentException: Invalid call to DataFrameIndex.setXY( x = 1 ... )
at anl.verdi.data.DataFrameIndex.setXY(DataFrameIndex.java:124) ~[?:?]
at anl.verdi.plot.data.ScatterXYDataset$FrameData.getValue(ScatterXYDataset.java:79) ~[?:?]
at anl.verdi.plot.data.ScatterXYDataset.getXValue(ScatterXYDataset.java:189) ~[?:?]
at org.jfree.data.general.DatasetUtilities.iterateDomainBounds(DatasetUtilities.java:759) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.data.general.DatasetUtilities.findDomainBounds(DatasetUtilities.java:663) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.data.general.DatasetUtilities.findDomainBounds(DatasetUtilities.java:638) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.plot.XYPlot.getDataRange(XYPlot.java:4466) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.axis.NumberAxis.autoAdjustRange(NumberAxis.java:433) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.axis.NumberAxis.configure(NumberAxis.java:415) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.axis.Axis.setPlot(Axis.java:1043) ~[netcdfAll-4.5.5-SNAPSHOT.jar:?]
at org.jfree.chart.plot.XYPlot.
Creating scatter plot using VERDI GUI is fixed Creating scatter plot from VERDI CLI is not
Re-tests done on VERDI_2.1.5_linux64_20240124.tar.gz on Atmos and got the same error, confirmed that the command line issue persists.
Reported by Russ Bullock
The scatterplot tool does not work for MPAS model data. While the tool does open a window to obtain user input for the formulas to be used for the domain and range of the plot, hitting the OK button to accept those choices results in no action other than a constant dotted box highlighting the scatter plot tool option. The following error is written to the command prompt window:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "anl.verdi.data.CoordAxis.getRange()" because the return value of "anl.verdi.data.Axes.getCellAxis()" is null