E3SM-Project / e3sm_diags

E3SM Diagnostics package
https://e3sm-project.github.io/e3sm_diags
BSD 3-Clause "New" or "Revised" License
39 stars 32 forks source link

CDAT Migration Phase 2: Regression testing for `lat_lon`, `lat_lon_land`, and `lat_lon_river` #744

Closed tomvothecoder closed 10 months ago

tomvothecoder commented 11 months ago

Todo List

Later Items

tests/integration/test_diags.py Running tests, please wait for log output. 2023-10-23 10:50:34,858 [INFO]: run.py(_add_parent_attrs_to_children:156) >> [] 2023-10-23 10:50:34,859 [INFO]: run.py(_add_parent_attrs_to_children:156) >> [] 2023-10-23 10:50:34,859 [INFO]: run.py(_add_parent_attrs_to_children:156) >> [] 2023-10-23 10:50:35,865 [INFO]: area_mean_time_series_parameter.py(check_values:33) >> You have no value for ref_names. Calculate test data only 2023-10-23 10:50:39,572 [INFO]: e3sm_diags_driver.py(_save_env_yml:57) >> Saved environment yml file to: tests/integration/all_sets_results_test/prov/environment.yml 2023-10-23 10:50:39,572 [INFO]: e3sm_diags_driver.py(_save_parameter_files:68) >> Saved command used to: tests/integration/all_sets_results_test/prov/cmd_used.txt 2023-10-23 10:50:39,574 [INFO]: e3sm_diags_driver.py(_save_parameter_files:98) >> Saved cfg file to: tests/integration/all_sets_results_test/prov/all_sets.cfg 2023-10-23 10:50:39,575 [INFO]: e3sm_diags_driver.py(_save_python_script:132) >> Saved Python script to: tests/integration/all_sets_results_test/prov/all_sets.py 2023-10-23 10:50:39,599 [INFO]: zonal_mean_xy_driver.py(run_diag:117) >> Variable: T 2023-10-23 10:50:39,894 [INFO]: zonal_mean_xy_driver.py(run_diag:163) >> Selected pressure level: [200.0] 2023-10-23 10:50:41,827 [INFO]: zonal_mean_xy_driver.py(run_diag:178) >> Selected region: global 2023-10-23 10:50:42,222 [INFO]: zonal_mean_xy_plot.py(plot:108) >> Plot saved in: tests/integration/all_sets_results_test/zonal_mean_xy/ERA-Interim/ERA-Interim-T-200-ANN-global.png 2023-10-23 10:50:42,222 [INFO]: zonal_mean_xy_plot.py(plot:108) >> Plot saved in: tests/integration/all_sets_results_test/zonal_mean_xy/ERA-Interim/ERA-Interim-T-200-ANN-global.png 2023-10-23 10:50:42,250 [INFO]: zonal_mean_2d_driver.py(run_diag:101) >> Variable: T 2023-10-23 10:50:42,446 [INFO]: zonal_mean_2d_driver.py(run_diag:153) >> Selected pressure level: [200.0, 300.0] 2023-10-23 10:50:48,149 [INFO]: zonal_mean_2d_plot.py(plot:263) >> Plot saved in: tests/integration/all_sets_results_test/zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png 2023-10-23 10:50:48,149 [INFO]: zonal_mean_2d_plot.py(plot:263) >> Plot saved in: tests/integration/all_sets_results_test/zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png 2023-10-23 10:50:48,167 [INFO]: meridional_mean_2d_driver.py(run_diag:94) >> Variable: T 2023-10-23 10:50:51,416 [INFO]: meridional_mean_2d_plot.py(plot:241) >> Plot saved in: tests/integration/all_sets_results_test/meridional_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png 2023-10-23 10:50:51,416 [INFO]: meridional_mean_2d_plot.py(plot:241) >> Plot saved in: tests/integration/all_sets_results_test/meridional_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png 2023-10-23 10:50:52,791 [INFO]: lat_lon_driver.py(run_diag:71) >> Variable: T 2023-10-23 10:50:52,897 [WARNING]: dataset_xr.py(_get_land_sea_mask:976) >> Variable 'LANDFRAC' was not in the file 'tests/integration/integration_test_data/T_20161118.beta0.FC5COSP.ne30_ne30.edison_ANN_climo.nc', nor was it defined in the derived variables dictionary.. Using default land sea mask located at /global/homes/v/vo13/mambaforge/envs/cdat-migration-fy24-nompi/share/e3sm_diags/acme_ne30_ocean_land_mask.nc. 2023-10-23 10:50:53,021 [INFO]: lat_lon_driver.py(_run_diags_3d:239) >> Selected pressure level(s): [850.0] 2023-10-23 10:50:54,177 [INFO]: lat_lon_driver.py(_get_metrics_by_region:355) >> Selected region: CONUS_RRM 2023-10-23 10:50:56,022 [INFO]: lat_lon_driver.py(_save_data_metrics_and_plots:564) >> Metrics saved in tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.json 2023-10-23 10:50:57,763 [INFO]: utils.py(_save_plot:63) >> Plot saved in: tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png 2023-10-23 10:50:57,763 [INFO]: utils.py(_save_plot:63) >> Plot saved in: tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png 2023-10-23 10:50:57,764 [INFO]: lat_lon_driver.py(run_diag:71) >> Variable: T 2023-10-23 10:50:57,797 [WARNING]: dataset_xr.py(_get_land_sea_mask:976) >> Variable 'LANDFRAC' was not in the file 'tests/integration/integration_test_data/T_20161118.beta0.FC5COSP.ne30_ne30.edison_ANN_climo.nc', nor was it defined in the derived variables dictionary.. Using default land sea mask located at /global/homes/v/vo13/mambaforge/envs/cdat-migration-fy24-nompi/share/e3sm_diags/acme_ne30_ocean_land_mask.nc. 2023-10-23 10:50:57,895 [INFO]: lat_lon_driver.py(_run_diags_3d:239) >> Selected pressure level(s): [850.0] 2023-10-23 10:50:59,044 [INFO]: lat_lon_driver.py(_get_metrics_by_region:355) >> Selected region: global 2023-10-23 10:51:03,679 [INFO]: lat_lon_driver.py(_save_data_metrics_and_plots:564) >> Metrics saved in tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.json 2023-10-23 10:51:06,035 [INFO]: utils.py(_save_plot:63) >> Plot saved in: tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png 2023-10-23 10:51:06,035 [INFO]: utils.py(_save_plot:63) >> Plot saved in: tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png 2023-10-23 10:51:06,063 [INFO]: polar_driver.py(run_diag:79) >> Variable: T 2023-10-23 10:51:06,166 [INFO]: polar_driver.py(run_diag:125) >> Selected pressure level: [850.0] 2023-10-23 10:51:07,611 [INFO]: polar_driver.py(run_diag:140) >> Selected region: polar_S 2023-10-23 10:51:10,519 [INFO]: polar_plot.py(plot:248) >> Plot saved in: tests/integration/all_sets_results_test/polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png 2023-10-23 10:51:10,519 [INFO]: polar_plot.py(plot:248) >> Plot saved in: tests/integration/all_sets_results_test/polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png 2023-10-23 10:51:10,522 [INFO]: area_mean_time_series_driver.py(run_diag:62) >> Variable: TREFHT 2023-10-23 10:51:10,531 [INFO]: area_mean_time_series_driver.py(run_diag:77) >> Selected region: global 2023-10-23 10:51:10,562 [INFO]: area_mean_time_series_driver.py(run_diag:80) >> Start and end time for selected time slices for test data: 2012-1-16 12:0:0.0 2013-12-16 12:0:0.0 2023-10-23 10:51:10,828 [INFO]: area_mean_time_series_plot.py(plot:114) >> Plot saved in: tests/integration/all_sets_results_test/area_mean_time_series/TREFHT.png 2023-10-23 10:51:10,828 [INFO]: area_mean_time_series_plot.py(plot:114) >> Plot saved in: tests/integration/all_sets_results_test/area_mean_time_series/TREFHT.png 2023-10-23 10:51:10,859 [INFO]: cosp_histogram_driver.py(run_diag:78) >> Variable: COSP_HISTOGRAM_MISR 2023-10-23 10:51:11,112 [INFO]: cosp_histogram_driver.py(run_diag:91) >> Selected region: global 2023-10-23 10:51:12,353 [INFO]: cosp_histogram_plot.py(plot:237) >> Plot saved in: tests/integration/all_sets_results_test/cosp_histogram/MISR-COSP/MISRCOSP-COSP_HISTOGRAM_MISR-ANN-global.png 2023-10-23 10:51:12,353 [INFO]: cosp_histogram_plot.py(plot:237) >> Plot saved in: tests/integration/all_sets_results_test/cosp_histogram/MISR-COSP/MISRCOSP-COSP_HISTOGRAM_MISR-ANN-global.png 2023-10-23 10:51:12,362 [INFO]: enso_diags_driver.py(run_diag_map:201) >> run_type: model_vs_obs 2023-10-23 10:51:12,365 [INFO]: enso_diags_driver.py(calculate_nino_index_model:82) >> Handling the following exception by looking for surface temperature: Neither does SST nor the variables in [('sst',), ('TS', 'OCNFRAC'), ('SST',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:12,366 [INFO]: enso_diags_driver.py(calculate_nino_index_model:101) >> Handling the following exception by trying built-in HadISST nino index time series: Neither does TS nor the variables in [('ts',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:12,367 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:12,367 [INFO]: enso_diags_driver.py(calculate_nino_index_model:110) >> Simulated surface temperature not found, using built-in HadISST nino index time series instead. 2023-10-23 10:51:12,367 [INFO]: enso_diags_driver.py(calculate_nino_index_model:115) >> nino_index_model [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:12,368 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:12,368 [INFO]: enso_diags_driver.py(run_diag_map:221) >> Season: ANN 2023-10-23 10:51:12,378 [INFO]: enso_diags_driver.py(run_diag_map:244) >> Variable: TREFHT 2023-10-23 10:51:12,378 [INFO]: enso_diags_driver.py(run_diag_map:249) >> Selected region: 20S20N 2023-10-23 10:51:12,410 [INFO]: enso_diags_driver.py(perform_regression:130) >> domain.shape: (24, 29, 256) 2023-10-23 10:51:12,591 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 0 2023-10-23 10:51:12,750 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 1 2023-10-23 10:51:12,900 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 2 2023-10-23 10:51:13,058 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 3 2023-10-23 10:51:13,218 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 4 2023-10-23 10:51:13,378 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 5 2023-10-23 10:51:13,536 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 6 2023-10-23 10:51:13,695 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 7 2023-10-23 10:51:13,855 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 8 2023-10-23 10:51:14,015 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 9 2023-10-23 10:51:14,174 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 10 2023-10-23 10:51:14,335 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 11 2023-10-23 10:51:14,501 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 12 2023-10-23 10:51:14,660 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 13 2023-10-23 10:51:14,820 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 14 2023-10-23 10:51:14,980 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 15 2023-10-23 10:51:15,140 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 16 2023-10-23 10:51:15,300 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 17 2023-10-23 10:51:15,460 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 18 2023-10-23 10:51:15,620 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 19 2023-10-23 10:51:15,781 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 20 2023-10-23 10:51:15,940 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 21 2023-10-23 10:51:16,101 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 22 2023-10-23 10:51:16,260 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 23 2023-10-23 10:51:16,419 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 24 2023-10-23 10:51:16,579 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 25 2023-10-23 10:51:16,739 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 26 2023-10-23 10:51:16,898 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 27 2023-10-23 10:51:17,058 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 28 2023-10-23 10:51:17,217 [INFO]: enso_diags_driver.py(perform_regression:161) >> confidence in fn: (29, 256) 2023-10-23 10:51:17,217 [INFO]: enso_diags_driver.py(perform_regression:165) >> reg_coe.shape: (29, 256) 2023-10-23 10:51:17,251 [INFO]: enso_diags_driver.py(perform_regression:130) >> domain.shape: (24, 29, 256) 2023-10-23 10:51:17,431 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 0 2023-10-23 10:51:17,589 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 1 2023-10-23 10:51:17,746 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 2 2023-10-23 10:51:17,904 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 3 2023-10-23 10:51:18,063 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 4 2023-10-23 10:51:18,222 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 5 2023-10-23 10:51:18,380 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 6 2023-10-23 10:51:18,540 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 7 2023-10-23 10:51:18,699 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 8 2023-10-23 10:51:18,858 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 9 2023-10-23 10:51:19,017 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 10 2023-10-23 10:51:19,176 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 11 2023-10-23 10:51:19,335 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 12 2023-10-23 10:51:19,494 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 13 2023-10-23 10:51:19,652 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 14 2023-10-23 10:51:19,811 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 15 2023-10-23 10:51:19,970 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 16 2023-10-23 10:51:20,128 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 17 2023-10-23 10:51:20,287 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 18 2023-10-23 10:51:20,445 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 19 2023-10-23 10:51:20,604 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 20 2023-10-23 10:51:20,763 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 21 2023-10-23 10:51:20,922 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 22 2023-10-23 10:51:21,082 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 23 2023-10-23 10:51:21,240 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 24 2023-10-23 10:51:21,400 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 25 2023-10-23 10:51:21,558 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 26 2023-10-23 10:51:21,717 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 27 2023-10-23 10:51:21,875 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 28 2023-10-23 10:51:22,033 [INFO]: enso_diags_driver.py(perform_regression:161) >> confidence in fn: (29, 256) 2023-10-23 10:51:22,034 [INFO]: enso_diags_driver.py(perform_regression:165) >> reg_coe.shape: (29, 256) 2023-10-23 10:51:22,296 [INFO]: enso_diags_driver.py(run_diag_map:366) >> Metrics saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map/regression-coefficient-trefht-over-nino34.json 2023-10-23 10:51:23,493 [INFO]: enso_diags_plot.py(plot_map:301) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map 2023-10-23 10:51:23,493 [INFO]: enso_diags_plot.py(plot_map:301) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map 2023-10-23 10:51:23,493 [INFO]: enso_diags_plot.py(plot_map:306) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map 2023-10-23 10:51:23,493 [INFO]: enso_diags_plot.py(plot_map:306) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map 2023-10-23 10:51:24,692 [INFO]: enso_diags_plot.py(plot_map:321) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:51:24,692 [INFO]: enso_diags_plot.py(plot_map:321) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:51:24,692 [INFO]: enso_diags_driver.py(run_diag_map:201) >> run_type: model_vs_obs 2023-10-23 10:51:24,694 [INFO]: enso_diags_driver.py(calculate_nino_index_model:82) >> Handling the following exception by looking for surface temperature: Neither does SST nor the variables in [('sst',), ('TS', 'OCNFRAC'), ('SST',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:24,695 [INFO]: enso_diags_driver.py(calculate_nino_index_model:101) >> Handling the following exception by trying built-in HadISST nino index time series: Neither does TS nor the variables in [('ts',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:24,696 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:24,696 [INFO]: enso_diags_driver.py(calculate_nino_index_model:110) >> Simulated surface temperature not found, using built-in HadISST nino index time series instead. 2023-10-23 10:51:24,696 [INFO]: enso_diags_driver.py(calculate_nino_index_model:115) >> nino_index_model [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:24,697 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:24,697 [INFO]: enso_diags_driver.py(run_diag_map:221) >> Season: ANN 2023-10-23 10:51:24,706 [INFO]: enso_diags_driver.py(run_diag_map:244) >> Variable: TREFHT 2023-10-23 10:51:24,707 [INFO]: enso_diags_driver.py(run_diag_map:249) >> Selected region: 20S20N 2023-10-23 10:51:24,738 [INFO]: enso_diags_driver.py(perform_regression:130) >> domain.shape: (24, 29, 256) 2023-10-23 10:51:24,919 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 0 2023-10-23 10:51:25,078 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 1 2023-10-23 10:51:25,237 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 2 2023-10-23 10:51:25,396 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 3 2023-10-23 10:51:25,555 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 4 2023-10-23 10:51:25,715 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 5 2023-10-23 10:51:25,875 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 6 2023-10-23 10:51:26,035 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 7 2023-10-23 10:51:26,194 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 8 2023-10-23 10:51:26,354 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 9 2023-10-23 10:51:26,514 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 10 2023-10-23 10:51:26,674 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 11 2023-10-23 10:51:26,833 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 12 2023-10-23 10:51:26,992 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 13 2023-10-23 10:51:27,151 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 14 2023-10-23 10:51:27,310 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 15 2023-10-23 10:51:27,469 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 16 2023-10-23 10:51:27,628 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 17 2023-10-23 10:51:27,787 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 18 2023-10-23 10:51:27,947 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 19 2023-10-23 10:51:28,104 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 20 2023-10-23 10:51:28,263 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 21 2023-10-23 10:51:28,422 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 22 2023-10-23 10:51:28,581 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 23 2023-10-23 10:51:28,739 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 24 2023-10-23 10:51:28,898 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 25 2023-10-23 10:51:29,055 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 26 2023-10-23 10:51:29,213 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 27 2023-10-23 10:51:29,372 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 28 2023-10-23 10:51:29,531 [INFO]: enso_diags_driver.py(perform_regression:161) >> confidence in fn: (29, 256) 2023-10-23 10:51:29,531 [INFO]: enso_diags_driver.py(perform_regression:165) >> reg_coe.shape: (29, 256) 2023-10-23 10:51:29,563 [INFO]: enso_diags_driver.py(perform_regression:130) >> domain.shape: (24, 29, 256) 2023-10-23 10:51:29,743 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 0 2023-10-23 10:51:29,901 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 1 2023-10-23 10:51:30,058 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 2 2023-10-23 10:51:30,216 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 3 2023-10-23 10:51:30,374 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 4 2023-10-23 10:51:30,532 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 5 2023-10-23 10:51:30,689 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 6 2023-10-23 10:51:30,847 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 7 2023-10-23 10:51:31,004 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 8 2023-10-23 10:51:31,163 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 9 2023-10-23 10:51:31,322 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 10 2023-10-23 10:51:31,481 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 11 2023-10-23 10:51:31,639 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 12 2023-10-23 10:51:31,797 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 13 2023-10-23 10:51:31,955 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 14 2023-10-23 10:51:32,113 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 15 2023-10-23 10:51:32,270 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 16 2023-10-23 10:51:32,428 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 17 2023-10-23 10:51:32,588 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 18 2023-10-23 10:51:32,747 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 19 2023-10-23 10:51:32,906 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 20 2023-10-23 10:51:33,066 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 21 2023-10-23 10:51:33,225 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 22 2023-10-23 10:51:33,385 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 23 2023-10-23 10:51:33,543 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 24 2023-10-23 10:51:33,702 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 25 2023-10-23 10:51:33,862 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 26 2023-10-23 10:51:34,015 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 27 2023-10-23 10:51:34,174 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 28 2023-10-23 10:51:34,334 [INFO]: enso_diags_driver.py(perform_regression:161) >> confidence in fn: (29, 256) 2023-10-23 10:51:34,334 [INFO]: enso_diags_driver.py(perform_regression:165) >> reg_coe.shape: (29, 256) 2023-10-23 10:51:34,596 [INFO]: enso_diags_driver.py(run_diag_map:366) >> Metrics saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs/regression-coefficient-trefht-over-nino34.json 2023-10-23 10:51:35,610 [INFO]: enso_diags_plot.py(plot_map:301) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs 2023-10-23 10:51:35,610 [INFO]: enso_diags_plot.py(plot_map:301) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs 2023-10-23 10:51:35,610 [INFO]: enso_diags_plot.py(plot_map:306) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs 2023-10-23 10:51:35,610 [INFO]: enso_diags_plot.py(plot_map:306) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs 2023-10-23 10:51:36,361 [INFO]: enso_diags_plot.py(plot_map:321) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:51:36,361 [INFO]: enso_diags_plot.py(plot_map:321) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:51:36,361 [INFO]: enso_diags_driver.py(run_diag_map:201) >> run_type: model_vs_obs 2023-10-23 10:51:36,363 [INFO]: enso_diags_driver.py(calculate_nino_index_model:82) >> Handling the following exception by looking for surface temperature: Neither does SST nor the variables in [('sst',), ('TS', 'OCNFRAC'), ('SST',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:36,364 [INFO]: enso_diags_driver.py(calculate_nino_index_model:101) >> Handling the following exception by trying built-in HadISST nino index time series: Neither does TS nor the variables in [('ts',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:36,365 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:36,365 [INFO]: enso_diags_driver.py(calculate_nino_index_model:110) >> Simulated surface temperature not found, using built-in HadISST nino index time series instead. 2023-10-23 10:51:36,366 [INFO]: enso_diags_driver.py(calculate_nino_index_model:115) >> nino_index_model [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:36,367 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.255 -0.105 -0.17 -0.105 0.05 0.23 0.36 0.475 0.265 0.235 0.17 -0.025 0.255 0.105 0.17 0.105 -0.05 -0.23 -0.36 -0.475 -0.265 -0.235 -0.17 0.025] 2023-10-23 10:51:36,367 [INFO]: enso_diags_driver.py(run_diag_map:221) >> Season: ANN 2023-10-23 10:51:36,376 [INFO]: enso_diags_driver.py(run_diag_map:244) >> Variable: TREFHT 2023-10-23 10:51:36,376 [INFO]: enso_diags_driver.py(run_diag_map:249) >> Selected region: 20S20N 2023-10-23 10:51:36,408 [INFO]: enso_diags_driver.py(perform_regression:130) >> domain.shape: (24, 29, 256) 2023-10-23 10:51:36,587 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 0 2023-10-23 10:51:36,743 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 1 2023-10-23 10:51:36,902 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 2 2023-10-23 10:51:37,060 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 3 2023-10-23 10:51:37,219 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 4 2023-10-23 10:51:37,378 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 5 2023-10-23 10:51:37,537 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 6 2023-10-23 10:51:37,696 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 7 2023-10-23 10:51:37,855 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 8 2023-10-23 10:51:38,013 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 9 2023-10-23 10:51:38,170 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 10 2023-10-23 10:51:38,329 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 11 2023-10-23 10:51:38,490 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 12 2023-10-23 10:51:38,650 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 13 2023-10-23 10:51:38,810 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 14 2023-10-23 10:51:38,971 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 15 2023-10-23 10:51:39,131 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 16 2023-10-23 10:51:39,291 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 17 2023-10-23 10:51:39,450 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 18 2023-10-23 10:51:39,609 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 19 2023-10-23 10:51:39,769 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 20 2023-10-23 10:51:39,929 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 21 2023-10-23 10:51:40,087 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 22 2023-10-23 10:51:40,246 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 23 2023-10-23 10:51:40,406 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 24 2023-10-23 10:51:40,567 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 25 2023-10-23 10:51:40,727 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 26 2023-10-23 10:51:40,888 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 27 2023-10-23 10:51:41,048 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 28 2023-10-23 10:51:41,209 [INFO]: enso_diags_driver.py(perform_regression:161) >> confidence in fn: (29, 256) 2023-10-23 10:51:41,209 [INFO]: enso_diags_driver.py(perform_regression:165) >> reg_coe.shape: (29, 256) 2023-10-23 10:51:41,241 [INFO]: enso_diags_driver.py(perform_regression:130) >> domain.shape: (24, 29, 256) 2023-10-23 10:51:41,423 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 0 2023-10-23 10:51:41,582 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 1 2023-10-23 10:51:41,742 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 2 2023-10-23 10:51:41,902 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 3 2023-10-23 10:51:42,059 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 4 2023-10-23 10:51:42,220 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 5 2023-10-23 10:51:42,380 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 6 2023-10-23 10:51:42,540 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 7 2023-10-23 10:51:42,701 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 8 2023-10-23 10:51:42,861 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 9 2023-10-23 10:51:43,022 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 10 2023-10-23 10:51:43,182 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 11 2023-10-23 10:51:43,343 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 12 2023-10-23 10:51:43,503 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 13 2023-10-23 10:51:43,663 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 14 2023-10-23 10:51:43,823 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 15 2023-10-23 10:51:43,980 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 16 2023-10-23 10:51:44,141 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 17 2023-10-23 10:51:44,302 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 18 2023-10-23 10:51:44,462 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 19 2023-10-23 10:51:44,622 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 20 2023-10-23 10:51:44,782 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 21 2023-10-23 10:51:44,943 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 22 2023-10-23 10:51:45,103 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 23 2023-10-23 10:51:45,263 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 24 2023-10-23 10:51:45,424 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 25 2023-10-23 10:51:45,584 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 26 2023-10-23 10:51:45,744 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 27 2023-10-23 10:51:45,904 [INFO]: enso_diags_driver.py(perform_regression:142) >> ilat: 28 2023-10-23 10:51:46,064 [INFO]: enso_diags_driver.py(perform_regression:161) >> confidence in fn: (29, 256) 2023-10-23 10:51:46,064 [INFO]: enso_diags_driver.py(perform_regression:165) >> reg_coe.shape: (29, 256) 2023-10-23 10:51:46,327 [INFO]: enso_diags_driver.py(run_diag_map:366) >> Metrics saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs/regression-coefficient-trefht-over-nino34.json 2023-10-23 10:51:47,363 [INFO]: enso_diags_plot.py(plot_map:301) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs 2023-10-23 10:51:47,363 [INFO]: enso_diags_plot.py(plot_map:301) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs 2023-10-23 10:51:47,363 [INFO]: enso_diags_plot.py(plot_map:306) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs 2023-10-23 10:51:47,363 [INFO]: enso_diags_plot.py(plot_map:306) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs 2023-10-23 10:51:48,125 [INFO]: enso_diags_plot.py(plot_map:321) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:51:48,125 [INFO]: enso_diags_plot.py(plot_map:321) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:51:48,125 [INFO]: enso_diags_driver.py(run_diag_scatter:400) >> run_type: model_vs_obs 2023-10-23 10:51:48,127 [INFO]: enso_diags_driver.py(calculate_nino_index_model:82) >> Handling the following exception by looking for surface temperature: Neither does SST nor the variables in [('sst',), ('TS', 'OCNFRAC'), ('SST',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:48,128 [INFO]: enso_diags_driver.py(calculate_nino_index_model:101) >> Handling the following exception by trying built-in HadISST nino index time series: Neither does TS nor the variables in [('ts',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:48,129 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:48,129 [INFO]: enso_diags_driver.py(calculate_nino_index_model:110) >> Simulated surface temperature not found, using built-in HadISST nino index time series instead. 2023-10-23 10:51:48,130 [INFO]: enso_diags_driver.py(calculate_nino_index_model:115) >> nino_index_model [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:48,131 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:48,335 [INFO]: enso_diags_plot.py(plot_scatter:437) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter 2023-10-23 10:51:48,335 [INFO]: enso_diags_plot.py(plot_scatter:437) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter 2023-10-23 10:51:48,335 [INFO]: enso_diags_plot.py(plot_scatter:442) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter 2023-10-23 10:51:48,335 [INFO]: enso_diags_plot.py(plot_scatter:442) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter 2023-10-23 10:51:48,586 [INFO]: enso_diags_plot.py(plot_scatter:461) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:51:48,586 [INFO]: enso_diags_plot.py(plot_scatter:461) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:51:48,586 [INFO]: enso_diags_driver.py(run_diag_scatter:400) >> run_type: model_vs_obs 2023-10-23 10:51:48,588 [INFO]: enso_diags_driver.py(calculate_nino_index_model:82) >> Handling the following exception by looking for surface temperature: Neither does SST nor the variables in [('sst',), ('TS', 'OCNFRAC'), ('SST',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:48,589 [INFO]: enso_diags_driver.py(calculate_nino_index_model:101) >> Handling the following exception by trying built-in HadISST nino index time series: Neither does TS nor the variables in [('ts',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:48,590 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:48,590 [INFO]: enso_diags_driver.py(calculate_nino_index_model:110) >> Simulated surface temperature not found, using built-in HadISST nino index time series instead. 2023-10-23 10:51:48,591 [INFO]: enso_diags_driver.py(calculate_nino_index_model:115) >> nino_index_model [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:48,592 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:48,796 [INFO]: enso_diags_plot.py(plot_scatter:437) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-start-yrs 2023-10-23 10:51:48,796 [INFO]: enso_diags_plot.py(plot_scatter:437) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-start-yrs 2023-10-23 10:51:48,796 [INFO]: enso_diags_plot.py(plot_scatter:442) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-start-yrs 2023-10-23 10:51:48,796 [INFO]: enso_diags_plot.py(plot_scatter:442) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-start-yrs 2023-10-23 10:51:49,048 [INFO]: enso_diags_plot.py(plot_scatter:461) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-start-yrs/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:51:49,048 [INFO]: enso_diags_plot.py(plot_scatter:461) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-start-yrs/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:51:49,048 [INFO]: enso_diags_driver.py(run_diag_scatter:400) >> run_type: model_vs_obs 2023-10-23 10:51:49,050 [INFO]: enso_diags_driver.py(calculate_nino_index_model:82) >> Handling the following exception by looking for surface temperature: Neither does SST nor the variables in [('sst',), ('TS', 'OCNFRAC'), ('SST',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:49,051 [INFO]: enso_diags_driver.py(calculate_nino_index_model:101) >> Handling the following exception by trying built-in HadISST nino index time series: Neither does TS nor the variables in [('ts',)] have valid files in tests/integration/integration_test_data. 2023-10-23 10:51:49,052 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:49,052 [INFO]: enso_diags_driver.py(calculate_nino_index_model:110) >> Simulated surface temperature not found, using built-in HadISST nino index time series instead. 2023-10-23 10:51:49,052 [INFO]: enso_diags_driver.py(calculate_nino_index_model:115) >> nino_index_model [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:49,053 [INFO]: enso_diags_driver.py(calculate_nino_index:66) >> nino_index_obs [-0.075 0.155 -0.09 0.05 0.34 0.605 0.7 0.615 0.305 0.07 0.135 -0.13 0.075 -0.155 0.09 -0.05 -0.34 -0.605 -0.7 -0.615 -0.305 -0.07 -0.135 0.13 ] 2023-10-23 10:51:49,259 [INFO]: enso_diags_plot.py(plot_scatter:437) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-test-ref-yrs 2023-10-23 10:51:49,259 [INFO]: enso_diags_plot.py(plot_scatter:437) >> Output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-test-ref-yrs 2023-10-23 10:51:49,259 [INFO]: enso_diags_plot.py(plot_scatter:442) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-test-ref-yrs 2023-10-23 10:51:49,259 [INFO]: enso_diags_plot.py(plot_scatter:442) >> Original output dir: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-test-ref-yrs 2023-10-23 10:51:49,509 [INFO]: enso_diags_plot.py(plot_scatter:461) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-test-ref-yrs/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:51:49,509 [INFO]: enso_diags_plot.py(plot_scatter:461) >> Plot saved in: tests/integration/all_sets_results_test/enso_diags/TREFHT-response-scatter-test-ref-yrs/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:51:51,850 [INFO]: qbo_driver.py(run_diag:272) >> Metrics saved in: tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags_test.json 2023-10-23 10:51:51,852 [INFO]: qbo_driver.py(run_diag:272) >> Metrics saved in: tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags_ref.json 2023-10-23 10:51:53,123 [INFO]: qbo_plot.py(plot:208) >> Plot saved in: tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags.png 2023-10-23 10:51:53,123 [INFO]: qbo_plot.py(plot:208) >> Plot saved in: tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags.png 2023-10-23 10:51:53,930 [INFO]: streamflow_driver.py(run_diag:132) >> gauges.shape=(25765, 94) 2023-10-23 10:51:55,031 [INFO]: streamflow_driver.py(setup_ref:258) >> ref_array.shape=(1380, 30961) 2023-10-23 10:51:55,260 [INFO]: streamflow_driver.py(setup_test:272) >> test var original dimensions=(36, 360, 720) 2023-10-23 10:51:55,261 [INFO]: streamflow_driver.py(setup_test:275) >> test var transposed dimensions=(720, 360, 36) 2023-10-23 10:51:55,412 [INFO]: streamflow_driver.py(setup_test:282) >> area_upstream dimensions=(720, 360) 2023-10-23 10:51:55,412 [INFO]: streamflow_driver.py(setup_test:287) >> test_array.shape=(720, 360, 36) 2023-10-23 10:51:55,435 [INFO]: streamflow_driver.py(run_diag:147) >> lat_lon.shape=(25765, 2) 2023-10-23 10:51:55,435 [INFO]: streamflow_driver.py(generate_export:389) >> export.shape=(25765, 9) 2023-10-23 10:51:55,435 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #0 2023-10-23 10:51:57,936 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #1000 2023-10-23 10:52:00,101 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #2000 2023-10-23 10:52:02,777 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #3000 2023-10-23 10:52:05,640 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #4000 2023-10-23 10:52:08,391 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #5000 2023-10-23 10:52:11,065 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #6000 2023-10-23 10:52:13,635 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #7000 2023-10-23 10:52:15,695 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #8000 2023-10-23 10:52:17,270 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #9000 2023-10-23 10:52:19,370 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #10000 2023-10-23 10:52:21,296 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #11000 2023-10-23 10:52:23,819 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #12000 2023-10-23 10:52:27,066 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #13000 2023-10-23 10:52:30,682 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #14000 2023-10-23 10:52:33,549 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #15000 2023-10-23 10:52:36,334 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #16000 2023-10-23 10:52:39,196 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #17000 2023-10-23 10:52:42,075 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #18000 2023-10-23 10:52:44,972 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #19000 2023-10-23 10:52:47,919 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #20000 2023-10-23 10:52:50,797 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #21000 2023-10-23 10:52:53,714 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #22000 2023-10-23 10:52:56,655 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #23000 2023-10-23 10:52:59,569 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #24000 2023-10-23 10:53:02,489 [INFO]: streamflow_driver.py(generate_export:392) >> On gauge #25000 2023-10-23 10:53:04,745 [INFO]: streamflow_driver.py(run_diag:168) >> export.shape before removing ref nan means=(25765, 9) 2023-10-23 10:53:04,746 [INFO]: streamflow_driver.py(run_diag:173) >> export.shape before removing test nan means=(22959, 9) 2023-10-23 10:53:04,747 [INFO]: streamflow_driver.py(run_diag:178) >> export.shape after both nan removals=(20740, 9) 2023-10-23 10:53:04,747 [INFO]: streamflow_driver.py(run_diag:189) >> export.shape after max_area_error cut=(1940, 9) 2023-10-23 10:53:04,747 [INFO]: streamflow_driver.py(run_diag:194) >> Variable: RIVER_DISCHARGE_OVER_LAND_LIQ 2023-10-23 10:53:07,470 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:219) >> num_colors=12 2023-10-23 10:53:07,470 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:219) >> num_colors=12 2023-10-23 10:53:07,471 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:230) >> bounds=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 2023-10-23 10:53:07,471 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:230) >> bounds=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 2023-10-23 10:53:10,214 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:219) >> num_colors=12 2023-10-23 10:53:10,214 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:219) >> num_colors=12 2023-10-23 10:53:10,214 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:230) >> bounds=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 2023-10-23 10:53:10,214 [INFO]: streamflow_plot.py(plot_panel_seasonality_map:230) >> bounds=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 2023-10-23 10:53:10,234 [INFO]: streamflow_plot.py(plot_seasonality_map:310) >> Output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:10,234 [INFO]: streamflow_plot.py(plot_seasonality_map:310) >> Output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:10,234 [INFO]: streamflow_plot.py(plot_seasonality_map:315) >> Original output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:10,234 [INFO]: streamflow_plot.py(plot_seasonality_map:315) >> Original output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:15,175 [INFO]: streamflow_plot.py(plot_seasonality_map:333) >> Plot saved in: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png 2023-10-23 10:53:15,175 [INFO]: streamflow_plot.py(plot_seasonality_map:333) >> Plot saved in: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png 2023-10-23 10:53:20,875 [INFO]: streamflow_plot.py(setup_annual_map:494) >> Bias of mean annual discharge bias min=-100.0, max=4715418.0 2023-10-23 10:53:20,875 [INFO]: streamflow_plot.py(setup_annual_map:494) >> Bias of mean annual discharge bias min=-100.0, max=4715418.0 2023-10-23 10:53:23,612 [INFO]: streamflow_plot.py(plot_annual_map:592) >> Output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:23,612 [INFO]: streamflow_plot.py(plot_annual_map:592) >> Output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:23,612 [INFO]: streamflow_plot.py(plot_annual_map:597) >> Original output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:23,612 [INFO]: streamflow_plot.py(plot_annual_map:597) >> Original output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:26,987 [INFO]: streamflow_plot.py(plot_annual_map:615) >> Plot saved in: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/annual_map.png 2023-10-23 10:53:26,987 [INFO]: streamflow_plot.py(plot_annual_map:615) >> Plot saved in: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/annual_map.png 2023-10-23 10:53:27,032 [INFO]: streamflow_plot.py(plot_annual_scatter:707) >> Output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:27,032 [INFO]: streamflow_plot.py(plot_annual_scatter:707) >> Output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:27,032 [INFO]: streamflow_plot.py(plot_annual_scatter:712) >> Original output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:27,032 [INFO]: streamflow_plot.py(plot_annual_scatter:712) >> Original output dir: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM 2023-10-23 10:53:27,699 [INFO]: streamflow_plot.py(plot_annual_scatter:729) >> Plot saved in: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/annual_scatter.png 2023-10-23 10:53:27,699 [INFO]: streamflow_plot.py(plot_annual_scatter:729) >> Plot saved in: tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/annual_scatter.png 2023-10-23 10:53:27,729 [INFO]: diurnal_cycle_driver.py(run_diag:50) >> Variable: PRECT 2023-10-23 10:53:27,907 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 2000-6-1 1:30:0.0 1.5 2023-10-23 10:53:27,907 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:27,909 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:27,909 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8, 25, 60) 2023-10-23 10:53:27,910 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1998-6-1 1:30:0.0 1.5 2023-10-23 10:53:27,910 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:27,914 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:27,915 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8, 100, 240) 2023-10-23 10:53:27,923 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 4 mm/day 2023-10-23 10:53:27,923 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 4 mm/day 2023-10-23 10:53:29,054 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 11 mm/day 2023-10-23 10:53:29,054 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 11 mm/day 2023-10-23 10:53:31,488 [INFO]: diurnal_cycle_plot.py(plot:300) >> Plot saved in: tests/integration/all_sets_results_test/diurnal_cycle/TRMM-3B43v-7_3hr/TRMM-3B43v-7_3hr-PRECT-JJA-CONUS.png 2023-10-23 10:53:31,488 [INFO]: diurnal_cycle_plot.py(plot:300) >> Plot saved in: tests/integration/all_sets_results_test/diurnal_cycle/TRMM-3B43v-7_3hr/TRMM-3B43v-7_3hr-PRECT-JJA-CONUS.png 2023-10-23 10:53:31,518 [INFO]: diurnal_cycle_driver.py(run_diag:50) >> Variable: PRECT 2023-10-23 10:53:31,674 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 2000-6-1 1:30:0.0 1.5 2023-10-23 10:53:31,674 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:31,679 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:31,680 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8, 40, 360) 2023-10-23 10:53:31,683 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1998-6-1 1:30:0.0 1.5 2023-10-23 10:53:31,683 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:31,708 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:31,722 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8, 160, 1440) 2023-10-23 10:53:31,768 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 13 mm/day 2023-10-23 10:53:31,768 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 13 mm/day 2023-10-23 10:53:32,433 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 32 mm/day 2023-10-23 10:53:32,433 [INFO]: diurnal_cycle_plot.py(plot_panel:93) >> Scale test diurnal cycle amplitude to specified 32 mm/day 2023-10-23 10:53:33,520 [INFO]: diurnal_cycle_plot.py(plot:300) >> Plot saved in: tests/integration/all_sets_results_test/diurnal_cycle/TRMM-3B43v-7_3hr/TRMM-3B43v-7_3hr-PRECT-JJA-20S20N.png 2023-10-23 10:53:33,520 [INFO]: diurnal_cycle_plot.py(plot:300) >> Plot saved in: tests/integration/all_sets_results_test/diurnal_cycle/TRMM-3B43v-7_3hr/TRMM-3B43v-7_3hr-PRECT-JJA-20S20N.png 2023-10-23 10:53:33,528 [INFO]: arm_diags_driver.py(run_diag_annual_cycle:275) >> Selected region: sgpc1 2023-10-23 10:53:33,528 [INFO]: arm_diags_driver.py(run_diag_annual_cycle:279) >> Season: ANNUALCYCLE 2023-10-23 10:53:33,528 [INFO]: arm_diags_driver.py(run_diag_annual_cycle:281) >> Variable: PRECT 2023-10-23 10:53:33,608 [INFO]: arm_diags_driver.py(run_diag_annual_cycle:358) >> Metrics saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-ANNUALCYCLE-sgpc1.json 2023-10-23 10:53:33,824 [INFO]: arm_diags_plot.py(plot_annual_cycle:496) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-ANNUALCYCLE-sgpc1.png 2023-10-23 10:53:33,824 [INFO]: arm_diags_plot.py(plot_annual_cycle:496) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-ANNUALCYCLE-sgpc1.png 2023-10-23 10:53:33,825 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:68) >> Selected region: sgpc1 2023-10-23 10:53:33,825 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:72) >> Season: DJF 2023-10-23 10:53:33,825 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:74) >> Variable: PRECT 2023-10-23 10:53:33,876 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1-1-1 0:0:0.0 0.0 2023-10-23 10:53:33,876 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:33,899 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 2004-1-16 0:30:0.0 0.5 2023-10-23 10:53:33,899 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=24 2023-10-23 10:53:33,901 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:153) >> Metrics saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-DJF-sgpc1.json 2023-10-23 10:53:33,912 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:33,912 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8,) 2023-10-23 10:53:33,924 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:33,925 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(24,) 2023-10-23 10:53:34,048 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-DJF-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,048 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-DJF-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,048 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:72) >> Season: MAM 2023-10-23 10:53:34,048 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:74) >> Variable: PRECT 2023-10-23 10:53:34,098 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1-1-1 0:0:0.0 0.0 2023-10-23 10:53:34,098 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:34,119 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 2004-1-16 0:30:0.0 0.5 2023-10-23 10:53:34,120 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=24 2023-10-23 10:53:34,122 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:153) >> Metrics saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-MAM-sgpc1.json 2023-10-23 10:53:34,133 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:34,133 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8,) 2023-10-23 10:53:34,145 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:34,145 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(24,) 2023-10-23 10:53:34,273 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-MAM-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,273 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-MAM-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,273 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:72) >> Season: JJA 2023-10-23 10:53:34,273 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:74) >> Variable: PRECT 2023-10-23 10:53:34,325 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1-1-1 0:0:0.0 0.0 2023-10-23 10:53:34,325 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:34,347 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 2004-1-16 0:30:0.0 0.5 2023-10-23 10:53:34,347 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=24 2023-10-23 10:53:34,349 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:153) >> Metrics saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-JJA-sgpc1.json 2023-10-23 10:53:34,360 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:34,360 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8,) 2023-10-23 10:53:34,372 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:34,372 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(24,) 2023-10-23 10:53:34,499 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-JJA-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,499 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-JJA-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,499 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:72) >> Season: SON 2023-10-23 10:53:34,499 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:74) >> Variable: PRECT 2023-10-23 10:53:34,548 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1-1-1 0:0:0.0 0.0 2023-10-23 10:53:34,548 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:34,570 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 2004-1-16 0:30:0.0 0.5 2023-10-23 10:53:34,570 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=24 2023-10-23 10:53:34,572 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle:153) >> Metrics saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-SON-sgpc1.json 2023-10-23 10:53:34,583 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:34,583 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(8,) 2023-10-23 10:53:34,596 [INFO]: diurnal_cycle.py(fastAllGridFT:199) >> Calling numpy FFT function and converting from complex-valued FFT to real-valued amplitude and phase 2023-10-23 10:53:34,596 [INFO]: diurnal_cycle.py(fastAllGridFT:203) >> FFT output shape=(24,) 2023-10-23 10:53:34,722 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-SON-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,722 [INFO]: arm_diags_plot.py(plot_diurnal_cycle:555) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-PRECT-SON-sgpc1-diurnal-cycle.png 2023-10-23 10:53:34,723 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle_zt:170) >> Selected region: sgpc1 2023-10-23 10:53:34,723 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle_zt:174) >> Season: ANNUALCYCLE 2023-10-23 10:53:34,723 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle_zt:176) >> Variable: CLOUD 2023-10-23 10:53:51,803 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:62) >> start_time 1-1-1 0:0:0.0 0.0 2023-10-23 10:53:51,804 [INFO]: diurnal_cycle.py(composite_diurnal_cycle:63) >> var_time_freq=8 2023-10-23 10:53:51,824 [INFO]: arm_diags_driver.py(run_diag_diurnal_cycle_zt:253) >> Metrics saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-CLOUD-ANNUALCYCLE-sgpc1.json 2023-10-23 10:53:53,175 [INFO]: arm_diags_plot.py(plot_diurnal_cycle_zt:646) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-CLOUD-ANNUALCYCLE-sgpc1-ref.png 2023-10-23 10:53:53,175 [INFO]: arm_diags_plot.py(plot_diurnal_cycle_zt:646) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-CLOUD-ANNUALCYCLE-sgpc1-ref.png 2023-10-23 10:53:54,616 [INFO]: arm_diags_plot.py(plot_diurnal_cycle_zt:646) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-CLOUD-ANNUALCYCLE-sgpc1-test.png 2023-10-23 10:53:54,616 [INFO]: arm_diags_plot.py(plot_diurnal_cycle_zt:646) >> Plot saved in: tests/integration/all_sets_results_test/arm_diags/armdiags-CLOUD-ANNUALCYCLE-sgpc1-test.png 2023-10-23 10:53:54,616 [INFO]: arm_diags_driver.py(run_diag_convection_onset:375) >> Selected region: sgpc1 2023-10-23 10:53:54,744 [ERROR]: core_parameter.py(_run_diag:268) >> Error in e3sm_diags.driver.arm_diags_driver Traceback (most recent call last): File "/global/homes/v/vo13/mambaforge/envs/cdat-migration-fy24-nompi/lib/python3.10/site-packages/e3sm_diags/parameter/core_parameter.py", line 265, in _run_diag single_result = module.run_diag(self) File "/global/homes/v/vo13/mambaforge/envs/cdat-migration-fy24-nompi/lib/python3.10/site-packages/e3sm_diags/driver/arm_diags_driver.py", line 578, in run_diag return run_diag_convection_onset(parameter) File "/global/homes/v/vo13/mambaforge/envs/cdat-migration-fy24-nompi/lib/python3.10/site-packages/e3sm_diags/driver/arm_diags_driver.py", line 406, in run_diag_convection_onset arm_diags_plot.plot_convection_onset_statistics( File "/global/homes/v/vo13/mambaforge/envs/cdat-migration-fy24-nompi/lib/python3.10/site-packages/e3sm_diags/plot/cartopy/arm_diags_plot.py", line 178, in plot_convection_onset_statistics number_of_bins = int(np.ceil((cwv_max - cwv_min) / bin_width)) UnboundLocalError: local variable 'cwv_max' referenced before assignment 2023-10-23 10:53:54,746 [INFO]: main.py(create_viewer:130) >> zonal_mean_xy tests/integration/all_sets_results_test/viewer 2023-10-23 10:53:54,788 [INFO]: main.py(create_viewer:133) >> ('Zonal mean line plots', 'zonal_mean_xy/index.html') 2023-10-23 10:53:54,788 [INFO]: main.py(create_viewer:130) >> zonal_mean_2d tests/integration/all_sets_results_test/viewer 2023-10-23 10:53:54,823 [INFO]: main.py(create_viewer:133) >> ('Pressure-Latitude zonal mean contour plots', 'zonal_mean_2d/index.html') 2023-10-23 10:53:54,823 [INFO]: main.py(create_viewer:130) >> meridional_mean_2d tests/integration/all_sets_results_test/viewer 2023-10-23 10:53:54,859 [INFO]: main.py(create_viewer:133) >> ('Pressure-Longitude meridional mean contour plots', 'meridional_mean_2d/index.html') 2023-10-23 10:53:54,860 [INFO]: main.py(create_viewer:130) >> lat_lon tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,328 [INFO]: main.py(create_viewer:133) >> [('Latitude-Longitude contour maps', 'lat_lon/index.html'), ('Table', 'table/index.html'), ('Taylor Diagram', 'taylor/index.html'), ('CMIP6 Comparison', 'cmip6/index.html')] 2023-10-23 10:54:01,328 [INFO]: main.py(create_viewer:130) >> polar tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,367 [INFO]: main.py(create_viewer:133) >> ('Polar contour maps', 'polar/index.html') 2023-10-23 10:54:01,368 [INFO]: main.py(create_viewer:130) >> area_mean_time_series tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,407 [INFO]: main.py(create_viewer:133) >> ('Area Mean Time Series', 'area_mean_time_series/index.html') 2023-10-23 10:54:01,407 [INFO]: main.py(create_viewer:130) >> cosp_histogram tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,447 [INFO]: main.py(create_viewer:133) >> ('CloudTopHeight-Tau joint histograms', 'cosp_histogram/index.html') 2023-10-23 10:54:01,447 [INFO]: main.py(create_viewer:130) >> enso_diags tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,447 [INFO]: enso_diags_viewer.py(create_viewer:56) >> image_relative_path: ../enso_diags/TREFHT-response-map/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:01,451 [INFO]: enso_diags_viewer.py(create_viewer:56) >> image_relative_path: ../enso_diags/TREFHT-response-map-start-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:01,455 [INFO]: enso_diags_viewer.py(create_viewer:56) >> image_relative_path: ../enso_diags/TREFHT-response-map-test-ref-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:01,458 [INFO]: enso_diags_viewer.py(create_viewer:56) >> image_relative_path: ../enso_diags/TREFHT-response-scatter/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:54:01,461 [INFO]: enso_diags_viewer.py(create_viewer:56) >> image_relative_path: ../enso_diags/TREFHT-response-scatter-start-yrs/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:54:01,465 [INFO]: enso_diags_viewer.py(create_viewer:56) >> image_relative_path: ../enso_diags/TREFHT-response-scatter-test-ref-yrs/feedback-TREFHT-NINO3-TS-NINO3.png 2023-10-23 10:54:01,517 [INFO]: main.py(create_viewer:133) >> ('ENSO Diagnostics', 'enso_diags/index.html') 2023-10-23 10:54:01,517 [INFO]: main.py(create_viewer:130) >> qbo tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,557 [INFO]: main.py(create_viewer:133) >> ('Quasi-biennial Oscillation', 'qbo/index.html') 2023-10-23 10:54:01,557 [INFO]: main.py(create_viewer:130) >> streamflow tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,609 [INFO]: main.py(create_viewer:133) >> ('Streamflow', 'streamflow/index.html') 2023-10-23 10:54:01,609 [INFO]: main.py(create_viewer:130) >> diurnal_cycle tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,658 [INFO]: main.py(create_viewer:133) >> ('Diurnal cycle phase maps', 'diurnal_cycle/index.html') 2023-10-23 10:54:01,658 [INFO]: main.py(create_viewer:130) >> arm_diags tests/integration/all_sets_results_test/viewer 2023-10-23 10:54:01,722 [INFO]: main.py(create_viewer:133) >> ('Diagnostics at ARM stations', 'arm_diags/index.html') 2023-10-23 10:54:01,732 [INFO]: e3sm_diags_driver.py(main:390) >> Viewer HTML generated at tests/integration/all_sets_results_test/viewer/index.html 2023-10-23 10:54:01,736 [INFO]: logger.py(move_log_to_prov_dir:106) >> Log file saved in tests/integration/all_sets_results_test/prov/e3sm_diags_run.log 2023-10-23 10:54:02,352 [INFO]: test_diags.py(get_results_dir:36) >> results_dir=tests/integration/all_sets_results_test/ ....2023-10-23 10:54:02,980 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:02,980 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//enso_diags/TREFHT-response-map/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:02,980 [INFO]: test_diags.py(_compare_images:118) >> diff has 12 nonzero pixels. 2023-10-23 10:54:02,980 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:02,980 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=5.704099821746881e-06 .2023-10-23 10:54:03,132 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-start-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:03,133 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//enso_diags/TREFHT-response-map-start-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:03,133 [INFO]: test_diags.py(_compare_images:118) >> diff has 12 nonzero pixels. 2023-10-23 10:54:03,133 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:03,133 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=5.704099821746881e-06 .2023-10-23 10:54:03,276 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/enso_diags/TREFHT-response-map-test-ref-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:03,276 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//enso_diags/TREFHT-response-map-test-ref-yrs/regression-coefficient-trefht-over-nino34.png 2023-10-23 10:54:03,276 [INFO]: test_diags.py(_compare_images:118) >> diff has 12 nonzero pixels. 2023-10-23 10:54:03,277 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:03,277 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=5.704099821746881e-06 ....2023-10-23 10:54:03,861 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png 2023-10-23 10:54:03,861 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png 2023-10-23 10:54:03,862 [INFO]: test_diags.py(_compare_images:118) >> diff has 9455 nonzero pixels. 2023-10-23 10:54:03,862 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:03,862 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=0.00449435531788473 F2023-10-23 10:54:04,316 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png 2023-10-23 10:54:04,317 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png 2023-10-23 10:54:04,317 [INFO]: test_diags.py(_compare_images:118) >> diff has 49777 nonzero pixels. 2023-10-23 10:54:04,317 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:04,317 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=0.023661081402257873 F.2023-10-23 10:54:04,793 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png 2023-10-23 10:54:04,794 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png 2023-10-23 10:54:04,794 [INFO]: test_diags.py(_compare_images:118) >> diff has 1211 nonzero pixels. 2023-10-23 10:54:04,794 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:04,794 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=0.0005756387403446227 F2023-10-23 10:54:05,059 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags.png 2023-10-23 10:54:05,060 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//qbo/qbo-test/qbo_diags.png 2023-10-23 10:54:05,060 [INFO]: test_diags.py(_compare_images:118) >> diff has 10335 nonzero pixels. 2023-10-23 10:54:05,060 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=1960000 2023-10-23 10:54:05,060 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=0.0052729591836734695 F2023-10-23 10:54:05,264 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png 2023-10-23 10:54:05,264 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png 2023-10-23 10:54:05,264 [INFO]: test_diags.py(_compare_images:118) >> diff has 3331 nonzero pixels. 2023-10-23 10:54:05,264 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:05,265 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=0.0015833630421865717 F2023-10-23 10:54:05,433 [INFO]: test_diags.py(_compare_images:116) >> path_to_actual_png=tests/integration/all_sets_results_test/zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png 2023-10-23 10:54:05,434 [INFO]: test_diags.py(_compare_images:117) >> path_to_expected_png=tests/integration//integration_test_images//zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png 2023-10-23 10:54:05,434 [INFO]: test_diags.py(_compare_images:118) >> diff has 880 nonzero pixels. 2023-10-23 10:54:05,434 [INFO]: test_diags.py(_compare_images:121) >> total number of pixels=2103750 2023-10-23 10:54:05,434 [INFO]: test_diags.py(_compare_images:123) >> num_nonzero_pixels/num_pixels fraction=0.0004183006535947712 F.

=============================================================== FAILURES =============================================================== _____ TestAllSets.test_lat_lon_plot_diffs __

self = <tests.integration.test_diags.TestAllSets object at 0x7f1506628ee0>

def test_lat_lon_plot_diffs(self):
  self._check_plots_plevs("lat_lon", "global", [850.0])

tests/integration/test_diags.py:222:


tests/integration/test_diags.py:385: in _check_plots_plevs self._check_plots_generic( tests/integration/test_diags.py:372: in _check_plots_generic self._check_html_image(html_path, png_path, full_png_path)


self = <tests.integration.test_diags.TestAllSets object at 0x7f1506628ee0> html_path = 'tests/integration/all_sets_results_test/viewer/lat_lon/era-interim/t-850mb-global-era-interim/ann.html' png_path = 'lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png' full_png_path = 'tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png'

def _check_html_image(self, html_path, png_path, full_png_path):
    # Check HTML image tags exist.
    img_src = None
    option_value = None
    href = None
    with open(html_path, "r") as html:
        for line in html:
            # If `img_src` is not defined yet:
            if not img_src:
                re_str = '<img src="../../../../{}">'.format(png_path)
                img_src = re.search(re_str, line)
            # If `option_value` is not defined yet:
            if not option_value:
                re_str = '<option value="../../../../{}">'.format(png_path)
                option_value = re.search(re_str, line)
            # If `href` is not defined yet:
            if not href:
                re_str = 'href="../../../../{}">'.format(png_path)
                href = re.search(re_str, line)

    assert img_src is not None
    assert option_value is not None
    assert href is not None

    image_name = os.path.split(png_path)[-1]
    path_to_actual_png = full_png_path
    path_to_expected_png = f"{TEST_IMAGES_PATH}/{png_path}"

    if "CHECK_IMAGES" in os.environ:
        # Set `export CHECK_IMAGES=True` to do a pixel-by-pixel image comparison check.
        check_images = os.environ["CHECK_IMAGES"].lower() in [
            "true",
            "yes",
            "t",
            "y",
            "1",
        ]
    else:
        check_images = True

    if check_images:
        mismatched_images: List[str] = []
        _compare_images(
            mismatched_images,
            image_name,
            path_to_actual_png,
            path_to_expected_png,
        )
      assert len(mismatched_images) == 0

E AssertionError: assert 1 == 0 E + where 1 = len(['ERA-Interim-T-850-ANN-global.png'])

tests/integration/test_diags.py:322: AssertionError ---------------------------------------------------------- Captured log call ----------------------------------------------------------- INFO tests.integration.test_diags:test_diags.py:116 path_to_actual_png=tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png INFO tests.integration.test_diags:test_diags.py:117 path_to_expected_png=tests/integration//integration_test_images//lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-global.png INFO tests.integration.test_diags:test_diags.py:118 diff has 9455 nonzero pixels. INFO tests.integration.test_diags:test_diags.py:121 total number of pixels=2103750 INFO tests.integration.test_diags:test_diags.py:123 num_nonzero_pixels/numpixels fraction=0.00449435531788473 ____ TestAllSets.test_lat_lon_regional_plotdiffs ____

self = <tests.integration.test_diags.TestAllSets object at 0x7f1506629060>

def test_lat_lon_regional_plot_diffs(self):
  self._check_plots_plevs("lat_lon", "CONUS_RRM", [850.0])

tests/integration/test_diags.py:225:


tests/integration/test_diags.py:385: in _check_plots_plevs self._check_plots_generic( tests/integration/test_diags.py:372: in _check_plots_generic self._check_html_image(html_path, png_path, full_png_path)


self = <tests.integration.test_diags.TestAllSets object at 0x7f1506629060> html_path = 'tests/integration/all_sets_results_test/viewer/lat_lon/era-interim/t-850mb-conus_rrm-era-interim/ann.html' png_path = 'lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png' full_png_path = 'tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png'

def _check_html_image(self, html_path, png_path, full_png_path):
    # Check HTML image tags exist.
    img_src = None
    option_value = None
    href = None
    with open(html_path, "r") as html:
        for line in html:
            # If `img_src` is not defined yet:
            if not img_src:
                re_str = '<img src="../../../../{}">'.format(png_path)
                img_src = re.search(re_str, line)
            # If `option_value` is not defined yet:
            if not option_value:
                re_str = '<option value="../../../../{}">'.format(png_path)
                option_value = re.search(re_str, line)
            # If `href` is not defined yet:
            if not href:
                re_str = 'href="../../../../{}">'.format(png_path)
                href = re.search(re_str, line)

    assert img_src is not None
    assert option_value is not None
    assert href is not None

    image_name = os.path.split(png_path)[-1]
    path_to_actual_png = full_png_path
    path_to_expected_png = f"{TEST_IMAGES_PATH}/{png_path}"

    if "CHECK_IMAGES" in os.environ:
        # Set `export CHECK_IMAGES=True` to do a pixel-by-pixel image comparison check.
        check_images = os.environ["CHECK_IMAGES"].lower() in [
            "true",
            "yes",
            "t",
            "y",
            "1",
        ]
    else:
        check_images = True

    if check_images:
        mismatched_images: List[str] = []
        _compare_images(
            mismatched_images,
            image_name,
            path_to_actual_png,
            path_to_expected_png,
        )
      assert len(mismatched_images) == 0

E AssertionError: assert 1 == 0 E + where 1 = len(['ERA-Interim-T-850-ANN-CONUS_RRM.png'])

tests/integration/test_diags.py:322: AssertionError ---------------------------------------------------------- Captured log call ----------------------------------------------------------- INFO tests.integration.test_diags:test_diags.py:116 path_to_actual_png=tests/integration/all_sets_results_test/lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png INFO tests.integration.test_diags:test_diags.py:117 path_to_expected_png=tests/integration//integration_test_images//lat_lon/ERA-Interim/ERA-Interim-T-850-ANN-CONUS_RRM.png INFO tests.integration.test_diags:test_diags.py:118 diff has 49777 nonzero pixels. INFO tests.integration.test_diags:test_diags.py:121 total number of pixels=2103750 INFO tests.integration.test_diags:test_diags.py:123 num_nonzero_pixels/num_pixels fraction=0.023661081402257873 __ TestAllSets.test_polar_plot_diffs ___

self = <tests.integration.test_diags.TestAllSets object at 0x7f1506629360>

def test_polar_plot_diffs(self):
  self._check_plots_plevs("polar", "polar_S", [850.0])

tests/integration/test_diags.py:231:


tests/integration/test_diags.py:385: in _check_plots_plevs self._check_plots_generic( tests/integration/test_diags.py:372: in _check_plots_generic self._check_html_image(html_path, png_path, full_png_path)


self = <tests.integration.test_diags.TestAllSets object at 0x7f1506629360> html_path = 'tests/integration/all_sets_results_test/viewer/polar/era-interim/t-850mb-polar_s-era-interim/ann.html' png_path = 'polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png' full_png_path = 'tests/integration/all_sets_results_test/polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png'

def _check_html_image(self, html_path, png_path, full_png_path):
    # Check HTML image tags exist.
    img_src = None
    option_value = None
    href = None
    with open(html_path, "r") as html:
        for line in html:
            # If `img_src` is not defined yet:
            if not img_src:
                re_str = '<img src="../../../../{}">'.format(png_path)
                img_src = re.search(re_str, line)
            # If `option_value` is not defined yet:
            if not option_value:
                re_str = '<option value="../../../../{}">'.format(png_path)
                option_value = re.search(re_str, line)
            # If `href` is not defined yet:
            if not href:
                re_str = 'href="../../../../{}">'.format(png_path)
                href = re.search(re_str, line)

    assert img_src is not None
    assert option_value is not None
    assert href is not None

    image_name = os.path.split(png_path)[-1]
    path_to_actual_png = full_png_path
    path_to_expected_png = f"{TEST_IMAGES_PATH}/{png_path}"

    if "CHECK_IMAGES" in os.environ:
        # Set `export CHECK_IMAGES=True` to do a pixel-by-pixel image comparison check.
        check_images = os.environ["CHECK_IMAGES"].lower() in [
            "true",
            "yes",
            "t",
            "y",
            "1",
        ]
    else:
        check_images = True

    if check_images:
        mismatched_images: List[str] = []
        _compare_images(
            mismatched_images,
            image_name,
            path_to_actual_png,
            path_to_expected_png,
        )
      assert len(mismatched_images) == 0

E AssertionError: assert 1 == 0 E + where 1 = len(['ERA-Interim-T-850-ANN-polar_S.png'])

tests/integration/test_diags.py:322: AssertionError ---------------------------------------------------------- Captured log call ----------------------------------------------------------- INFO tests.integration.test_diags:test_diags.py:116 path_to_actual_png=tests/integration/all_sets_results_test/polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png INFO tests.integration.test_diags:test_diags.py:117 path_to_expected_png=tests/integration//integration_test_images//polar/ERA-Interim/ERA-Interim-T-850-ANN-polar_S.png INFO tests.integration.test_diags:test_diags.py:118 diff has 1211 nonzero pixels. INFO tests.integration.test_diags:test_diags.py:121 total number of pixels=2103750 INFO tests.integration.test_diags:test_diags.py:123 num_nonzero_pixels/num_pixels fraction=0.0005756387403446227 _ TestAllSets.test_qbo_plot_diffs __

self = <tests.integration.test_diags.TestAllSets object at 0x7f15066294e0>

def test_qbo_plot_diffs(self):
    case_id = "qbo-test"
    case_id_lower = case_id.lower()
    set_name = "qbo"

    # Check PNG path is the same as the expected.
    png_path = "{}/{}/qbo_diags.png".format(set_name, case_id)
    full_png_path = "{}{}".format(self.results_dir, png_path)
    path_exists = os.path.exists(full_png_path)

    assert path_exists

    # Check full HTML path is the same as the expected.
    # viewer/qbo/variable/era-interim/plot.html
    html_path = "{}viewer/{}/variable/{}/plot.html".format(
        self.results_dir, set_name, case_id_lower
    )
  self._check_html_image(html_path, png_path, full_png_path)

tests/integration/test_diags.py:250:


self = <tests.integration.test_diags.TestAllSets object at 0x7f15066294e0> html_path = 'tests/integration/all_sets_results_test/viewer/qbo/variable/qbo-test/plot.html', png_path = 'qbo/qbo-test/qbo_diags.png' full_png_path = 'tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags.png'

def _check_html_image(self, html_path, png_path, full_png_path):
    # Check HTML image tags exist.
    img_src = None
    option_value = None
    href = None
    with open(html_path, "r") as html:
        for line in html:
            # If `img_src` is not defined yet:
            if not img_src:
                re_str = '<img src="../../../../{}">'.format(png_path)
                img_src = re.search(re_str, line)
            # If `option_value` is not defined yet:
            if not option_value:
                re_str = '<option value="../../../../{}">'.format(png_path)
                option_value = re.search(re_str, line)
            # If `href` is not defined yet:
            if not href:
                re_str = 'href="../../../../{}">'.format(png_path)
                href = re.search(re_str, line)

    assert img_src is not None
    assert option_value is not None
    assert href is not None

    image_name = os.path.split(png_path)[-1]
    path_to_actual_png = full_png_path
    path_to_expected_png = f"{TEST_IMAGES_PATH}/{png_path}"

    if "CHECK_IMAGES" in os.environ:
        # Set `export CHECK_IMAGES=True` to do a pixel-by-pixel image comparison check.
        check_images = os.environ["CHECK_IMAGES"].lower() in [
            "true",
            "yes",
            "t",
            "y",
            "1",
        ]
    else:
        check_images = True

    if check_images:
        mismatched_images: List[str] = []
        _compare_images(
            mismatched_images,
            image_name,
            path_to_actual_png,
            path_to_expected_png,
        )
      assert len(mismatched_images) == 0

E AssertionError: assert 1 == 0 E + where 1 = len(['qbo_diags.png'])

tests/integration/test_diags.py:322: AssertionError ---------------------------------------------------------- Captured log call ----------------------------------------------------------- INFO tests.integration.test_diags:test_diags.py:116 path_to_actual_png=tests/integration/all_sets_results_test/qbo/qbo-test/qbo_diags.png INFO tests.integration.test_diags:test_diags.py:117 path_to_expected_png=tests/integration//integration_test_images//qbo/qbo-test/qbo_diags.png INFO tests.integration.test_diags:test_diags.py:118 diff has 10335 nonzero pixels. INFO tests.integration.test_diags:test_diags.py:121 total number of pixels=1960000 INFO tests.integration.test_diags:test_diags.py:123 num_nonzero_pixels/num_pixels fraction=0.0052729591836734695 ____ TestAllSets.test_streamflow_plot_diffs ____

self = <tests.integration.test_diags.TestAllSets object at 0x7f1506629660>

def test_streamflow_plot_diffs(self):
  self._check_streamflow_plots()

tests/integration/test_diags.py:253:


tests/integration/test_diags.py:486: in _check_streamflow_plots self._check_html_image(full_html_path, png_path, full_png_path)


self = <tests.integration.test_diags.TestAllSets object at 0x7f1506629660> html_path = 'tests/integration/all_sets_results_test/viewer/streamflow/seasonality-map/river_discharge_over_land_liq_gsim-seasonality_map/plot.html' png_path = 'streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png' full_png_path = 'tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png'

def _check_html_image(self, html_path, png_path, full_png_path):
    # Check HTML image tags exist.
    img_src = None
    option_value = None
    href = None
    with open(html_path, "r") as html:
        for line in html:
            # If `img_src` is not defined yet:
            if not img_src:
                re_str = '<img src="../../../../{}">'.format(png_path)
                img_src = re.search(re_str, line)
            # If `option_value` is not defined yet:
            if not option_value:
                re_str = '<option value="../../../../{}">'.format(png_path)
                option_value = re.search(re_str, line)
            # If `href` is not defined yet:
            if not href:
                re_str = 'href="../../../../{}">'.format(png_path)
                href = re.search(re_str, line)

    assert img_src is not None
    assert option_value is not None
    assert href is not None

    image_name = os.path.split(png_path)[-1]
    path_to_actual_png = full_png_path
    path_to_expected_png = f"{TEST_IMAGES_PATH}/{png_path}"

    if "CHECK_IMAGES" in os.environ:
        # Set `export CHECK_IMAGES=True` to do a pixel-by-pixel image comparison check.
        check_images = os.environ["CHECK_IMAGES"].lower() in [
            "true",
            "yes",
            "t",
            "y",
            "1",
        ]
    else:
        check_images = True

    if check_images:
        mismatched_images: List[str] = []
        _compare_images(
            mismatched_images,
            image_name,
            path_to_actual_png,
            path_to_expected_png,
        )
      assert len(mismatched_images) == 0

E AssertionError: assert 1 == 0 E + where 1 = len(['seasonality_map.png'])

tests/integration/test_diags.py:322: AssertionError ---------------------------------------------------------- Captured log call ----------------------------------------------------------- INFO tests.integration.test_diags:test_diags.py:116 path_to_actual_png=tests/integration/all_sets_results_test/streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png INFO tests.integration.test_diags:test_diags.py:117 path_to_expected_png=tests/integration//integration_test_images//streamflow/RIVER_DISCHARGE_OVER_LAND_LIQ_GSIM/seasonality_map.png INFO tests.integration.test_diags:test_diags.py:118 diff has 3331 nonzero pixels. INFO tests.integration.test_diags:test_diags.py:121 total number of pixels=2103750 INFO tests.integration.test_diags:test_diags.py:123 num_nonzero_pixels/num_pixels fraction=0.0015833630421865717 __ TestAllSets.test_zonal_mean_2d_plot_diffs ___

self = <tests.integration.test_diags.TestAllSets object at 0x7f15066297e0>

def test_zonal_mean_2d_plot_diffs(self):
  self._check_plots_2d("zonal_mean_2d")

tests/integration/test_diags.py:256:


tests/integration/test_diags.py:375: in _check_plots_2d self._check_plots_generic( tests/integration/test_diags.py:372: in _check_plots_generic self._check_html_image(html_path, png_path, full_png_path)


self = <tests.integration.test_diags.TestAllSets object at 0x7f15066297e0> html_path = 'tests/integration/all_sets_results_test/viewer/zonal_mean_2d/era-interim/t-global-era-interim/ann.html' png_path = 'zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png' full_png_path = 'tests/integration/all_sets_results_test/zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png'

def _check_html_image(self, html_path, png_path, full_png_path):
    # Check HTML image tags exist.
    img_src = None
    option_value = None
    href = None
    with open(html_path, "r") as html:
        for line in html:
            # If `img_src` is not defined yet:
            if not img_src:
                re_str = '<img src="../../../../{}">'.format(png_path)
                img_src = re.search(re_str, line)
            # If `option_value` is not defined yet:
            if not option_value:
                re_str = '<option value="../../../../{}">'.format(png_path)
                option_value = re.search(re_str, line)
            # If `href` is not defined yet:
            if not href:
                re_str = 'href="../../../../{}">'.format(png_path)
                href = re.search(re_str, line)

    assert img_src is not None
    assert option_value is not None
    assert href is not None

    image_name = os.path.split(png_path)[-1]
    path_to_actual_png = full_png_path
    path_to_expected_png = f"{TEST_IMAGES_PATH}/{png_path}"

    if "CHECK_IMAGES" in os.environ:
        # Set `export CHECK_IMAGES=True` to do a pixel-by-pixel image comparison check.
        check_images = os.environ["CHECK_IMAGES"].lower() in [
            "true",
            "yes",
            "t",
            "y",
            "1",
        ]
    else:
        check_images = True

    if check_images:
        mismatched_images: List[str] = []
        _compare_images(
            mismatched_images,
            image_name,
            path_to_actual_png,
            path_to_expected_png,
        )
      assert len(mismatched_images) == 0

E AssertionError: assert 1 == 0 E + where 1 = len(['ERA-Interim-T-ANN-global.png'])

tests/integration/test_diags.py:322: AssertionError ---------------------------------------------------------- Captured log call ----------------------------------------------------------- INFO tests.integration.test_diags:test_diags.py:116 path_to_actual_png=tests/integration/all_sets_results_test/zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png INFO tests.integration.test_diags:test_diags.py:117 path_to_expected_png=tests/integration//integration_test_images//zonal_mean_2d/ERA-Interim/ERA-Interim-T-ANN-global.png INFO tests.integration.test_diags:test_diags.py:118 diff has 880 nonzero pixels. INFO tests.integration.test_diags:test_diags.py:121 total number of pixels=2103750 INFO tests.integration.test_diags:test_diags.py:123 num_nonzero_pixels/num_pixels fraction=0.0004183006535947712

---------- coverage: platform linux, python 3.10.12-final-0 ---------- Name Stmts Miss Cover

e3sm_diags/init.py 12 0 100% e3sm_diags/derivations/init.py 0 0 100% e3sm_diags/derivations/acme.py 366 366 0% e3sm_diags/derivations/default_regions.py 3 3 0% e3sm_diags/derivations/default_regions_xr.py 2 2 0% e3sm_diags/derivations/derivations.py 7 7 0% e3sm_diags/derivations/formulas.py 206 206 0% e3sm_diags/derivations/utils.py 176 176 0% e3sm_diags/driver/init.py 6 6 0% e3sm_diags/driver/aerosol_aeronet_driver.py 60 60 0% e3sm_diags/driver/aerosol_budget_driver.py 102 102 0% e3sm_diags/driver/annual_cycle_zonal_mean_driver.py 65 65 0% e3sm_diags/driver/area_mean_time_series_driver.py 68 68 0% e3sm_diags/driver/arm_diags_driver.py 315 315 0% e3sm_diags/driver/cosp_histogram_driver.py 59 59 0% e3sm_diags/driver/diurnal_cycle_driver.py 48 48 0% e3sm_diags/driver/enso_diags_driver.py 241 241 0% e3sm_diags/driver/lat_lon_driver.py 123 123 0% e3sm_diags/driver/lat_lon_land_driver.py 8 8 0% e3sm_diags/driver/lat_lon_river_driver.py 8 8 0% e3sm_diags/driver/meridional_mean_2d_driver.py 107 107 0% e3sm_diags/driver/mp_partition_driver.py 60 60 0% e3sm_diags/driver/polar_driver.py 95 95 0% e3sm_diags/driver/qbo_driver.py 147 147 0% e3sm_diags/driver/streamflow_driver.py 266 266 0% e3sm_diags/driver/tc_analysis_driver.py 233 233 0% e3sm_diags/driver/utils/init.py 1 1 0% e3sm_diags/driver/utils/climo.py 35 35 0% e3sm_diags/driver/utils/climo_xr.py 32 32 0% e3sm_diags/driver/utils/dataset.py 312 312 0% e3sm_diags/driver/utils/dataset_xr.py 274 274 0% e3sm_diags/driver/utils/diurnal_cycle.py 95 95 0% e3sm_diags/driver/utils/general.py 191 191 0% e3sm_diags/driver/utils/io.py 29 29 0% e3sm_diags/driver/utils/regrid.py 143 143 0% e3sm_diags/driver/zonal_mean_2d_driver.py 121 121 0% e3sm_diags/driver/zonal_mean_2d_stratosphere_driver.py 8 8 0% e3sm_diags/driver/zonal_mean_xy_driver.py 102 102 0% e3sm_diags/e3sm_diags_driver.py 178 178 0% e3sm_diags/e3sm_diags_vars.py 59 59 0% e3sm_diags/logger.py 23 4 83% e3sm_diags/metrics/init.py 32 32 0% e3sm_diags/metrics/metrics.py 42 42 0% e3sm_diags/parameter/init.py 16 16 0% e3sm_diags/parameter/annual_cycle_zonal_mean_parameter.py 5 5 0% e3sm_diags/parameter/area_mean_time_series_parameter.py 21 21 0% e3sm_diags/parameter/arm_diags_parameter.py 15 15 0% e3sm_diags/parameter/core_parameter.py 110 110 0% e3sm_diags/parameter/diurnal_cycle_parameter.py 7 7 0% e3sm_diags/parameter/enso_diags_parameter.py 20 20 0% e3sm_diags/parameter/lat_lon_land_parameter.py 4 4 0% e3sm_diags/parameter/lat_lon_river_parameter.py 4 4 0% e3sm_diags/parameter/meridional_mean_2d_parameter.py 24 24 0% e3sm_diags/parameter/mp_partition_parameter.py 11 11 0% e3sm_diags/parameter/qbo_parameter.py 11 11 0% e3sm_diags/parameter/streamflow_parameter.py 16 16 0% e3sm_diags/parameter/tc_analysis_parameter.py 12 12 0% e3sm_diags/parameter/time_series_parameter.py 31 31 0% e3sm_diags/parameter/zonal_mean_2d_parameter.py 24 24 0% e3sm_diags/parameter/zonal_mean_2d_stratosphere_parameter.py 7 7 0% e3sm_diags/parser/init.py 13 13 0% e3sm_diags/parser/area_mean_time_series_parser.py 12 12 0% e3sm_diags/parser/arm_diags_parser.py 8 8 0% e3sm_diags/parser/core_parser.py 343 343 0% e3sm_diags/parser/diurnal_cycle_parser.py 13 13 0% e3sm_diags/parser/enso_diags_parser.py 12 12 0% e3sm_diags/parser/meridional_mean_2d_parser.py 9 9 0% e3sm_diags/parser/mp_partition_parser.py 11 11 0% e3sm_diags/parser/qbo_parser.py 11 11 0% e3sm_diags/parser/streamflow_parser.py 14 14 0% e3sm_diags/parser/tc_analysis_parser.py 5 5 0% e3sm_diags/parser/zonal_mean_2d_parser.py 10 10 0% e3sm_diags/parser/zonal_mean_2d_stratosphere_parser.py 10 10 0% e3sm_diags/plot/init.py 53 53 0% e3sm_diags/plot/cartopy/init.py 0 0 100% e3sm_diags/plot/cartopy/aerosol_aeronet_plot.py 68 68 0% e3sm_diags/plot/cartopy/annual_cycle_zonal_mean_plot.py 97 97 0% e3sm_diags/plot/cartopy/area_mean_time_series_plot.py 64 64 0% e3sm_diags/plot/cartopy/arm_diags_plot.py 353 353 0% e3sm_diags/plot/cartopy/cosp_histogram_plot.py 114 114 0% e3sm_diags/plot/cartopy/deprecated_lat_lon_plot.py 186 186 0% e3sm_diags/plot/cartopy/diurnal_cycle_plot.py 175 175 0% e3sm_diags/plot/cartopy/enso_diags_plot.py 237 237 0% e3sm_diags/plot/cartopy/meridional_mean_2d_plot.py 121 121 0% e3sm_diags/plot/cartopy/mp_partition_plot.py 34 34 0% e3sm_diags/plot/cartopy/polar_plot.py 131 131 0% e3sm_diags/plot/cartopy/qbo_plot.py 97 97 0% e3sm_diags/plot/cartopy/streamflow_plot.py 385 385 0% e3sm_diags/plot/cartopy/taylor_diagram.py 59 59 0% e3sm_diags/plot/cartopy/tc_analysis_plot.py 169 169 0% e3sm_diags/plot/cartopy/zonal_mean_2d_plot.py 137 137 0% e3sm_diags/plot/cartopy/zonal_mean_2d_stratosphere_plot.py 4 4 0% e3sm_diags/plot/cartopy/zonal_mean_xy_plot.py 69 69 0% e3sm_diags/plot/lat_lon_land_plot.py 4 4 0% e3sm_diags/plot/lat_lon_plot.py 33 33 0% e3sm_diags/plot/lat_lon_river_plot.py 4 4 0% e3sm_diags/plot/utils.py 169 169 0% e3sm_diags/run.py 111 111 0% e3sm_diags/utils.py 8 8 0% e3sm_diags/viewer/init.py 0 0 100% e3sm_diags/viewer/aerosol_budget_viewer.py 36 36 0% e3sm_diags/viewer/annual_cycle_zonal_mean_viewer.py 22 22 0% e3sm_diags/viewer/area_mean_time_series_viewer.py 22 22 0% e3sm_diags/viewer/arm_diags_viewer.py 86 86 0% e3sm_diags/viewer/default_viewer.py 145 145 0% e3sm_diags/viewer/enso_diags_viewer.py 40 40 0% e3sm_diags/viewer/lat_lon_viewer.py 318 318 0% e3sm_diags/viewer/main.py 54 54 0% e3sm_diags/viewer/mean_2d_viewer.py 41 41 0% e3sm_diags/viewer/mp_partition_viewer.py 27 27 0% e3sm_diags/viewer/qbo_viewer.py 36 36 0% e3sm_diags/viewer/streamflow_viewer.py 45 45 0% e3sm_diags/viewer/tc_analysis_viewer.py 47 47 0% e3sm_diags/viewer/utils.py 75 75 0%

TOTAL 9145 9114 1% Coverage HTML written to dir tests_coverage_reports/htmlcov Coverage XML written to file tests_coverage_reports/coverage.xml

======================================================= short test summary info ======================================================== FAILED tests/integration/test_diags.py::TestAllSets::test_lat_lon_plot_diffs - AssertionError: assert 1 == 0 FAILED tests/integration/test_diags.py::TestAllSets::test_lat_lon_regional_plot_diffs - AssertionError: assert 1 == 0 FAILED tests/integration/test_diags.py::TestAllSets::test_polar_plot_diffs - AssertionError: assert 1 == 0 FAILED tests/integration/test_diags.py::TestAllSets::test_qbo_plot_diffs - AssertionError: assert 1 == 0 FAILED tests/integration/test_diags.py::TestAllSets::test_streamflow_plot_diffs - AssertionError: assert 1 == 0 FAILED tests/integration/test_diags.py::TestAllSets::test_zonal_mean_2d_plot_diffs - AssertionError: assert 1 == 0 =============================================== 6 failed, 12 passed in 226.74s (0:03:46) ===============================================


- [ ] Investigate specific variable regressions with `ex1.py`
  - [ ] `NET_FLUX_SRF`
  - [ ] `RESTOM`
- [ ] Write unit tests to cover core components
  - [ ] `lat_lon_driver.py`
  - [ ] `lat_lon_plot.py`
  - [ ]  `plot/utils.py`