Skip to content

The error associated with layer_sum/layer_mean tile plots for unconventional 3D variables #352

@dkang2

Description

@dkang2

Describe the bug
The layer_sum/mean stats for VERDIv2.1.6 are nice additions, it works well with normal variables (col, row, layer, time), but when they are used for some unconventional variables such as CROPF and TREEF in the following file, it produced an error message when the layers range is selected. It works well with LANDUSEF, another similar variable.

To Reproduce
Steps to reproduce the behavior:

  1. verdi -f /work/MOD3DEV/dkj/Verdi/example_files/beld4_CMAQ12KM_2011.nc
  2. Click on "CROPF (Percent)[3]
  3. Click on "Use Layer Range", and choose any layer range (but if all layers are selected, it works), as show in the plot:
  4. See error
    image

The command line message:

024.10.31 14:19:49.192 [AWT-EventQueue-0] ERROR anl.verdi.core.VerdiApplication - Error while evaluating formula
java.lang.NullPointerException: Cannot invoke "ucar.nc2.dataset.CoordinateAxis.getDimension(int)" because the return value of "ucar.nc2.dataset.NetcdfDataset.findCoordinateAxis(String)" is null
at anl.verdi.loaders.GridNetcdfReader.getValues(GridNetcdfReader.java:68) ~[?:?]
at anl.verdi.loaders.GridNetcdfReader.getValues(GridNetcdfReader.java:1) ~[?:?]
at anl.verdi.formula.FormulaVariable.evaluate(FormulaVariable.java:78) ~[?:?]
at anl.verdi.formula.DefaultFormula.readData(DefaultFormula.java:86) ~[?:?]
at anl.verdi.formula.DefaultFormula.evaluate(DefaultFormula.java:275) ~[?:?]
at anl.verdi.core.VerdiApplication.evaluateFormula(VerdiApplication.java:446) ~[?:?]
at anl.verdi.core.VerdiApplication.evaluateFormula(VerdiApplication.java:396) ~[?:?]
at anl.verdi.plot.gui.action.FastTilePlot.actionPerformed(FastTilePlot.java:42) ~[?:?]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) ~[?:?]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314) ~[?:?]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407) ~[?:?]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) ~[?:?]
at java.awt.Component.processMouseEvent(Component.java:6621) ~[?:?]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3398) ~[?:?]
at java.awt.Component.processEvent(Component.java:6386) ~[?:?]
at java.awt.Container.processEvent(Container.java:2266) ~[?:?]
at java.awt.Component.dispatchEventImpl(Component.java:4996) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4828) ~[?:?]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) ~[?:?]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) ~[?:?]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2310) ~[?:?]
at java.awt.Window.dispatchEventImpl(Window.java:2780) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4828) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:400) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:747) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:400) [?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) [?:?]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:744) [?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions