CEMPD / VERDI

This is the repo for the VERDI project, written in java.
GNU General Public License v3.0
16 stars 13 forks source link

Obs overlays not working in VERDI 2.1.4 20220930 version #308

Closed jherwehe closed 1 year ago

jherwehe commented 1 year ago

Describe the bug The observations overlay feature of VERDI 2.1.4 became broken in the 20220930 version (see screen capture below), but was working in the previous 20220925 version.

To Reproduce Steps to reproduce the behavior (as tested on the Atmos Linux system):

  1. Open the 20220930 version of VERDI 2.1.4.
  2. Load model output file /work/MOD3DEV/jherwehe/verdi/test/bkx/cmaq/wr401/task4/2018/cctm/extr/201808/combine_aconc_v53_intel18.0_2018ff_12US1_20180817
  3. Load associated observations file /work/MOD3DEV/jherwehe/verdi/test/wtt/obs_data/Release_Obs_Dev/Tools/Obs_Overlay/AQS_Hourly_PAVE_VERDI_overlay_20180817.ncf
  4. Create a tile plot of the O3 field.
  5. Click on "Plot", then click on "Add Overlay", then click on "Observations", select O3 from the "Observation Details" box, click "Add Variable", and finish by clicking the "OK" button.
  6. See error shown in screen capture below.

Expected behavior The obs overlay feature worked fine in the previous 20220925 version of VERDI 2.1.4. The 20220925 version also worked correctly when loading an entire year of observations to use with the same test model output file above, such as when using observations file /work/MOD3DEV/jherwehe/verdi/test/wtt/obs_data/Release_Obs_Dev/Tools/Obs_Overlay/AQS_Hourly_PAVE_VERDI_overlay_2018.ncf

Screenshots VERDI_2 1 4_20220930_problem_with_obs_overlay_4oct2022 Notice the typo where "are" in the error pop-up message should probably be "area".

Atmos HPC system (please complete the following information):

jherwehe commented 1 year ago

If it helps, here are the error messages that were sent to the xterm command window for the above test with VERDI 2.1.4 20220930 after clicking OK in the error box:

2022.10.04 18:07:25.004 [AWT-EventQueue-0] ERROR anl.verdi.plot.gui.FastTilePlot - java.lang.IllegalArgumentException: OBS data does not cover the are of the data file. at anl.verdi.data.ObsEvaluator.getObsDataList(ObsEvaluator.java:114) ~[?:?] at anl.verdi.data.ObsEvaluator.evaluate(ObsEvaluator.java:85) ~[?:?] at anl.verdi.plot.gui.ObsAnnotation.update(ObsAnnotation.java:151) ~[?:?] at anl.verdi.plot.gui.ObsAnnotation.(ObsAnnotation.java:105) ~[?:?] at anl.verdi.plot.gui.FastTilePlot.addObservationData(FastTilePlot.java:3694) ~[?:?] at anl.verdi.core.VerdiApplication.overlayRequested(VerdiApplication.java:874) ~[?:?] at anl.verdi.plot.probe.PlotEventProducer.fireOverlayRequest(PlotEventProducer.java:35) ~[?:?] at anl.verdi.plot.gui.FastTilePlot.addObsOverlay(FastTilePlot.java:2230) ~[?:?] at anl.verdi.plot.gui.FastTilePlot$14.actionPerformed(FastTilePlot.java:2203) ~[?:?] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) ~[?:?] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) ~[?:?] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?] at javax.swing.AbstractButton.doClick(AbstractButton.java:374) ~[?:?] at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1028) ~[?:?] at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1072) ~[?:?] at java.awt.Component.processMouseEvent(Component.java:6626) ~[?:?] at javax.swing.JComponent.processMouseEvent(JComponent.java:3389) ~[?:?] at java.awt.Component.processEvent(Component.java:6391) ~[?:?] at java.awt.Container.processEvent(Container.java:2266) ~[?:?] at java.awt.Component.dispatchEventImpl(Component.java:5001) ~[?:?] at java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?] at java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?] 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:4833) ~[?:?] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?] at java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?] at java.awt.EventQueue$4.run(EventQueue.java:716) ~[?:?] at java.security.AccessController.doPrivileged(AccessController.java:399) [?:?] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) ~[?:?] at java.awt.EventQueue$5.run(EventQueue.java:746) ~[?:?] at java.awt.EventQueue$5.run(EventQueue.java:744) ~[?:?] at java.security.AccessController.doPrivileged(AccessController.java:399) [?:?] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) [?:?] at java.awt.EventQueue.dispatchEvent(EventQueue.java:743) [?:?] 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) [?:?]

dkang2 commented 1 year ago

Yes, I was able to replicate what Jerry described. Can a quick comparison be made to the previous built and check what went wrong and get it fixed? By the way, the error message has a typo. If it is true (the obs indeed doesn't have overlap with the model), the message should be "Obs data doesn't cover the area of the data file". Or more informative, the message can change to "Obs data is outside the domain of the modeled data".

yadongxuEPA commented 1 year ago

Tested this issue with our previous builds (VERDI_2.1.4_20220809, VERDI_2.1.4_20220909, VERDI_2.1.4_20220925) on Atmos with another pair of dataset (Model: /data/model/CCTM46_P16.baseO2a.36k.O3MAX; Obs: /data/obs/AQS_overlay_2002.2hr.2002152.ncf), all worked ok.

VERDI_Github_issue_308_1

It seems that this issue only appeared in our most recent build VERDI_2.1.4_20220930. It might be caused by the recent code changes when Tony tried to add aircraft data as observation layer? Please check, thanks!

dkang2 commented 1 year ago

If the aircraft code messed up with the built, it is probably good to remove the aircraft code for this release and add it back when it is released and spend time to make it work.

yadongxuEPA commented 1 year ago

Retested VERDI_2.1.4_linux64_20221007.tar.gz on Atmos and VERDI_2.1.4_win64_20221007.zip on a Windows PC, found that the issue has resolved. VERDI_Github_issue_308_2

lizadams commented 8 months ago

tested using VERDI_2.1.5_mac_20240103.tar.gz Verified that I could reproduce the obs overlay plot created by Yadong in the image above using: ./verdi.command -f $cwd/../combine_aconc_v53_intel18.0_2018ff_12US1_20180817 -s "O3[1]" -g tile -f $cwd/../AQS_Hourly_PAVE_VERDI_overlay_20180817.ncf Then changing to timestep 7, changing the max value in the legend to 95, and adding obs overlay for Ozone using the GUI

Screen Shot 2024-01-04 at 2 14 12 PM