Skip to content

[Bug]: Address warnings produced during diagnostic run and integration test suite (latest main) #932

@tomvothecoder

Description

@tomvothecoder

What happened?

Warning 1 -- xgcm.grid.py -- related to xCDAT/xcdat#513, can't address this one directly

2025-02-04 15:06:12,956 [WARNING]: warnings.py(_showwarnmsg:112) >> /home/ac.tvo/miniforge3/envs/e3sm_diags_dev_930/lib/python3.12/site-packages/xgcm/grid.py:989: FutureWarning: From version 0.8.0 the Axis computation methods will be removed, in favour of using the Grid computation methods instead. i.e. use `Grid.transform` instead of `Axis.transform`
  warnings.warn(

Warning 2 -- cartopy.mpl.geoaxes.py

2025-02-04 15:06:22,608 [WARNING]: warnings.py(_showwarnmsg:112) >> /home/ac.tvo/miniforge3/envs/e3sm_diags_dev_930/lib/python3.12/site-packages/cartopy/mpl/geoaxes.py:856: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.
  self.set_xlim([x1, x2])

Warning 3 -- plot.taylor_diagram.py

2025-02-04 15:19:16,672 [WARNING]: warnings.py(_showwarnmsg:112) >> /gpfs/fs1/home/ac.tvo/E3SM-Project/e3sm_diags/e3sm_diags/plot/taylor_diagram.py:94: UserWarning: No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
  ax.legend(loc="center left", bbox_to_anchor=(1, 0.5))

Integration Test Suite Warnings

 =============================== warnings summary ===============================
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  <frozen importlib._bootstrap>:228: RuntimeWarning: numpy.ndarray size changed, may indicate binary incompatibility. Expected 16 from C header, got 96 from PyObject

tests/integration/test_all_sets_image_diffs.py: 13 warnings
  /__w/e3sm_diags/e3sm_diags/3/envs/e3sm_diags_ci/lib/python3.9/site-packages/xgcm/grid.py:1283: DeprecationWarning: The `xgcm.Axis` class will be deprecated in the future. Please make sure to use the `xgcm.Grid` methods for your work instead.
    warnings.warn(

tests/integration/test_all_sets_image_diffs.py: 13 warnings
  /__w/e3sm_diags/e3sm_diags/3/envs/e3sm_diags_ci/lib/python3.9/site-packages/xgcm/grid.py:989: FutureWarning: From version 0.8.0 the Axis computation methods will be removed, in favour of using the Grid computation methods instead. i.e. use `Grid.transform` instead of `Axis.transform`
    warnings.warn(

tests/integration/test_all_sets_image_diffs.py: 14 warnings
  /__w/e3sm_diags/e3sm_diags/3/envs/e3sm_diags_ci/lib/python3.9/site-packages/cartopy/mpl/geoaxes.py:862: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.
    self.set_xlim([x1, x2])

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/cosp_histogram_plot.py:176: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.
    ax.set_xticklabels(xlabels)

tests/integration/test_all_sets_image_diffs.py: 1752 warnings
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/qbo_driver.py:357: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    x_deseasoned[month_index] = xraw[month_index] - xclim[month]

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/qbo_driver.py:253: RuntimeWarning: divide by zero encountered in divide
    period = 1 / frequency

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/qbo_driver.py:258: ComplexWarning: Casting complex values to real discards the imaginary part
    psd_sumN[ilev] = 2 * np.nansum(fyy[(period <= 40) & (period >= 20)])

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/qbo_driver.py:310: RuntimeWarning: divide by zero encountered in divide
    period0 = 1 / frequency0

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/qbo_plot.py:200: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.
    plt.tight_layout()

tests/integration/test_all_sets_image_diffs.py: 22959 warnings
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/streamflow_driver.py:399: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    export_data[i, 2] = drainage_area_error * 100

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/streamflow_driver.py:320: RuntimeWarning: Mean of empty slice
    monthly_mean[month] = np.nanmean(extracted[month_array_boolean, 2])

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/streamflow_driver.py:500: RuntimeWarning: invalid value encountered in divide
    streamflow_proportion = np.divide(streamflow_month_all_years, total_streamflow)

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/streamflow_driver.py:384: RuntimeWarning: Mean of empty slice
    monthly_mean_test = np.nanmean(mmat, axis=1)

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/streamflow_plot_map.py:193: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.
    cbar.ax.set_yticklabels(ticks)

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/streamflow_plot_scatter.py:110: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.
    cbar.ax.set_yticklabels(ticks)

tests/integration/test_all_sets_image_diffs.py: 16800 warnings
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/driver/utils/diurnal_cycle_xr.py:86: DeprecationWarning: __array__ implementation doesn't accept a copy keyword, so passing copy=False failed. __array__ must implement 'dtype' and 'copy' keyword arguments.
    lst[it, :, ilon] = (itime + start_time + lon[ilon] / 360 * 24) % 24  # type: ignore

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/diurnal_cycle_plot.py:237: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.
    bar_ax.set_xticklabels(["0h", "3h", "6h", "9h", "12h", "15h", "18h", "21h"])

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/diurnal_cycle_plot.py:238: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.
    bar_ax.set_yticklabels(["", "", f"{int(max_amp)}"])

tests/integration/test_all_sets_image_diffs.py::TestAllSetsImageDiffs::test_num_images_is_the_same_as_the_expected
  /__w/e3sm_diags/e3sm_diags/e3sm_diags/plot/arm_diags_plot.py:303: RuntimeWarning: invalid value encountered in multiply
    precip_binned = np.empty([number_of_bins, cwv.size]) * np.nan

What did you expect to happen? Are there are possible answers you came across?

No response

Minimal Complete Verifiable Example (MVCE)

Relevant log output

Anything else we need to know?

No response

Environment

Latest main and v3.0.0rc1/rc2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug fix (will increment patch version)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions