geoschem / gcpy

Python toolkit for GEOS-Chem. Contains basic plotting scripts, plus the suite of GEOS-Chem benchmarking utilities.
https://gcpy.readthedocs.io
Other
50 stars 24 forks source link

[BUG/ISSUE] Restricted range differences incorrectly all zero in some emissions column sum plots #17

Closed lizziel closed 5 years ago

lizziel commented 5 years ago

In some emissions column sum benchmark plots that compare cubed sphere data, the restricted difference plots (middle row, right column) show all zeros when the dynamic range difference subplot and fractional difference subplot show non-zeros differences. This appears to be a bug in gcpy. The colorbar range is [-0.1,0.1], which usually indicates NaN in the array trying to be plotted. This needs further investigation.

gcpy_emis_diff_plot_issue
yantosca commented 5 years ago

I have pushed commit https://github.com/geoschem/gcpy/commit/01b912c267c460726d7d5e23ff6f527e4e634635 to the master branch. We now ensure that if all values in a data array are zero, that the white color will be placed at the appropriate position in the color scale.

Matplotlib normalizes the data into a range of 0..1 for plotting. For difference color scales (i.e. the bottom 4 plots), if all values are zero, then the white color will get placed at color value 0.5, in the center of the range. For non-difference color scales (the top 2 plots), the white color will get placed at the start of the color scale (at 0.0).

Here are some example using GCHP 12.4.0 as both Ref and Dev (ensuring that all diffs will be zero):

O3 at surface: gcpy3

O3 zonal mean: gcpy4