diff --git a/doc/jupyter/Demo/Demo_1a_compute_climatologies.ipynb b/doc/jupyter/Demo/Demo_1a_compute_climatologies.ipynb index e5c1f7526..9f52864d9 100644 --- a/doc/jupyter/Demo/Demo_1a_compute_climatologies.ipynb +++ b/doc/jupyter/Demo/Demo_1a_compute_climatologies.ipynb @@ -82,10 +82,10 @@ "end = '2018-12'\n", "\n", "# INPUT DATASET - CAN BE MODEL OR OBSERVATIONS\n", - "infile = 'demo_data/obs4MIPs_PCMDI_monthly/NASA-LaRC/CERES-EBAF-4-1/mon/rlut/gn/v20210727/rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc'\n", + "infile = 'demo_data_tmp/obs4MIPs_PCMDI_monthly/NASA-LaRC/CERES-EBAF-4-1/mon/rlut/gn/v20210727/rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc'\n", "\n", "# DIRECTORY WHERE TO PUT RESULTS\n", - "outfile = 'demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc'\n", + "outfile = 'demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc'\n", "\n" ] } @@ -115,25 +115,26 @@ "text": [ "start and end are 2003-01 2018-12\n", "variable list: ['rlut']\n", - "infilename is rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "outdir is None\n", + "ver: v20240923\n", + "var: rlut\n", + "infile: demo_data_tmp/obs4MIPs_PCMDI_monthly/NASA-LaRC/CERES-EBAF-4-1/mon/rlut/gn/v20210727/rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", + "outfile: demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", + "outfilename: None\n", + "outpath: None\n", + "ver: v20240923\n", + "infilename: rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", + "type(d): \n", + "atts: {'Conventions': 'CF-1.7 ODS-2.1', 'activity_id': 'obs4MIPs', 'contact': 'PCMDI (pcmdi-metrics@llnl.gov)', 'creation_date': '2021-07-27T18:20:26Z', 'curation_provenance': 'work-in-progress', 'data_specs_version': '2.1.0', 'external_variables': 'areacella', 'frequency': 'mon', 'further_info_url': 'https://furtherinfo.es-doc.org/CMIP6.NASA-LaRC.CERES-EBAF-4-1.experiment_idsub_experiment_idPCMDI', 'grid': '1x1 degree latitude x longitude', 'grid_label': 'gn', 'history': '2021-07-27T18:20:26Z; CMOR rewrote data to be consistent with obs4MIPs, and CF-1.7 ODS-2.1 standards', 'institution': 'NASA-LaRC (Langley Research Center) Hampton, Va', 'institution_id': 'NASA-LaRC', 'mip_era': 'CMIP6', 'nominal_resolution': '100 km', 'product': 'observations', 'realm': 'atmos', 'release_year': '2019', 'source': 'CERES EBAF (Energy Balanced and Filled) TOA Fluxes. Monthly Averages', 'source_description': 'CERES EBAF (Energy Balanced and Filled) TOA Fluxes. Monthly Averages', 'source_id': 'CERES-EBAF-4-1', 'source_label': 'CERES-EBAF-4-1', 'source_name': 'CERES-EBAF4-1', 'source_type': 'satellite_blended', 'source_version_number': '4.1', 'table_id': 'obs4MIPs_Amon', 'table_info': 'Creation Date:(18 November 2020) MD5:d8a4a72de798e86a999881bdaeb1809e', 'title': 'CERES prepared for obs4MIPs (ODS-v2.1.0)', 'tracking_id': 'hdl:21.14102/d1afa116-4801-4801-b302-43c49b5bb7dc', 'variable_id': 'rlut', 'variant_info': 'Best Estimate', 'variant_label': 'PCMDI', 'license': 'Data in this file processed for obs4MIPs by PCMDI and is for research purposes only.', 'cmor_version': '3.6.1'}\n", + "outdir: demo_output_tmp/climo\n", "start_yr_str is 2003\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20220420.nc\n", - "(12, 180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20220420.nc\n" + "start_mo_str is 01\n", + "end_yr_str is 2018\n", + "end_mo_str is 12\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20240923.nc\n" ] } ], @@ -172,25 +173,40 @@ "text": [ "start and end are 2003-01 2018-12\n", "variable list: ['rlut']\n", - "infilename is rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "outdir is None\n", + "ver: v20240923\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/lee1043/mambaforge/envs/pmp_devel_20240425/lib/python3.10/site-packages/pcmdi_metrics/io/string_constructor.py:43: UserWarning: Keyword 'variable' not provided for filling the template.\n", + " warnings.warn(f\"Keyword '{k}' not provided for filling the template.\")\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "var: rlut\n", + "infile: demo_data_tmp/obs4MIPs_PCMDI_monthly/NASA-LaRC/CERES-EBAF-4-1/mon/rlut/gn/v20210727/rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", + "outfile: demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", + "outfilename: None\n", + "outpath: None\n", + "ver: v20240923\n", + "infilename: rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", + "type(d): \n", + "atts: {'Conventions': 'CF-1.7 ODS-2.1', 'activity_id': 'obs4MIPs', 'contact': 'PCMDI (pcmdi-metrics@llnl.gov)', 'creation_date': '2021-07-27T18:20:26Z', 'curation_provenance': 'work-in-progress', 'data_specs_version': '2.1.0', 'external_variables': 'areacella', 'frequency': 'mon', 'further_info_url': 'https://furtherinfo.es-doc.org/CMIP6.NASA-LaRC.CERES-EBAF-4-1.experiment_idsub_experiment_idPCMDI', 'grid': '1x1 degree latitude x longitude', 'grid_label': 'gn', 'history': '2021-07-27T18:20:26Z; CMOR rewrote data to be consistent with obs4MIPs, and CF-1.7 ODS-2.1 standards', 'institution': 'NASA-LaRC (Langley Research Center) Hampton, Va', 'institution_id': 'NASA-LaRC', 'mip_era': 'CMIP6', 'nominal_resolution': '100 km', 'product': 'observations', 'realm': 'atmos', 'release_year': '2019', 'source': 'CERES EBAF (Energy Balanced and Filled) TOA Fluxes. Monthly Averages', 'source_description': 'CERES EBAF (Energy Balanced and Filled) TOA Fluxes. Monthly Averages', 'source_id': 'CERES-EBAF-4-1', 'source_label': 'CERES-EBAF-4-1', 'source_name': 'CERES-EBAF4-1', 'source_type': 'satellite_blended', 'source_version_number': '4.1', 'table_id': 'obs4MIPs_Amon', 'table_info': 'Creation Date:(18 November 2020) MD5:d8a4a72de798e86a999881bdaeb1809e', 'title': 'CERES prepared for obs4MIPs (ODS-v2.1.0)', 'tracking_id': 'hdl:21.14102/d1afa116-4801-4801-b302-43c49b5bb7dc', 'variable_id': 'rlut', 'variant_info': 'Best Estimate', 'variant_label': 'PCMDI', 'license': 'Data in this file processed for obs4MIPs by PCMDI and is for research purposes only.', 'cmor_version': '3.6.1'}\n", + "outdir: demo_output_tmp/climo\n", "start_yr_str is 2003\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20220420.nc\n", - "(12, 180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20220420.nc\n" + "start_mo_str is 01\n", + "end_yr_str is 2018\n", + "end_mo_str is 12\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20240923.nc\n" ] } ], @@ -231,25 +247,26 @@ "text": [ "start and end are 2003-01 2018-12\n", "variable list: ['rlut']\n", - "infilename is rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "outdir is demo_output/climo/\n", + "ver: v20240923\n", + "var: rlut\n", + "infile: demo_data_tmp/obs4MIPs_PCMDI_monthly/NASA-LaRC/CERES-EBAF-4-1/mon/rlut/gn/v20210727/rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", + "outfile: demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", + "outfilename: rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", + "outpath: demo_output_tmp/climo/\n", + "ver: v20240923\n", + "infilename: rlut_mon_CERES-EBAF-4-1_PCMDI_gn_200301-201812.nc\n", + "type(d): \n", + "atts: {'Conventions': 'CF-1.7 ODS-2.1', 'activity_id': 'obs4MIPs', 'contact': 'PCMDI (pcmdi-metrics@llnl.gov)', 'creation_date': '2021-07-27T18:20:26Z', 'curation_provenance': 'work-in-progress', 'data_specs_version': '2.1.0', 'external_variables': 'areacella', 'frequency': 'mon', 'further_info_url': 'https://furtherinfo.es-doc.org/CMIP6.NASA-LaRC.CERES-EBAF-4-1.experiment_idsub_experiment_idPCMDI', 'grid': '1x1 degree latitude x longitude', 'grid_label': 'gn', 'history': '2021-07-27T18:20:26Z; CMOR rewrote data to be consistent with obs4MIPs, and CF-1.7 ODS-2.1 standards', 'institution': 'NASA-LaRC (Langley Research Center) Hampton, Va', 'institution_id': 'NASA-LaRC', 'mip_era': 'CMIP6', 'nominal_resolution': '100 km', 'product': 'observations', 'realm': 'atmos', 'release_year': '2019', 'source': 'CERES EBAF (Energy Balanced and Filled) TOA Fluxes. Monthly Averages', 'source_description': 'CERES EBAF (Energy Balanced and Filled) TOA Fluxes. Monthly Averages', 'source_id': 'CERES-EBAF-4-1', 'source_label': 'CERES-EBAF-4-1', 'source_name': 'CERES-EBAF4-1', 'source_type': 'satellite_blended', 'source_version_number': '4.1', 'table_id': 'obs4MIPs_Amon', 'table_info': 'Creation Date:(18 November 2020) MD5:d8a4a72de798e86a999881bdaeb1809e', 'title': 'CERES prepared for obs4MIPs (ODS-v2.1.0)', 'tracking_id': 'hdl:21.14102/d1afa116-4801-4801-b302-43c49b5bb7dc', 'variable_id': 'rlut', 'variant_info': 'Best Estimate', 'variant_label': 'PCMDI', 'license': 'Data in this file processed for obs4MIPs by PCMDI and is for research purposes only.', 'cmor_version': '3.6.1'}\n", + "outdir: demo_output_tmp/climo/\n", "start_yr_str is 2003\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20220420.nc\n", - "(12, 180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20220420.nc\n", - "outfd is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.nc\n", - "out is demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20220420.nc\n", - "(180, 360) (12, 180, 360) demo_output/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20220420.nc\n" + "start_mo_str is 01\n", + "end_yr_str is 2018\n", + "end_mo_str is 12\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.AC.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.DJF.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.MAM.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.JJA.v20240923.nc\n", + "output file is demo_output_tmp/climo/rlut_mon_CERES-EBAF-4-1_BE_gn.200301-201812.SON.v20240923.nc\n" ] } ], @@ -278,7 +295,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.10.10" } }, "nbformat": 4, diff --git a/doc/jupyter/Demo/Demo_1b_mean_climate.ipynb b/doc/jupyter/Demo/Demo_1b_mean_climate.ipynb index eb515380c..3661d9bd8 100644 --- a/doc/jupyter/Demo/Demo_1b_mean_climate.ipynb +++ b/doc/jupyter/Demo/Demo_1b_mean_climate.ipynb @@ -94,14 +94,14 @@ "regions = {\"rlut\": [\"Global\"]}\n", "\n", "# ROOT PATH FOR MODELS CLIMATOLOGIES\n", - "test_data_path = 'demo_data/CMIP5_demo_clims/'\n", + "test_data_path = 'demo_data_tmp/CMIP5_demo_clims/'\n", "# ROOT PATH FOR OBSERVATIONS\n", "# Note that atm/mo/%(variable)/ac will be added to this\n", - "reference_data_path = 'demo_data/obs4MIPs_PCMDI_clims'\n", + "reference_data_path = 'demo_data_tmp/obs4MIPs_PCMDI_clims'\n", "\n", "# DIRECTORY WHERE TO PUT RESULTS\n", "metrics_output_path = os.path.join(\n", - " 'demo_output',\n", + " 'demo_output_tmp',\n", " \"%(case_id)\")\n", "\n" ] @@ -131,68 +131,38 @@ "tags": [] }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-11-09 16:38:41,260 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:38:41,260 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:39::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", - "2023-11-09 16:39:14,932 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", - "2023-11-09 16:39:14,932 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", - "2023-11-09 16:39:14,958 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:39:14,958 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:39::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", - "2023-11-09 16:39:50,007 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", - "2023-11-09 16:39:50,007 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", - "2023-11-09 16:39:55,027 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:39:55,027 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:40::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_basicTest.json\n", - "2023-11-09 16:40:29,591 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_basicTest.json\n", - "2023-11-09 16:40:29,591 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_basicTest.json\n", - "2023-11-09 16:40:29,627 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:40:29,627 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:41::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_basicTest.json\n", - "2023-11-09 16:41:05,136 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_basicTest.json\n", - "2023-11-09 16:41:05,136 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_basicTest.json\n", - "INFO::2023-11-09 16:41::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut_2.5x2.5_regrid2_metrics_basicTest.json\n", - "2023-11-09 16:41:05,142 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut_2.5x2.5_regrid2_metrics_basicTest.json\n", - "2023-11-09 16:41:05,142 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/basicTest/rlut_2.5x2.5_regrid2_metrics_basicTest.json\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "case_id: basicTest \n", - " test_data_set: ['ACCESS1-0', 'CanCM4'] \n", - " realization: \n", - " vars: ['rlut'] \n", - " varname_in_test_data: None \n", - " reference_data_set: ['all'] \n", - " target_grid: 2.5x2.5 \n", - " regrid_tool: regrid2 \n", - " regrid_tool_ocn: esmf \n", - " save_test_clims: False \n", - " test_clims_interpolated_output: None \n", - " filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc \n", - " sftlf_filename_template: sftlf_%(model_version).nc \n", - " generate_sftlf: True \n", - " regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (310.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}} \n", - " regions: {'rlut': ['Global']} \n", - " test_data_path: demo_data/CMIP5_demo_clims/ \n", - " reference_data_path: demo_data/obs4MIPs_PCMDI_clims \n", - " metrics_output_path: demo_output/basicTest \n", - " diagnostics_output_path: demo_output/basicTest \n", - " debug: False \n", - "\n", "--- prepare mean climate metrics calculation ---\n", + "case_id: basicTest\n", + "test_data_set: ['ACCESS1-0', 'CanCM4']\n", + "realization: \n", + "vars: ['rlut']\n", + "varname_in_test_data: None\n", + "reference_data_set: ['all']\n", + "target_grid: 2.5x2.5\n", + "regrid_tool: regrid2\n", + "regrid_tool_ocn: esmf\n", + "save_test_clims: False\n", + "test_clims_interpolated_output: None\n", + "filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc\n", + "sftlf_filename_template: sftlf_%(model_version).nc\n", + "generate_sftlf: True\n", + "regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA1': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA2': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'NPO': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'NPGO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AMO': {'domain': {'latitude': (0.0, 70), 'longitude': (-80, 0)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (-50.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}}\n", + "regions: {'rlut': ['Global']}\n", + "test_data_path: demo_data_tmp/CMIP5_demo_clims/\n", + "reference_data_path: demo_data_tmp/obs4MIPs_PCMDI_clims\n", + "metrics_output_path: demo_output_tmp/basicTest\n", + "diagnostics_output_path: demo_output_tmp/basicTest\n", + "debug: False\n", "--- start mean climate metrics calculation ---\n", "varname: rlut\n", "level: None\n", "reference_data_set (all): ['alternate1', 'default']\n", "ref: alternate1\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -200,68 +170,128 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:30:18,896 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:30:18,896 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.46854119190699\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.438416968613225\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1384451737888808\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.770012023689812\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.044682445768467 7.9637213813349925\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9693780836555635\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.443886637144088\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.47036113512534\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.4380172334105\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1384446642039474\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.770267763900403\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.04383979899538 7.962870239960437\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9693832697582581\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:30::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", + "2024-09-23 17:30:56,106 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", + "2024-09-23 17:30:56,106 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:30:56,389 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:30:56,389 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.46854119190699\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 35.67665337064905\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1635463134324031\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 6.331106438822097\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.610248337339145 9.539550989529207\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9518659641205703\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 12.581863266319667\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.47036113512534\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 35.676970161763705\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1635460184347601\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 6.33676419779921\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.611035481689909 9.540344002879925\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9518562007048922\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:31::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", + "2024-09-23 17:31:34,467 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n", + "2024-09-23 17:31:34,467 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_basicTest.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "ref: default\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -269,66 +299,129 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:31:35,863 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:31:35,863 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.41842190556023\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.438416968613225\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1365878854524063\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.763493973471603\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.033820554038556 7.953014565127818\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9694728084795681\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.441474434051779\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.42022623440726\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.4380172334105\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1365873707975822\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.76358422001215\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.032983607315776 7.9521691873316795\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9694779269200444\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:32::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_basicTest.json\n", + "2024-09-23 17:32:12,991 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_basicTest.json\n", + "2024-09-23 17:32:12,991 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_basicTest.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:32:13,222 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:32:13,222 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.41842190556023\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 35.67665337064905\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1654036017688774\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 6.333692053819536\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.608637289548378 9.537701243333409\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9518850115349531\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 12.592931277171877\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.42022623440726\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 35.676970161763705\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.165403311841126\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 6.339387410014902\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.609441449405928 9.538511418995654\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9518750636449926\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:32::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_basicTest.json\n", + "2024-09-23 17:32:46,289 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_basicTest.json\n", + "2024-09-23 17:32:46,289 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_basicTest.json\n", + "INFO::2024-09-23 17:33::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut_2.5x2.5_regrid2_metrics_basicTest.json\n", + "2024-09-23 17:33:02,224 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut_2.5x2.5_regrid2_metrics_basicTest.json\n", + "2024-09-23 17:33:02,224 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/basicTest/rlut_2.5x2.5_regrid2_metrics_basicTest.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "pmp mean clim driver completed\n" ] } @@ -387,44 +480,44 @@ " },\n", " \"cor_xy\": {\n", " \"ann\": \"0.969\",\n", - " \"djf\": \"0.96\",\n", - " \"mam\": \"0.95\",\n", - " \"jja\": \"0.96\",\n", - " \"son\": \"0.96\",\n", + " \"djf\": \"0.962\",\n", + " \"mam\": \"0.951\",\n", + " \"jja\": \"0.961\",\n", + " \"son\": \"0.963\",\n", " \"CalendarMonths\": [\n", - " \"0.96\",\n", - " \"0.96\",\n", - " \"0.95\",\n", - " \"0.95\",\n", - " \"0.93\",\n", - " \"0.94\",\n", - " \"0.95\",\n", - " \"0.96\",\n", - " \"0.96\",\n", - " \"0.95\",\n", - " \"0.95\",\n", - " \"0.95\"\n", + " \"0.956\",\n", + " \"0.959\",\n", + " \"0.950\",\n", + " \"0.946\",\n", + " \"0.931\",\n", + " \"0.945\",\n", + " \"0.953\",\n", + " \"0.957\",\n", + " \"0.959\",\n", + " \"0.951\",\n", + " \"0.946\",\n", + " \"0.945\"\n", " ]\n", " },\n", " \"mae_xy\": {\n", " \"ann\": \"5.770\",\n", - " \"djf\": \"7.157\",\n", - " \"mam\": \"7.247\",\n", - " \"jja\": \"7.517\",\n", - " \"son\": \"6.448\",\n", + " \"djf\": \"7.156\",\n", + " \"mam\": \"7.245\",\n", + " \"jja\": \"7.515\",\n", + " \"son\": \"6.443\",\n", " \"CalendarMonths\": [\n", + " \"7.772\",\n", + " \"7.634\",\n", + " \"8.009\",\n", " \"7.774\",\n", - " \"7.641\",\n", - " \"8.017\",\n", - " \"7.776\",\n", " \"7.820\",\n", - " \"7.989\",\n", - " \"8.508\",\n", - " \"8.006\",\n", - " \"7.362\",\n", - " \"7.296\",\n", - " \"7.280\",\n", - " \"7.719\"\n", + " \"7.995\",\n", + " \"8.502\",\n", + " \"8.003\",\n", + " \"7.360\",\n", + " \"7.288\",\n", + " \"7.277\",\n", + " \"7.714\"\n", " ]\n", " },\n", " \"mean-obs_xy\": {\n", @@ -470,102 +563,102 @@ " ]\n", " },\n", " \"rms_devzm\": {\n", - " \"ann\": \"5.808\"\n", + " \"ann\": \"5.807\"\n", " },\n", " \"rms_xy\": {\n", - " \"ann\": \"8.045\",\n", - " \"djf\": \"10.232\",\n", + " \"ann\": \"8.044\",\n", + " \"djf\": \"10.231\",\n", " \"mam\": \"10.775\",\n", - " \"jja\": \"10.443\",\n", - " \"son\": \"9.260\",\n", + " \"jja\": \"10.441\",\n", + " \"son\": \"9.257\",\n", " \"CalendarMonths\": [\n", " \"11.121\",\n", " \"10.901\",\n", - " \"11.602\",\n", - " \"11.489\",\n", + " \"11.603\",\n", + " \"11.490\",\n", " \"12.612\",\n", - " \"11.981\",\n", - " \"11.852\",\n", - " \"11.344\",\n", - " \"10.657\",\n", - " \"10.753\",\n", - " \"11.132\",\n", - " \"11.892\"\n", + " \"11.982\",\n", + " \"11.850\",\n", + " \"11.340\",\n", + " \"10.656\",\n", + " \"10.751\",\n", + " \"11.130\",\n", + " \"11.890\"\n", " ]\n", " },\n", " \"rms_xyt\": {\n", - " \"ann\": \"nan\"\n", + " \"ann\": \"11.444\"\n", " },\n", " \"rms_y\": {\n", " \"ann\": \"5.566\"\n", " },\n", " \"rmsc_xy\": {\n", - " \"ann\": \"7.964\",\n", - " \"djf\": \"10.094\",\n", - " \"mam\": \"10.684\",\n", - " \"jja\": \"10.407\",\n", - " \"son\": \"9.238\",\n", + " \"ann\": \"7.963\",\n", + " \"djf\": \"10.093\",\n", + " \"mam\": \"10.685\",\n", + " \"jja\": \"10.405\",\n", + " \"son\": \"9.235\",\n", " \"CalendarMonths\": [\n", " \"10.989\",\n", " \"10.834\",\n", - " \"11.539\",\n", + " \"11.541\",\n", " \"11.409\",\n", " \"12.509\",\n", " \"11.912\",\n", - " \"11.823\",\n", - " \"11.334\",\n", - " \"10.655\",\n", - " \"10.745\",\n", - " \"11.056\",\n", - " \"11.701\"\n", + " \"11.822\",\n", + " \"11.331\",\n", + " \"10.654\",\n", + " \"10.744\",\n", + " \"11.053\",\n", + " \"11.699\"\n", " ]\n", " },\n", " \"std-obs_xy\": {\n", - " \"ann\": \"29.647\",\n", - " \"djf\": \"32.686\",\n", - " \"mam\": \"30.818\",\n", - " \"jja\": \"35.375\",\n", - " \"son\": \"31.289\",\n", + " \"ann\": \"29.649\",\n", + " \"djf\": \"32.688\",\n", + " \"mam\": \"30.820\",\n", + " \"jja\": \"35.377\",\n", + " \"son\": \"31.291\",\n", " \"CalendarMonths\": [\n", - " \"33.135\",\n", - " \"33.734\",\n", - " \"33.073\",\n", - " \"31.262\",\n", - " \"31.721\",\n", - " \"34.451\",\n", - " \"36.365\",\n", - " \"36.271\",\n", - " \"34.820\",\n", - " \"32.053\",\n", - " \"30.983\",\n", - " \"31.985\"\n", + " \"33.137\",\n", + " \"33.736\",\n", + " \"33.075\",\n", + " \"31.264\",\n", + " \"31.723\",\n", + " \"34.453\",\n", + " \"36.366\",\n", + " \"36.272\",\n", + " \"34.822\",\n", + " \"32.055\",\n", + " \"30.985\",\n", + " \"31.987\"\n", " ]\n", " },\n", " \"std-obs_xy_devzm\": {\n", - " \"ann\": \"12.983\"\n", + " \"ann\": \"12.987\"\n", " },\n", " \"std-obs_xyt\": {\n", - " \"ann\": \"33.469\"\n", + " \"ann\": \"33.470\"\n", " },\n", " \"std_xy\": {\n", " \"ann\": \"31.966\",\n", - " \"djf\": \"36.191\",\n", + " \"djf\": \"36.189\",\n", " \"mam\": \"34.089\",\n", - " \"jja\": \"37.564\",\n", + " \"jja\": \"37.563\",\n", " \"son\": \"33.813\",\n", " \"CalendarMonths\": [\n", - " \"36.778\",\n", - " \"37.344\",\n", + " \"36.777\",\n", + " \"37.343\",\n", " \"36.641\",\n", - " \"34.890\",\n", + " \"34.891\",\n", " \"34.366\",\n", - " \"36.411\",\n", - " \"38.933\",\n", - " \"39.053\",\n", + " \"36.410\",\n", + " \"38.932\",\n", + " \"39.052\",\n", " \"37.396\",\n", " \"34.686\",\n", " \"33.932\",\n", - " \"35.562\"\n", + " \"35.561\"\n", " ]\n", " },\n", " \"std_xy_devzm\": {\n", @@ -606,44 +699,44 @@ " },\n", " \"cor_xy\": {\n", " \"ann\": \"0.969\",\n", - " \"djf\": \"0.96\",\n", - " \"mam\": \"0.95\",\n", - " \"jja\": \"0.96\",\n", - " \"son\": \"0.96\",\n", + " \"djf\": \"0.962\",\n", + " \"mam\": \"0.950\",\n", + " \"jja\": \"0.961\",\n", + " \"son\": \"0.963\",\n", " \"CalendarMonths\": [\n", - " \"0.96\",\n", - " \"0.96\",\n", - " \"0.95\",\n", - " \"0.95\",\n", - " \"0.93\",\n", - " \"0.94\",\n", - " \"0.95\",\n", - " \"0.96\",\n", - " \"0.96\",\n", - " \"0.95\",\n", - " \"0.95\",\n", - " \"0.95\"\n", + " \"0.956\",\n", + " \"0.959\",\n", + " \"0.950\",\n", + " \"0.945\",\n", + " \"0.930\",\n", + " \"0.944\",\n", + " \"0.952\",\n", + " \"0.957\",\n", + " \"0.960\",\n", + " \"0.952\",\n", + " \"0.947\",\n", + " \"0.947\"\n", " ]\n", " },\n", " \"mae_xy\": {\n", - " \"ann\": \"5.763\",\n", - " \"djf\": \"7.164\",\n", + " \"ann\": \"5.764\",\n", + " \"djf\": \"7.162\",\n", " \"mam\": \"7.307\",\n", - " \"jja\": \"7.560\",\n", - " \"son\": \"6.379\",\n", + " \"jja\": \"7.558\",\n", + " \"son\": \"6.375\",\n", " \"CalendarMonths\": [\n", - " \"7.812\",\n", - " \"7.649\",\n", - " \"8.087\",\n", - " \"7.828\",\n", - " \"7.843\",\n", - " \"8.028\",\n", - " \"8.551\",\n", - " \"8.058\",\n", + " \"7.811\",\n", + " \"7.642\",\n", + " \"8.079\",\n", + " \"7.827\",\n", + " \"7.844\",\n", + " \"8.034\",\n", + " \"8.546\",\n", + " \"8.056\",\n", " \"7.319\",\n", - " \"7.211\",\n", - " \"7.159\",\n", - " \"7.554\"\n", + " \"7.206\",\n", + " \"7.157\",\n", + " \"7.549\"\n", " ]\n", " },\n", " \"mean-obs_xy\": {\n", @@ -689,102 +782,102 @@ " ]\n", " },\n", " \"rms_devzm\": {\n", - " \"ann\": \"5.808\"\n", + " \"ann\": \"5.807\"\n", " },\n", " \"rms_xy\": {\n", - " \"ann\": \"8.034\",\n", - " \"djf\": \"10.240\",\n", + " \"ann\": \"8.033\",\n", + " \"djf\": \"10.239\",\n", " \"mam\": \"10.872\",\n", - " \"jja\": \"10.488\",\n", - " \"son\": \"9.202\",\n", + " \"jja\": \"10.486\",\n", + " \"son\": \"9.200\",\n", " \"CalendarMonths\": [\n", " \"11.139\",\n", - " \"10.909\",\n", - " \"11.669\",\n", - " \"11.580\",\n", + " \"10.910\",\n", + " \"11.670\",\n", + " \"11.581\",\n", " \"12.718\",\n", " \"12.062\",\n", - " \"11.913\",\n", - " \"11.353\",\n", - " \"10.565\",\n", - " \"10.660\",\n", - " \"11.013\",\n", - " \"11.727\"\n", + " \"11.912\",\n", + " \"11.349\",\n", + " \"10.564\",\n", + " \"10.658\",\n", + " \"11.011\",\n", + " \"11.725\"\n", " ]\n", " },\n", " \"rms_xyt\": {\n", - " \"ann\": \"nan\"\n", + " \"ann\": \"11.441\"\n", " },\n", " \"rms_y\": {\n", " \"ann\": \"5.551\"\n", " },\n", " \"rmsc_xy\": {\n", - " \"ann\": \"7.953\",\n", - " \"djf\": \"10.107\",\n", + " \"ann\": \"7.952\",\n", + " \"djf\": \"10.106\",\n", " \"mam\": \"10.791\",\n", - " \"jja\": \"10.452\",\n", - " \"son\": \"9.175\",\n", + " \"jja\": \"10.450\",\n", + " \"son\": \"9.172\",\n", " \"CalendarMonths\": [\n", " \"11.010\",\n", - " \"10.842\",\n", - " \"11.610\",\n", - " \"11.506\",\n", - " \"12.630\",\n", + " \"10.843\",\n", + " \"11.612\",\n", + " \"11.507\",\n", + " \"12.629\",\n", " \"11.998\",\n", - " \"11.885\",\n", - " \"11.340\",\n", - " \"10.562\",\n", - " \"10.647\",\n", - " \"10.930\",\n", - " \"11.546\"\n", + " \"11.884\",\n", + " \"11.336\",\n", + " \"10.561\",\n", + " \"10.645\",\n", + " \"10.928\",\n", + " \"11.545\"\n", " ]\n", " },\n", " \"std-obs_xy\": {\n", - " \"ann\": \"29.644\",\n", - " \"djf\": \"32.736\",\n", - " \"mam\": \"30.775\",\n", - " \"jja\": \"35.361\",\n", - " \"son\": \"31.194\",\n", + " \"ann\": \"29.645\",\n", + " \"djf\": \"32.738\",\n", + " \"mam\": \"30.777\",\n", + " \"jja\": \"35.363\",\n", + " \"son\": \"31.196\",\n", " \"CalendarMonths\": [\n", - " \"33.142\",\n", - " \"33.727\",\n", - " \"32.912\",\n", - " \"31.203\",\n", - " \"31.767\",\n", - " \"34.483\",\n", - " \"36.342\",\n", - " \"36.157\",\n", - " \"34.665\",\n", - " \"31.899\",\n", - " \"30.965\",\n", - " \"32.014\"\n", + " \"33.145\",\n", + " \"33.729\",\n", + " \"32.914\",\n", + " \"31.205\",\n", + " \"31.768\",\n", + " \"34.484\",\n", + " \"36.344\",\n", + " \"36.158\",\n", + " \"34.666\",\n", + " \"31.901\",\n", + " \"30.967\",\n", + " \"32.016\"\n", " ]\n", " },\n", " \"std-obs_xy_devzm\": {\n", - " \"ann\": \"12.976\"\n", + " \"ann\": \"12.980\"\n", " },\n", " \"std-obs_xyt\": {\n", - " \"ann\": \"33.418\"\n", + " \"ann\": \"33.420\"\n", " },\n", " \"std_xy\": {\n", " \"ann\": \"31.966\",\n", - " \"djf\": \"36.191\",\n", + " \"djf\": \"36.189\",\n", " \"mam\": \"34.089\",\n", - " \"jja\": \"37.564\",\n", + " \"jja\": \"37.563\",\n", " \"son\": \"33.813\",\n", " \"CalendarMonths\": [\n", - " \"36.778\",\n", - " \"37.344\",\n", + " \"36.777\",\n", + " \"37.343\",\n", " \"36.641\",\n", - " \"34.890\",\n", + " \"34.891\",\n", " \"34.366\",\n", - " \"36.411\",\n", - " \"38.933\",\n", - " \"39.053\",\n", + " \"36.410\",\n", + " \"38.932\",\n", + " \"39.052\",\n", " \"37.396\",\n", " \"34.686\",\n", " \"33.932\",\n", - " \"35.562\"\n", + " \"35.561\"\n", " ]\n", " },\n", " \"std_xy_devzm\": {\n", @@ -826,44 +919,44 @@ " },\n", " \"cor_xy\": {\n", " \"ann\": \"0.952\",\n", - " \"djf\": \"0.95\",\n", - " \"mam\": \"0.93\",\n", - " \"jja\": \"0.95\",\n", - " \"son\": \"0.93\",\n", + " \"djf\": \"0.948\",\n", + " \"mam\": \"0.935\",\n", + " \"jja\": \"0.955\",\n", + " \"son\": \"0.930\",\n", " \"CalendarMonths\": [\n", - " \"0.95\",\n", - " \"0.94\",\n", - " \"0.94\",\n", - " \"0.92\",\n", - " \"0.92\",\n", - " \"0.94\",\n", - " \"0.95\",\n", - " \"0.95\",\n", - " \"0.94\",\n", - " \"0.92\",\n", - " \"0.92\",\n", - " \"0.94\"\n", + " \"0.946\",\n", + " \"0.938\",\n", + " \"0.938\",\n", + " \"0.922\",\n", + " \"0.925\",\n", + " \"0.944\",\n", + " \"0.949\",\n", + " \"0.949\",\n", + " \"0.939\",\n", + " \"0.916\",\n", + " \"0.917\",\n", + " \"0.936\"\n", " ]\n", " },\n", " \"mae_xy\": {\n", - " \"ann\": \"6.331\",\n", - " \"djf\": \"7.493\",\n", - " \"mam\": \"8.024\",\n", - " \"jja\": \"7.628\",\n", - " \"son\": \"7.940\",\n", + " \"ann\": \"6.337\",\n", + " \"djf\": \"7.488\",\n", + " \"mam\": \"8.023\",\n", + " \"jja\": \"7.633\",\n", + " \"son\": \"7.947\",\n", " \"CalendarMonths\": [\n", - " \"8.015\",\n", - " \"8.693\",\n", - " \"8.520\",\n", - " \"8.889\",\n", - " \"8.656\",\n", - " \"7.961\",\n", - " \"8.217\",\n", - " \"8.243\",\n", - " \"8.657\",\n", + " \"8.016\",\n", + " \"8.683\",\n", + " \"8.518\",\n", " \"8.891\",\n", + " \"8.661\",\n", + " \"7.964\",\n", + " \"8.223\",\n", + " \"8.247\",\n", + " \"8.666\",\n", + " \"8.893\",\n", " \"8.307\",\n", - " \"7.976\"\n", + " \"7.982\"\n", " ]\n", " },\n", " \"mean-obs_xy\": {\n", @@ -912,103 +1005,103 @@ " \"ann\": \"9.363\"\n", " },\n", " \"rms_xy\": {\n", - " \"ann\": \"9.610\",\n", - " \"djf\": \"10.951\",\n", - " \"mam\": \"11.786\",\n", - " \"jja\": \"11.219\",\n", + " \"ann\": \"9.611\",\n", + " \"djf\": \"10.946\",\n", + " \"mam\": \"11.784\",\n", + " \"jja\": \"11.232\",\n", " \"son\": \"12.519\",\n", " \"CalendarMonths\": [\n", - " \"11.383\",\n", - " \"12.617\",\n", - " \"12.416\",\n", - " \"13.174\",\n", - " \"13.060\",\n", - " \"12.071\",\n", - " \"12.151\",\n", - " \"12.224\",\n", - " \"12.989\",\n", - " \"14.060\",\n", + " \"11.379\",\n", + " \"12.611\",\n", + " \"12.410\",\n", + " \"13.172\",\n", + " \"13.067\",\n", + " \"12.080\",\n", + " \"12.167\",\n", + " \"12.235\",\n", + " \"12.992\",\n", + " \"14.058\",\n", " \"13.062\",\n", " \"11.749\"\n", " ]\n", " },\n", " \"rms_xyt\": {\n", - " \"ann\": \"nan\"\n", + " \"ann\": \"12.582\"\n", " },\n", " \"rms_y\": {\n", " \"ann\": \"2.168\"\n", " },\n", " \"rmsc_xy\": {\n", " \"ann\": \"9.540\",\n", - " \"djf\": \"10.913\",\n", - " \"mam\": \"11.746\",\n", - " \"jja\": \"11.131\",\n", + " \"djf\": \"10.908\",\n", + " \"mam\": \"11.745\",\n", + " \"jja\": \"11.144\",\n", " \"son\": \"12.441\",\n", " \"CalendarMonths\": [\n", - " \"11.334\",\n", - " \"12.596\",\n", - " \"12.402\",\n", - " \"13.139\",\n", - " \"12.995\",\n", - " \"11.998\",\n", - " \"12.056\",\n", - " \"12.146\",\n", - " \"12.893\",\n", - " \"13.984\",\n", + " \"11.330\",\n", + " \"12.590\",\n", + " \"12.396\",\n", + " \"13.137\",\n", + " \"13.002\",\n", + " \"12.008\",\n", + " \"12.073\",\n", + " \"12.157\",\n", + " \"12.895\",\n", + " \"13.982\",\n", " \"13.013\",\n", - " \"11.713\"\n", + " \"11.712\"\n", " ]\n", " },\n", " \"std-obs_xy\": {\n", - " \"ann\": \"29.647\",\n", - " \"djf\": \"32.686\",\n", - " \"mam\": \"30.818\",\n", - " \"jja\": \"35.375\",\n", - " \"son\": \"31.289\",\n", + " \"ann\": \"29.649\",\n", + " \"djf\": \"32.688\",\n", + " \"mam\": \"30.820\",\n", + " \"jja\": \"35.377\",\n", + " \"son\": \"31.291\",\n", " \"CalendarMonths\": [\n", - " \"33.135\",\n", - " \"33.734\",\n", - " \"33.073\",\n", - " \"31.262\",\n", - " \"31.721\",\n", - " \"34.451\",\n", - " \"36.365\",\n", - " \"36.271\",\n", - " \"34.820\",\n", - " \"32.053\",\n", - " \"30.983\",\n", - " \"31.985\"\n", + " \"33.137\",\n", + " \"33.736\",\n", + " \"33.075\",\n", + " \"31.264\",\n", + " \"31.723\",\n", + " \"34.453\",\n", + " \"36.366\",\n", + " \"36.272\",\n", + " \"34.822\",\n", + " \"32.055\",\n", + " \"30.985\",\n", + " \"31.987\"\n", " ]\n", " },\n", " \"std-obs_xy_devzm\": {\n", - " \"ann\": \"12.983\"\n", + " \"ann\": \"12.987\"\n", " },\n", " \"std-obs_xyt\": {\n", - " \"ann\": \"33.469\"\n", + " \"ann\": \"33.470\"\n", " },\n", " \"std_xy\": {\n", - " \"ann\": \"31.123\",\n", - " \"djf\": \"34.351\",\n", + " \"ann\": \"31.122\",\n", + " \"djf\": \"34.350\",\n", " \"mam\": \"33.081\",\n", - " \"jja\": \"37.357\",\n", + " \"jja\": \"37.358\",\n", " \"son\": \"33.759\",\n", " \"CalendarMonths\": [\n", - " \"35.083\",\n", - " \"36.318\",\n", - " \"35.860\",\n", - " \"33.875\",\n", + " \"35.082\",\n", + " \"36.317\",\n", + " \"35.861\",\n", + " \"33.874\",\n", " \"34.141\",\n", - " \"36.390\",\n", - " \"38.237\",\n", - " \"38.696\",\n", - " \"37.492\",\n", + " \"36.392\",\n", + " \"38.239\",\n", + " \"38.697\",\n", + " \"37.491\",\n", " \"34.881\",\n", - " \"32.548\",\n", - " \"33.053\"\n", + " \"32.550\",\n", + " \"33.054\"\n", " ]\n", " },\n", " \"std_xy_devzm\": {\n", - " \"ann\": \"14.246\"\n", + " \"ann\": \"14.244\"\n", " },\n", " \"std_xyt\": {\n", " \"ann\": \"35.677\"\n", @@ -1045,44 +1138,44 @@ " },\n", " \"cor_xy\": {\n", " \"ann\": \"0.952\",\n", - " \"djf\": \"0.95\",\n", - " \"mam\": \"0.93\",\n", - " \"jja\": \"0.95\",\n", - " \"son\": \"0.93\",\n", + " \"djf\": \"0.949\",\n", + " \"mam\": \"0.935\",\n", + " \"jja\": \"0.954\",\n", + " \"son\": \"0.929\",\n", " \"CalendarMonths\": [\n", - " \"0.95\",\n", - " \"0.94\",\n", - " \"0.94\",\n", - " \"0.92\",\n", - " \"0.92\",\n", - " \"0.94\",\n", - " \"0.95\",\n", - " \"0.95\",\n", - " \"0.94\",\n", - " \"0.92\",\n", - " \"0.92\",\n", - " \"0.94\"\n", + " \"0.946\",\n", + " \"0.938\",\n", + " \"0.938\",\n", + " \"0.922\",\n", + " \"0.925\",\n", + " \"0.944\",\n", + " \"0.949\",\n", + " \"0.949\",\n", + " \"0.939\",\n", + " \"0.916\",\n", + " \"0.916\",\n", + " \"0.938\"\n", " ]\n", " },\n", " \"mae_xy\": {\n", - " \"ann\": \"6.334\",\n", - " \"djf\": \"7.487\",\n", + " \"ann\": \"6.339\",\n", + " \"djf\": \"7.480\",\n", " \"mam\": \"8.034\",\n", - " \"jja\": \"7.646\",\n", - " \"son\": \"7.998\",\n", + " \"jja\": \"7.652\",\n", + " \"son\": \"8.007\",\n", " \"CalendarMonths\": [\n", - " \"8.026\",\n", - " \"8.696\",\n", - " \"8.557\",\n", - " \"8.897\",\n", - " \"8.659\",\n", - " \"7.953\",\n", - " \"8.219\",\n", - " \"8.271\",\n", - " \"8.655\",\n", - " \"8.928\",\n", + " \"8.028\",\n", + " \"8.686\",\n", + " \"8.554\",\n", + " \"8.899\",\n", + " \"8.665\",\n", + " \"7.956\",\n", + " \"8.225\",\n", + " \"8.276\",\n", + " \"8.667\",\n", + " \"8.934\",\n", " \"8.362\",\n", - " \"7.874\"\n", + " \"7.880\"\n", " ]\n", " },\n", " \"mean-obs_xy\": {\n", @@ -1128,106 +1221,106 @@ " ]\n", " },\n", " \"rms_devzm\": {\n", - " \"ann\": \"9.363\"\n", + " \"ann\": \"9.364\"\n", " },\n", " \"rms_xy\": {\n", " \"ann\": \"9.609\",\n", - " \"djf\": \"10.919\",\n", - " \"mam\": \"11.801\",\n", - " \"jja\": \"11.248\",\n", - " \"son\": \"12.596\",\n", + " \"djf\": \"10.914\",\n", + " \"mam\": \"11.800\",\n", + " \"jja\": \"11.260\",\n", + " \"son\": \"12.595\",\n", " \"CalendarMonths\": [\n", - " \"11.412\",\n", - " \"12.621\",\n", - " \"12.476\",\n", - " \"13.176\",\n", - " \"13.057\",\n", - " \"12.083\",\n", - " \"12.152\",\n", - " \"12.268\",\n", - " \"13.012\",\n", - " \"14.098\",\n", - " \"13.152\",\n", + " \"11.408\",\n", + " \"12.616\",\n", + " \"12.470\",\n", + " \"13.174\",\n", + " \"13.064\",\n", + " \"12.093\",\n", + " \"12.168\",\n", + " \"12.279\",\n", + " \"13.014\",\n", + " \"14.096\",\n", + " \"13.151\",\n", " \"11.583\"\n", " ]\n", " },\n", " \"rms_xyt\": {\n", - " \"ann\": \"nan\"\n", + " \"ann\": \"12.593\"\n", " },\n", " \"rms_y\": {\n", " \"ann\": \"2.159\"\n", " },\n", " \"rmsc_xy\": {\n", - " \"ann\": \"9.538\",\n", - " \"djf\": \"10.878\",\n", - " \"mam\": \"11.757\",\n", - " \"jja\": \"11.161\",\n", + " \"ann\": \"9.539\",\n", + " \"djf\": \"10.874\",\n", + " \"mam\": \"11.756\",\n", + " \"jja\": \"11.174\",\n", " \"son\": \"12.527\",\n", " \"CalendarMonths\": [\n", - " \"11.361\",\n", - " \"12.600\",\n", - " \"12.461\",\n", - " \"13.137\",\n", - " \"12.980\",\n", - " \"12.005\",\n", - " \"12.057\",\n", - " \"12.199\",\n", - " \"12.925\",\n", - " \"14.034\",\n", - " \"13.107\",\n", + " \"11.357\",\n", + " \"12.594\",\n", + " \"12.454\",\n", + " \"13.135\",\n", + " \"12.988\",\n", + " \"12.015\",\n", + " \"12.073\",\n", + " \"12.209\",\n", + " \"12.928\",\n", + " \"14.032\",\n", + " \"13.106\",\n", " \"11.540\"\n", " ]\n", " },\n", " \"std-obs_xy\": {\n", - " \"ann\": \"29.644\",\n", - " \"djf\": \"32.736\",\n", - " \"mam\": \"30.775\",\n", - " \"jja\": \"35.361\",\n", - " \"son\": \"31.194\",\n", + " \"ann\": \"29.645\",\n", + " \"djf\": \"32.738\",\n", + " \"mam\": \"30.777\",\n", + " \"jja\": \"35.363\",\n", + " \"son\": \"31.196\",\n", " \"CalendarMonths\": [\n", - " \"33.142\",\n", - " \"33.727\",\n", - " \"32.912\",\n", - " \"31.203\",\n", - " \"31.767\",\n", - " \"34.483\",\n", - " \"36.342\",\n", - " \"36.157\",\n", - " \"34.665\",\n", - " \"31.899\",\n", - " \"30.965\",\n", - " \"32.014\"\n", + " \"33.145\",\n", + " \"33.729\",\n", + " \"32.914\",\n", + " \"31.205\",\n", + " \"31.768\",\n", + " \"34.484\",\n", + " \"36.344\",\n", + " \"36.158\",\n", + " \"34.666\",\n", + " \"31.901\",\n", + " \"30.967\",\n", + " \"32.016\"\n", " ]\n", " },\n", " \"std-obs_xy_devzm\": {\n", - " \"ann\": \"12.976\"\n", + " \"ann\": \"12.980\"\n", " },\n", " \"std-obs_xyt\": {\n", - " \"ann\": \"33.418\"\n", + " \"ann\": \"33.420\"\n", " },\n", " \"std_xy\": {\n", - " \"ann\": \"31.123\",\n", - " \"djf\": \"34.351\",\n", + " \"ann\": \"31.122\",\n", + " \"djf\": \"34.350\",\n", " \"mam\": \"33.081\",\n", - " \"jja\": \"37.357\",\n", + " \"jja\": \"37.358\",\n", " \"son\": \"33.759\",\n", " \"CalendarMonths\": [\n", - " \"35.083\",\n", - " \"36.318\",\n", - " \"35.860\",\n", - " \"33.875\",\n", + " \"35.082\",\n", + " \"36.317\",\n", + " \"35.861\",\n", + " \"33.874\",\n", " \"34.141\",\n", - " \"36.390\",\n", - " \"38.237\",\n", - " \"38.696\",\n", - " \"37.492\",\n", + " \"36.392\",\n", + " \"38.239\",\n", + " \"38.697\",\n", + " \"37.491\",\n", " \"34.881\",\n", - " \"32.548\",\n", - " \"33.053\"\n", + " \"32.550\",\n", + " \"33.054\"\n", " ]\n", " },\n", " \"std_xy_devzm\": {\n", - " \"ann\": \"14.246\"\n", + " \"ann\": \"14.244\"\n", " },\n", " \"std_xyt\": {\n", " \"ann\": \"35.677\"\n", @@ -1331,68 +1424,38 @@ "scrolled": true }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-11-09 16:41:28,762 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:41:28,762 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:42::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", - "2023-11-09 16:42:31,697 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", - "2023-11-09 16:42:31,697 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", - "2023-11-09 16:42:31,736 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:42:31,736 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:43::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", - "2023-11-09 16:43:43,018 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", - "2023-11-09 16:43:43,018 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", - "2023-11-09 16:43:47,139 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:43:47,139 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:45::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_default_Ex2.json\n", - "2023-11-09 16:45:02,114 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_default_Ex2.json\n", - "2023-11-09 16:45:02,114 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_default_Ex2.json\n", - "2023-11-09 16:45:02,157 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:45:02,157 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:46::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_default_Ex2.json\n", - "2023-11-09 16:46:12,238 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_default_Ex2.json\n", - "2023-11-09 16:46:12,238 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_default_Ex2.json\n", - "INFO::2023-11-09 16:46::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut_2.5x2.5_xesmf_metrics_Ex2.json\n", - "2023-11-09 16:46:33,802 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut_2.5x2.5_xesmf_metrics_Ex2.json\n", - "2023-11-09 16:46:33,802 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex2/rlut_2.5x2.5_xesmf_metrics_Ex2.json\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "case_id: Ex2 \n", - " test_data_set: ['ACCESS1-0', 'CanCM4'] \n", - " realization: \n", - " vars: ['rlut'] \n", - " varname_in_test_data: None \n", - " reference_data_set: ['all'] \n", - " target_grid: 2.5x2.5 \n", - " regrid_tool: xesmf \n", - " regrid_tool_ocn: esmf \n", - " save_test_clims: False \n", - " test_clims_interpolated_output: None \n", - " filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc \n", - " sftlf_filename_template: sftlf_%(model_version).nc \n", - " generate_sftlf: True \n", - " regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (310.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}} \n", - " regions: {'rlut': ['Global']} \n", - " test_data_path: demo_data/CMIP5_demo_clims/ \n", - " reference_data_path: demo_data/obs4MIPs_PCMDI_clims \n", - " metrics_output_path: demo_output/Ex2 \n", - " diagnostics_output_path: demo_output/Ex2 \n", - " debug: False \n", - "\n", "--- prepare mean climate metrics calculation ---\n", + "case_id: Ex2\n", + "test_data_set: ['ACCESS1-0', 'CanCM4']\n", + "realization: \n", + "vars: ['rlut']\n", + "varname_in_test_data: None\n", + "reference_data_set: ['all']\n", + "target_grid: 2.5x2.5\n", + "regrid_tool: xesmf\n", + "regrid_tool_ocn: esmf\n", + "save_test_clims: False\n", + "test_clims_interpolated_output: None\n", + "filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc\n", + "sftlf_filename_template: sftlf_%(model_version).nc\n", + "generate_sftlf: True\n", + "regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA1': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA2': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'NPO': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'NPGO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AMO': {'domain': {'latitude': (0.0, 70), 'longitude': (-80, 0)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (-50.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}}\n", + "regions: {'rlut': ['Global']}\n", + "test_data_path: demo_data_tmp/CMIP5_demo_clims/\n", + "reference_data_path: demo_data_tmp/obs4MIPs_PCMDI_clims\n", + "metrics_output_path: demo_output_tmp/Ex2\n", + "diagnostics_output_path: demo_output_tmp/Ex2\n", + "debug: False\n", "--- start mean climate metrics calculation ---\n", "varname: rlut\n", "level: None\n", "reference_data_set (all): ['alternate1', 'default']\n", "ref: alternate1\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -1400,68 +1463,128 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:33:15,391 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:33:15,391 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 38.93927790599767\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.60527090825452\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 2.849440160911837\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 7.557470849444263\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 22.607395028695382 22.427104154412426\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.7861025676947934\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.648381662240547\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.549244692371865\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.592896459787895\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.125610428460632\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.860898578606725\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.177708187327104 8.099998137034403\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.96795773835052\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:33::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", + "2024-09-23 17:33:53,712 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", + "2024-09-23 17:33:53,712 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:33:53,979 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:33:53,979 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 38.93927790599767\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 41.277546088282016\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.3070924524925915\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 9.860459737057527\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 31.29959559143669 31.27229114580701\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.6355158166285978\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 12.59914336644845\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.549244692371865\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 35.57963901558475\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1527243415926074\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 6.360708067056379\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.645756369004939 9.576658679806574\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9480905763948829\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:34::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", + "2024-09-23 17:34:34,539 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n", + "2024-09-23 17:34:34,539 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_alternate1_Ex2.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "ref: default\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -1469,66 +1592,129 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:34:36,634 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:34:36,634 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 38.896082465222186\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.60527090825452\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 2.847343450867303\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 7.551058394040502\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 22.603314702394204 22.42325736391287\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.7861552158165768\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.645235171566236\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.4985130934034\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.592896459787895\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1235015665376828\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.85424526985928\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.166269891908385 8.088741773719214\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9680673356259839\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:35::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_default_Ex2.json\n", + "2024-09-23 17:35:11,725 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_default_Ex2.json\n", + "2024-09-23 17:35:11,725 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_ACCESS1-0__2.5x2.5_xesmf_metrics_default_Ex2.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:35:11,958 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:35:11,958 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 38.896082465222186\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 41.277546088282016\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.3091891625371264\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 9.862415553120186\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 31.29710758581451 31.269713253797885\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.6355540591449562\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 12.608701107371159\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.4985130934034\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 35.57963901558475\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1548230280823464\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 6.36344180576563\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.64426986778833 9.574909140910318\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9481186093157992\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:35::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_default_Ex2.json\n", + "2024-09-23 17:35:46,498 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_default_Ex2.json\n", + "2024-09-23 17:35:46,498 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut/rlut_CanCM4__2.5x2.5_xesmf_metrics_default_Ex2.json\n", + "INFO::2024-09-23 17:35::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut_2.5x2.5_xesmf_metrics_Ex2.json\n", + "2024-09-23 17:35:57,972 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut_2.5x2.5_xesmf_metrics_Ex2.json\n", + "2024-09-23 17:35:57,972 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex2/rlut_2.5x2.5_xesmf_metrics_Ex2.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "pmp mean clim driver completed\n" ] } @@ -1553,58 +1739,38 @@ "scrolled": true }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-11-09 16:46:57,258 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:46:57,258 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:47::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex3.json\n", - "2023-11-09 16:47:57,629 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex3.json\n", - "2023-11-09 16:47:57,629 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex3.json\n", - "2023-11-09 16:48:03,578 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:48:03,578 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:49::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex3.json\n", - "2023-11-09 16:49:02,702 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex3.json\n", - "2023-11-09 16:49:02,702 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex3.json\n", - "INFO::2023-11-09 16:49::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut_2.5x2.5_regrid2_metrics_Ex3.json\n", - "2023-11-09 16:49:21,917 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut_2.5x2.5_regrid2_metrics_Ex3.json\n", - "2023-11-09 16:49:21,917 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex3/rlut_2.5x2.5_regrid2_metrics_Ex3.json\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "case_id: Ex3 \n", - " test_data_set: ['ACCESS1-0'] \n", - " realization: \n", - " vars: ['rlut'] \n", - " varname_in_test_data: None \n", - " reference_data_set: ['all'] \n", - " target_grid: 2.5x2.5 \n", - " regrid_tool: regrid2 \n", - " regrid_tool_ocn: esmf \n", - " save_test_clims: False \n", - " test_clims_interpolated_output: None \n", - " filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc \n", - " sftlf_filename_template: sftlf_%(model_version).nc \n", - " generate_sftlf: True \n", - " regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (310.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}} \n", - " regions: {'rlut': ['Global']} \n", - " test_data_path: demo_data/CMIP5_demo_clims/ \n", - " reference_data_path: demo_data/obs4MIPs_PCMDI_clims \n", - " metrics_output_path: demo_output/Ex3 \n", - " diagnostics_output_path: demo_output/Ex3 \n", - " debug: False \n", - "\n", "--- prepare mean climate metrics calculation ---\n", + "case_id: Ex3\n", + "test_data_set: ['ACCESS1-0']\n", + "realization: \n", + "vars: ['rlut']\n", + "varname_in_test_data: None\n", + "reference_data_set: ['all']\n", + "target_grid: 2.5x2.5\n", + "regrid_tool: regrid2\n", + "regrid_tool_ocn: esmf\n", + "save_test_clims: False\n", + "test_clims_interpolated_output: None\n", + "filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc\n", + "sftlf_filename_template: sftlf_%(model_version).nc\n", + "generate_sftlf: True\n", + "regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA1': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA2': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'NPO': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'NPGO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AMO': {'domain': {'latitude': (0.0, 70), 'longitude': (-80, 0)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (-50.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}}\n", + "regions: {'rlut': ['Global']}\n", + "test_data_path: demo_data_tmp/CMIP5_demo_clims/\n", + "reference_data_path: demo_data_tmp/obs4MIPs_PCMDI_clims\n", + "metrics_output_path: demo_output_tmp/Ex3\n", + "diagnostics_output_path: demo_output_tmp/Ex3\n", + "debug: False\n", "--- start mean climate metrics calculation ---\n", "varname: rlut\n", "level: None\n", "reference_data_set (all): ['alternate1', 'default']\n", "ref: alternate1\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -1612,71 +1778,134 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:36:09,348 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:36:09,348 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.46854119190699\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.438416968613225\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1384451737888808\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.770012023689812\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.044682445768467 7.9637213813349925\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9693780836555635\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", - "ref: default\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", - "'DataArray' object has no attribute 'units'\n", - "units: \n", - "ref_data load_and_regrid done\n", - "=================================\n", - "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", - "-----------------------\n", - "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", - "units: W m-2\n", - "load and regrid done\n", - "region: Global\n", - "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.41842190556023\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.438416968613225\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1365878854524063\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.763493973471603\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.033820554038556 7.953014565127818\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9694728084795681\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.443886637144088\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.47036113512534\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.4380172334105\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1384446642039474\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.770267763900403\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.04383979899538 7.962870239960437\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9693832697582581\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:36::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex3.json\n", + "2024-09-23 17:36:45,232 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex3.json\n", + "2024-09-23 17:36:45,232 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex3.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ref: default\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "'DataArray' object has no attribute 'units'\n", + "units: \n", + "ref_data load_and_regrid done\n", + "=================================\n", + "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", + "-----------------------\n", + "model, run: ACCESS1-0 \n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:36:46,544 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:36:46,544 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "units: W m-2\n", + "load and regrid done\n", + "region: Global\n", + "compute metrics start\n", + "var: rlut\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.441474434051779\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.42022623440726\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.4380172334105\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1365873707975822\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.76358422001215\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.032983607315776 7.9521691873316795\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9694779269200444\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:37::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex3.json\n", + "2024-09-23 17:37:23,274 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex3.json\n", + "2024-09-23 17:37:23,274 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex3.json\n", + "INFO::2024-09-23 17:37::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut_2.5x2.5_regrid2_metrics_Ex3.json\n", + "2024-09-23 17:37:35,156 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut_2.5x2.5_regrid2_metrics_Ex3.json\n", + "2024-09-23 17:37:35,156 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex3/rlut_2.5x2.5_regrid2_metrics_Ex3.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "pmp mean clim driver completed\n" ] } @@ -1702,68 +1931,38 @@ "tags": [] }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-11-09 16:49:45,266 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:49:45,266 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:50::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex4.json\n", - "2023-11-09 16:50:41,150 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex4.json\n", - "2023-11-09 16:50:41,150 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex4.json\n", - "2023-11-09 16:50:41,183 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:50:41,183 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:51::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex4.json\n", - "2023-11-09 16:51:35,777 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex4.json\n", - "2023-11-09 16:51:35,777 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex4.json\n", - "2023-11-09 16:51:42,513 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:51:42,513 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:52::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex4.json\n", - "2023-11-09 16:52:38,464 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex4.json\n", - "2023-11-09 16:52:38,464 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex4.json\n", - "2023-11-09 16:52:38,494 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:52:38,494 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:53::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex4.json\n", - "2023-11-09 16:53:33,822 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex4.json\n", - "2023-11-09 16:53:33,822 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex4.json\n", - "INFO::2023-11-09 16:53::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut_2.5x2.5_regrid2_metrics_Ex4.json\n", - "2023-11-09 16:53:54,053 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut_2.5x2.5_regrid2_metrics_Ex4.json\n", - "2023-11-09 16:53:54,053 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex4/rlut_2.5x2.5_regrid2_metrics_Ex4.json\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "case_id: Ex4 \n", - " test_data_set: ['ACCESS1-0', 'CanCM4'] \n", - " realization: \n", - " vars: ['rlut'] \n", - " varname_in_test_data: None \n", - " reference_data_set: ['all'] \n", - " target_grid: 2.5x2.5 \n", - " regrid_tool: regrid2 \n", - " regrid_tool_ocn: esmf \n", - " save_test_clims: False \n", - " test_clims_interpolated_output: None \n", - " filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc \n", - " sftlf_filename_template: sftlf_%(model_version).nc \n", - " generate_sftlf: True \n", - " regions_specs: {'MyDomain': {'domain': {'latitude': (20.0, 30)}}} \n", - " regions: {'rlut': ['MyDomain']} \n", - " test_data_path: demo_data/CMIP5_demo_clims/ \n", - " reference_data_path: demo_data/obs4MIPs_PCMDI_clims \n", - " metrics_output_path: demo_output/Ex4 \n", - " diagnostics_output_path: demo_output/Ex4 \n", - " debug: False \n", - "\n", "--- prepare mean climate metrics calculation ---\n", + "case_id: Ex4\n", + "test_data_set: ['ACCESS1-0', 'CanCM4']\n", + "realization: \n", + "vars: ['rlut']\n", + "varname_in_test_data: None\n", + "reference_data_set: ['all']\n", + "target_grid: 2.5x2.5\n", + "regrid_tool: regrid2\n", + "regrid_tool_ocn: esmf\n", + "save_test_clims: False\n", + "test_clims_interpolated_output: None\n", + "filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc\n", + "sftlf_filename_template: sftlf_%(model_version).nc\n", + "generate_sftlf: True\n", + "regions_specs: {'MyDomain': {'domain': {'latitude': (20.0, 30)}}}\n", + "regions: {'rlut': ['MyDomain']}\n", + "test_data_path: demo_data_tmp/CMIP5_demo_clims/\n", + "reference_data_path: demo_data_tmp/obs4MIPs_PCMDI_clims\n", + "metrics_output_path: demo_output_tmp/Ex4\n", + "diagnostics_output_path: demo_output_tmp/Ex4\n", + "debug: False\n", "--- start mean climate metrics calculation ---\n", "varname: rlut\n", "level: None\n", "reference_data_set (all): ['alternate1', 'default']\n", "ref: alternate1\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -1771,70 +1970,52 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:37:47,533 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:37:47,533 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: MyDomain\n", - "spatial subset done\n", - "compute metrics start\n", - "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 19.18138602499969\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 22.561827391039035\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 0.5946991696333115\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 4.150349791215329\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 5.291037658821646 5.2575100955401215\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9522270778028106\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "error occured for ACCESS1-0 \n", + "region_subset() got multiple values for argument 'region'\n", "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:37:48,558 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:37:48,558 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: MyDomain\n", - "spatial subset done\n", - "compute metrics start\n", - "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 19.18138602499969\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 22.245208810088847\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 0.6638373054433819\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.889229301904497\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 7.248559470317926 7.218097701377931\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9066905099914794\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "error occured for CanCM4 \n", + "region_subset() got multiple values for argument 'region'\n", "ref: default\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -1842,68 +2023,65 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:37:50,612 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:37:50,612 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: MyDomain\n", - "spatial subset done\n", - "compute metrics start\n", - "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 19.049296637854248\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 22.561827391039035\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 0.5913453737090093\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 4.160780868714007\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 5.294374298855912 5.261246037335545\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9522958639707434\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "error occured for ACCESS1-0 \n", + "region_subset() got multiple values for argument 'region'\n", "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:37:51,484 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:37:51,484 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: MyDomain\n", - "spatial subset done\n", - "compute metrics start\n", - "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 19.049296637854248\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 22.245208810088847\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 0.6604835095190796\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.886274128348927\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 7.247367618574384 7.217208527707502\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9068727312282716\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "error occured for CanCM4 \n", + "region_subset() got multiple values for argument 'region'\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:38::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex4/rlut_2.5x2.5_regrid2_metrics_Ex4.json\n", + "2024-09-23 17:38:03,860 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex4/rlut_2.5x2.5_regrid2_metrics_Ex4.json\n", + "2024-09-23 17:38:03,860 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex4/rlut_2.5x2.5_regrid2_metrics_Ex4.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "pmp mean clim driver completed\n" ] } @@ -1959,61 +2137,37 @@ "tags": [] }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-11-09 16:54:19,804 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:54:19,804 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:55::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:55:21,394 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:55:21,394 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "INFO::2023-11-09 16:55::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:55:54,625 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:55:54,625 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "INFO::2023-11-09 16:56::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:56:38,981 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:56:38,981 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "INFO::2023-11-09 16:57::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:57:15,946 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "2023-11-09 16:57:15,946 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", - "INFO::2023-11-09 16:57::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500_2.5x2.5_regrid2_metrics_Ex5.json\n", - "2023-11-09 16:57:35,313 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500_2.5x2.5_regrid2_metrics_Ex5.json\n", - "2023-11-09 16:57:35,313 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex5/zg_500_2.5x2.5_regrid2_metrics_Ex5.json\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "case_id: Ex5 \n", - " test_data_set: ['CanCM4'] \n", - " realization: \n", - " vars: ['zg_500'] \n", - " varname_in_test_data: None \n", - " reference_data_set: ['alternate1'] \n", - " target_grid: 2.5x2.5 \n", - " regrid_tool: regrid2 \n", - " regrid_tool_ocn: esmf \n", - " save_test_clims: False \n", - " test_clims_interpolated_output: None \n", - " filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc \n", - " sftlf_filename_template: sftlf_%(model_version).nc \n", - " generate_sftlf: True \n", - " regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (310.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}} \n", - " regions: {'rlut': ['Global']} \n", - " test_data_path: demo_data/CMIP5_demo_clims/ \n", - " reference_data_path: demo_data/obs4MIPs_PCMDI_clims \n", - " metrics_output_path: demo_output/Ex5 \n", - " diagnostics_output_path: demo_output/Ex5 \n", - " debug: False \n", - "\n", "--- prepare mean climate metrics calculation ---\n", + "case_id: Ex5\n", + "test_data_set: ['CanCM4']\n", + "realization: \n", + "vars: ['zg_500']\n", + "varname_in_test_data: None\n", + "reference_data_set: ['alternate1']\n", + "target_grid: 2.5x2.5\n", + "regrid_tool: regrid2\n", + "regrid_tool_ocn: esmf\n", + "save_test_clims: False\n", + "test_clims_interpolated_output: None\n", + "filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc\n", + "sftlf_filename_template: sftlf_%(model_version).nc\n", + "generate_sftlf: True\n", + "regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA1': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA2': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'NPO': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'NPGO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AMO': {'domain': {'latitude': (0.0, 70), 'longitude': (-80, 0)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (-50.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}}\n", + "regions: {'rlut': ['Global']}\n", + "test_data_path: demo_data_tmp/CMIP5_demo_clims/\n", + "reference_data_path: demo_data_tmp/obs4MIPs_PCMDI_clims\n", + "metrics_output_path: demo_output_tmp/Ex5\n", + "diagnostics_output_path: demo_output_tmp/Ex5\n", + "debug: False\n", "--- start mean climate metrics calculation ---\n", "varname: zg\n", "level: 500.0\n", "ref: alternate1\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/zg/ERA-INT/v20210804/zg_mon_ERA-INT_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/zg/ERA-INT/v20210804/zg_mon_ERA-INT_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -2021,112 +2175,82 @@ "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.zg.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.zg.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:38:15,114 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:38:15,114 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: m\n", "load and regrid done\n", "region: global\n", "compute metrics start\n", "var: zg\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 266.78874424242247\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 289.171909592503\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -26.72829436270523\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 27.31174888102911\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 36.86848787995158 25.39456002798049\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9982646048078304\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", - "region: NHEX\n", - "spatial subset done\n", - "compute metrics start\n", - "var: zg\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 217.77184929408025\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 243.07955688052704\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -33.98470754086787\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 36.12586072486697\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 43.4018204400982 26.99551205063858\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9934590261766263\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", - "region: SHEX\n", - "spatial subset done\n", - "compute metrics start\n", - "var: zg\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 283.22012506599816\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 296.6174627856965\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -53.00982429706322\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 53.00982429706322\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 56.8956886480462 20.665863512804005\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9981088912216388\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", - "region: TROPICS\n", - "spatial subset done\n", - "compute metrics start\n", "var: zg\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 28.36627012760418\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 34.43418248863642\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -9.959322806445527\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 10.055655251093725\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 12.575853648293624 7.678800962410827\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9609284596570256\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 43.136407421218316\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 266.7884899432676\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 289.17169839153274\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -26.728290236301323\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 27.30732894422076\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 36.86694958124509 25.392330977484043\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9982653843741294\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:38::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", + "2024-09-23 17:38:50,975 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n", + "2024-09-23 17:38:50,975 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex5/zg_500/zg_500_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex5.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "region: NHEX\n", + "error occured for CanCM4 \n", + "region_subset() got multiple values for argument 'region'\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:39::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex5/zg_500_2.5x2.5_regrid2_metrics_Ex5.json\n", + "2024-09-23 17:39:01,774 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex5/zg_500_2.5x2.5_regrid2_metrics_Ex5.json\n", + "2024-09-23 17:39:01,774 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex5/zg_500_2.5x2.5_regrid2_metrics_Ex5.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "pmp mean clim driver completed\n" ] } @@ -2162,68 +2286,38 @@ "scrolled": true }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-11-09 16:58:00,109 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:58:00,109 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 16:58::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", - "2023-11-09 16:58:59,465 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", - "2023-11-09 16:58:59,465 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", - "2023-11-09 16:58:59,513 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 16:58:59,513 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 17:00::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", - "2023-11-09 17:00:04,816 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", - "2023-11-09 17:00:04,816 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", - "2023-11-09 17:00:10,978 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 17:00:10,978 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 17:01::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex6.json\n", - "2023-11-09 17:01:07,454 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex6.json\n", - "2023-11-09 17:01:07,454 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex6.json\n", - "2023-11-09 17:01:07,496 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "2023-11-09 17:01:07,496 [WARNING]: dataset.py(_is_decodable:670) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", - "INFO::2023-11-09 17:02::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex6.json\n", - "2023-11-09 17:02:06,691 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex6.json\n", - "2023-11-09 17:02:06,691 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex6.json\n", - "INFO::2023-11-09 17:02::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut_2.5x2.5_regrid2_metrics_Ex6.json\n", - "2023-11-09 17:02:24,735 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut_2.5x2.5_regrid2_metrics_Ex6.json\n", - "2023-11-09 17:02:24,735 [INFO]: base.py(write:250) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output/Ex6/rlut_2.5x2.5_regrid2_metrics_Ex6.json\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "case_id: Ex6 \n", - " test_data_set: ['ACCESS1-0', 'CanCM4'] \n", - " realization: \n", - " vars: ['rlut'] \n", - " varname_in_test_data: None \n", - " reference_data_set: ['all'] \n", - " target_grid: 2.5x2.5 \n", - " regrid_tool: regrid2 \n", - " regrid_tool_ocn: esmf \n", - " save_test_clims: True \n", - " test_clims_interpolated_output: None \n", - " filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc \n", - " sftlf_filename_template: sftlf_%(model_version).nc \n", - " generate_sftlf: True \n", - " regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (310.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}} \n", - " regions: {'rlut': ['Global']} \n", - " test_data_path: demo_data/CMIP5_demo_clims/ \n", - " reference_data_path: demo_data/obs4MIPs_PCMDI_clims \n", - " metrics_output_path: demo_output/Ex6 \n", - " diagnostics_output_path: demo_output/Ex6 \n", - " debug: False \n", - "\n", "--- prepare mean climate metrics calculation ---\n", + "case_id: Ex6\n", + "test_data_set: ['ACCESS1-0', 'CanCM4']\n", + "realization: \n", + "vars: ['rlut']\n", + "varname_in_test_data: None\n", + "reference_data_set: ['all']\n", + "target_grid: 2.5x2.5\n", + "regrid_tool: regrid2\n", + "regrid_tool_ocn: esmf\n", + "save_test_clims: True\n", + "test_clims_interpolated_output: None\n", + "filename_template: cmip5.historical.%(model_version).r1i1p1.mon.%(variable).198101-200512.AC.v20200426.nc\n", + "sftlf_filename_template: sftlf_%(model_version).nc\n", + "generate_sftlf: True\n", + "regions_specs: {'global': {}, 'NHEX': {'domain': {'latitude': (30.0, 90)}}, 'SHEX': {'domain': {'latitude': (-90.0, -30)}}, 'TROPICS': {'domain': {'latitude': (-30.0, 30)}}, '90S50S': {'domain': {'latitude': (-90.0, -50)}}, '50S20S': {'domain': {'latitude': (-50.0, -20)}}, '20S20N': {'domain': {'latitude': (-20.0, 20)}}, '20N50N': {'domain': {'latitude': (20.0, 50)}}, '50N90N': {'domain': {'latitude': (50.0, 90)}}, 'CONUS': {'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'land': {'value': 100}, 'land_NHEX': {'value': 100, 'domain': {'latitude': (30.0, 90)}}, 'land_SHEX': {'value': 100, 'domain': {'latitude': (-90.0, -30)}}, 'land_TROPICS': {'value': 100, 'domain': {'latitude': (-30.0, 30)}}, 'land_CONUS': {'value': 100, 'domain': {'latitude': (24.7, 49.4), 'longitude': (-124.78, -66.92)}}, 'ocean': {'value': 0}, 'ocean_NHEX': {'value': 0, 'domain': {'latitude': (30.0, 90)}}, 'ocean_SHEX': {'value': 0, 'domain': {'latitude': (-90.0, -30)}}, 'ocean_TROPICS': {'value': 0, 'domain': {'latitude': (30.0, 30)}}, 'ocean_50S50N': {'value': 0.0, 'domain': {'latitude': (-50.0, 50)}}, 'ocean_50S20S': {'value': 0.0, 'domain': {'latitude': (-50.0, -20)}}, 'ocean_20S20N': {'value': 0.0, 'domain': {'latitude': (-20.0, 20)}}, 'ocean_20N50N': {'value': 0.0, 'domain': {'latitude': (20.0, 50)}}, 'NAM': {'domain': {'latitude': (20.0, 90), 'longitude': (-180, 180)}}, 'NAO': {'domain': {'latitude': (20.0, 80), 'longitude': (-90, 40)}}, 'SAM': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA1': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PSA2': {'domain': {'latitude': (-20.0, -90), 'longitude': (0, 360)}}, 'PNA': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'NPO': {'domain': {'latitude': (20.0, 85), 'longitude': (120, 240)}}, 'PDO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'NPGO': {'domain': {'latitude': (20.0, 70), 'longitude': (110, 260)}}, 'AMO': {'domain': {'latitude': (0.0, 70), 'longitude': (-80, 0)}}, 'AllMW': {'domain': {'latitude': (-40.0, 45.0), 'longitude': (0.0, 360.0)}}, 'AllM': {'domain': {'latitude': (-45.0, 45.0), 'longitude': (0.0, 360.0)}}, 'NAMM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (210.0, 310.0)}}, 'SAMM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (240.0, 330.0)}}, 'NAFM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (-50.0, 60.0)}}, 'SAFM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (0.0, 90.0)}}, 'ASM': {'domain': {'latitude': (0.0, 45.0), 'longitude': (60.0, 180.0)}}, 'AUSM': {'domain': {'latitude': (-45.0, 0.0), 'longitude': (90.0, 160.0)}}, 'AIR': {'domain': {'latitude': (7.0, 25.0), 'longitude': (65.0, 85.0)}}, 'AUS': {'domain': {'latitude': (-20.0, -10.0), 'longitude': (120.0, 150.0)}}, 'Sahel': {'domain': {'latitude': (13.0, 18.0), 'longitude': (-10.0, 10.0)}}, 'GoG': {'domain': {'latitude': (0.0, 5.0), 'longitude': (-10.0, 10.0)}}, 'NAmo': {'domain': {'latitude': (20.0, 37.0), 'longitude': (-112.0, -103.0)}}, 'SAmo': {'domain': {'latitude': (-20.0, 2.5), 'longitude': (-65.0, -40.0)}}}\n", + "regions: {'rlut': ['Global']}\n", + "test_data_path: demo_data_tmp/CMIP5_demo_clims/\n", + "reference_data_path: demo_data_tmp/obs4MIPs_PCMDI_clims\n", + "metrics_output_path: demo_output_tmp/Ex6\n", + "diagnostics_output_path: demo_output_tmp/Ex6\n", + "debug: False\n", "--- start mean climate metrics calculation ---\n", "varname: rlut\n", "level: None\n", "reference_data_set (all): ['alternate1', 'default']\n", "ref: alternate1\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-0/v20210804/rlut_mon_CERES-EBAF-4-0_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -2231,68 +2325,128 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:39:12,152 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:39:12,152 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.46854119190699\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.438416968613225\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1384451737888808\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.770012023689812\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.044682445768467 7.9637213813349925\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9693780836555635\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.443886637144088\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.47036113512534\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.4380172334105\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1384446642039474\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.770267763900403\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.04383979899538 7.962870239960437\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9693832697582581\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:39::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", + "2024-09-23 17:39:44,111 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", + "2024-09-23 17:39:44,111 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:39:44,355 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:39:44,355 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.46854119190699\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 35.67665337064905\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1635463134324031\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 6.331106438822097\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.610248337339145 9.539550989529207\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9518659641205703\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 12.581863266319667\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.47036113512534\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 35.676970161763705\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1635460184347601\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 6.33676419779921\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.611035481689909 9.540344002879925\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9518562007048922\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:40::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", + "2024-09-23 17:40:16,040 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n", + "2024-09-23 17:40:16,040 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_alternate1_Ex6.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "ref: default\n", - "ref_data_full_path: demo_data/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", + "ref_data_full_path: demo_data_tmp/obs4MIPs_PCMDI_clims/rlut/CERES-EBAF-4-1/v20210804/rlut_mon_CERES-EBAF-4-1_PCMDI_gn.200301-201812.AC.v20210804.nc\n", "'DataArray' object has no attribute 'units'\n", "units: \n", "ref_data load_and_regrid done\n", @@ -2300,66 +2454,129 @@ "model, runs, find_all_realizations: ACCESS1-0 [''] False\n", "-----------------------\n", "model, run: ACCESS1-0 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.ACCESS1-0.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:40:17,494 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:40:17,494 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.41842190556023\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 36.438416968613225\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1365878854524063\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 5.763493973471603\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.033820554038556 7.953014565127818\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9694728084795681\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 11.441474434051779\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.42022623440726\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 36.4380172334105\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: 1.1365873707975822\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 5.76358422001215\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 8.032983607315776 7.9521691873316795\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9694779269200444\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:40::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex6.json\n", + "2024-09-23 17:40:48,158 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex6.json\n", + "2024-09-23 17:40:48,158 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_ACCESS1-0__2.5x2.5_regrid2_metrics_default_Ex6.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "=================================\n", "model, runs, find_all_realizations: CanCM4 [''] False\n", "-----------------------\n", "model, run: CanCM4 \n", - "test_data (model in this case) full_path: demo_data/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n", + "test_data (model in this case) full_path: demo_data_tmp/CMIP5_demo_clims/cmip5.historical.CanCM4.r1i1p1.mon.rlut.198101-200512.AC.v20200426.nc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-09-23 17:40:48,401 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n", + "2024-09-23 17:40:48,401 [WARNING]: dataset.py(_is_decodable:550) >> 'time' does not have a 'units' attribute set so it could not be decoded. Try setting the 'units' attribute (`ds.{coords.name}.attrs['units']`) and try decoding again.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "units: W m-2\n", "load and regrid done\n", "region: Global\n", "compute metrics start\n", "var: rlut\n", - "compute_metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", - "compute_metrics, rms_xyt\n", - "compute_metrics, rms_xyt: nan\n", - "compute_metrics, stdObs_xyt\n", - "compute_metrics, stdObs_xyt: 33.41842190556023\n", - "compute_metrics, std_xyt\n", - "compute_metrics, std_xyt: 35.67665337064905\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS\n", - "compute_metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.1654036017688774\n", - "compute_metrics-CALCULATE MSE\n", - "compute_metrics-CALCULATE MSE, mae_xy: 6.333692053819536\n", - "compute_metrics-CALCULATE MEAN RMS\n", - "compute_metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.608637289548378 9.537701243333409\n", - "compute_metrics-CALCULATE MEAN CORR\n", - "compute_metrics-CALCULATE MEAN CORR: cor_xy: 0.9518850115349531\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD STD\n", - "compute_metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", - "compute_metrics-CALCULATE ANNUAL MEANS\n", - "compute_metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", - "compute_metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n", + "var: rlut\n", + "metrics-CALCULATE ANNUAL CYCLE SPACE-TIME RMS, CORRELATIONS and STD\n", + "metrics, rms_xyt\n", + "metrics, rms_xyt: 12.592931277171877\n", + "metrics, stdObs_xyt\n", + "metrics, stdObs_xyt: 33.42022623440726\n", + "metrics, std_xyt\n", + "metrics, std_xyt: 35.676970161763705\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS\n", + "metrics-CALCULATE ANNUAL MEAN BIAS, bias_xy: -1.165403311841126\n", + "metrics-CALCULATE MSE\n", + "metrics-CALCULATE MSE, mae_xy: 6.339387410014902\n", + "metrics-CALCULATE MEAN RMS\n", + "metrics-CALCULATE MEAN RMS: rms_xy, rmsc_xy: 9.609441449405928 9.538511418995654\n", + "metrics-CALCULATE MEAN CORR\n", + "metrics-CALCULATE MEAN CORR: cor_xy: 0.9518750636449926\n", + "metrics-CALCULATE ANNUAL OBS AND MOD STD\n", + "metrics-CALCULATE ANNUAL OBS AND MOD MEAN\n", + "metrics-CALCULATE ANNUAL MEANS\n", + "metrics-CALCULATE ANNUAL AND ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN RMS\n", + "metrics-CALCULATE ANNUAL MEAN DEVIATION FROM ZONAL MEAN STD\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO::2024-09-23 17:41::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex6.json\n", + "2024-09-23 17:41:25,289 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex6.json\n", + "2024-09-23 17:41:25,289 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut/rlut_CanCM4__2.5x2.5_regrid2_metrics_default_Ex6.json\n", + "INFO::2024-09-23 17:41::pcmdi_metrics:: Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut_2.5x2.5_regrid2_metrics_Ex6.json\n", + "2024-09-23 17:41:42,883 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut_2.5x2.5_regrid2_metrics_Ex6.json\n", + "2024-09-23 17:41:42,883 [INFO]: base.py(write:422) >> Results saved to a json file: /Users/lee1043/Documents/Research/git/pcmdi_metrics_20230620_pcmdi/pcmdi_metrics/doc/jupyter/Demo/demo_output_tmp/Ex6/rlut_2.5x2.5_regrid2_metrics_Ex6.json\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "pmp mean clim driver completed\n" ] } @@ -2385,9 +2602,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python [conda env:pmp_devel_20230223] *", + "display_name": "pmp_devel_20240425", "language": "python", - "name": "conda-env-pmp_devel_20230223-py" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -2399,7 +2616,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.10.10" }, "selected_variables": [], "vcdat_file_path": "", diff --git a/pcmdi_metrics/graphics/share/read_json_mean_clim.py b/pcmdi_metrics/graphics/share/read_json_mean_clim.py index db361d036..f761e8242 100644 --- a/pcmdi_metrics/graphics/share/read_json_mean_clim.py +++ b/pcmdi_metrics/graphics/share/read_json_mean_clim.py @@ -44,11 +44,20 @@ def read_mean_clim_json_files( dict_temp = json.load(fj) # e.g., load contents of precipitation json file var = dict_temp["Variable"]["id"] # e.g., 'pr' if "level" in list(dict_temp["Variable"].keys()): - var += "-" + str(int(dict_temp["Variable"]["level"] / 100.0)) # Pa to hPa + # defaul PCMDI prefers name convention for pressulre level variables with "name"-"pressure(hPa)" + # e.g. ua-200, zg-500 etc. In case the user used a pressure in Pa rather than hPa, we add a check + # with warning message and convert unit to hPa to be consistent with the default PCMDI setup + level = int(dict_temp["Variable"]["level"]) + if level > 1100: + print( + f"Warning: The provided level value {level} appears to be in Pa. It will be automatically converted to hPa by dividing by 100." + ) + level = int(level / 100.0) + var = f"{var}-{str(level)}" # always hPa results_dict[var] = dict_temp unit = extract_unit(var, results_dict[var]) if unit is not None: - var_unit = var + " [" + unit + "]" + var_unit = f"{var} [{unit}]" else: var_unit = var var_list.append(var) diff --git a/pcmdi_metrics/io/regions.py b/pcmdi_metrics/io/regions.py index b8e4a9f1f..e402a5d56 100755 --- a/pcmdi_metrics/io/regions.py +++ b/pcmdi_metrics/io/regions.py @@ -84,32 +84,52 @@ def load_regions_specs() -> dict: def region_subset( ds: Union[xr.Dataset, xr.DataArray], region: str, - data_var: str = "variable", + data_var: str = None, regions_specs: dict = None, debug: bool = False, ) -> Union[xr.Dataset, xr.DataArray]: - """_summary_ + """ + Subset a dataset or data array based on a specified region. + + This function subsets an xarray Dataset or DataArray based on the latitude and longitude + coordinates defined for a given region. It handles different longitude conventions + and can optionally provide debug information. Parameters ---------- ds : Union[xr.Dataset, xr.DataArray] - _description_ + The input dataset or data array to be subsetted. region : str - _description_ + The name of the region to subset the data to. This should correspond to a key + in the regions_specs dictionary. data_var : str, optional - _description_, by default None + The name of the data variable if ds is a DataArray, by default None, which names DataArray as "variable" in the Dataset if DataArray has no name. regions_specs : dict, optional - _description_, by default None - debug: bool, optional - Turn on debug print, by default False + A dictionary containing the specifications for different regions. If None, + it will be loaded from a default source, by default None. + debug : bool, optional + If True, print debug information during the subsetting process, by default False. Returns ------- Union[xr.Dataset, xr.DataArray] - _description_ + The subsetted dataset or data array, matching the input type. + + Notes + ----- + This function first converts DataArrays to Datasets for processing, then converts + back if necessary. It handles both latitude and longitude subsetting based on the + region specifications, and can deal with different longitude conventions (0 to 360 + vs -180 to 180). + """ if isinstance(ds, xr.DataArray): is_dataArray = True + if data_var is None: + if ds.name is None: + data_var = "variable" + else: + data_var = ds.name ds = da_to_ds(ds, data_var) else: is_dataArray = False diff --git a/pcmdi_metrics/mean_climate/mean_climate_driver.py b/pcmdi_metrics/mean_climate/mean_climate_driver.py index a54672dc7..05f29b800 100755 --- a/pcmdi_metrics/mean_climate/mean_climate_driver.py +++ b/pcmdi_metrics/mean_climate/mean_climate_driver.py @@ -338,12 +338,16 @@ ds_ref_dict[region] = ds_ref_tmp else: ds_test_tmp = region_subset( - ds_test_tmp, regions_specs, region=region + ds_test_tmp, + region=region, + regions_specs=regions_specs, ) ds_test_dict[region] = ds_test_tmp if region not in list(ds_ref_dict.keys()): ds_ref_dict[region] = region_subset( - ds_ref_tmp, regions_specs, region=region + ds_ref_tmp, + region=region, + regions_specs=regions_specs, ) print("spatial subset done")