9A. Sea Ice
Table of Contents
Note: Links to the sections work best when viewing this notebook via nbviewer. - 1. Demo data * 1.1 Model output * 1.2 Reference dataset - 2. Sectors - 3. Basic Example * 3.1.1 Introducing the PMP parameter file * 3.1.2 Introducing the PMP driver file * 3.1.2 Running the PMP sea ice demo - 4. Working with multiple realizations - 5. Working with multiple models - 6. Further exploration - 7. Debugging the LLNL Nimbus binder environment
1. Demo data
1.1 Model output
This demo uses three CMIP6 models. The Sea-Ice Area Percentage (Ocean Grid; ‘siconc’) and Grid-Cell Area for Ocean Variables (‘areacello’) variables are needed and can be found in the following directories. In addition, six other models are available that can be added to the analyses in this demo:
/p/user_pub/pmp/demo/sea-ice/links_siconc
/p/user_pub/pmp/demo/sea-ice/links_area
[1]:
!ls /p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_185001-185912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_186001-186912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_187001-187912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_188001-188912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_189001-189912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_190001-190912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_191001-191912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_192001-192912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_193001-193912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_194001-194912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_195001-195912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_196001-196912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_197001-197912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_198001-198912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_199001-199912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_200001-200912.nc
siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_201001-201112.nc
[2]:
!ls /p/user_pub/pmp/demo/sea-ice/links_area/E3SM-1-0/
areacello_Ofx_E3SM-1-0_historical_r1i1p1f1_gr.nc
1.2 Reference dataset
The observational dataset provided is the satellite derived sea ice concentration dataset from EUMETSAT OSI-SAF. More data information can be found at the osi-450-a product page. The path to this data is:
/p/user_pub/pmp/demo/sea-ice/EUMETSAT
The original data was post-processed for the PMP and the processed data can be downloaded by running Demo_0_download_data.ipynb
[3]:
!ls /p/user_pub/pmp/demo/sea-ice/EUMETSAT/OSI-SAF-450-a-3-0/v20231201
ice_conc_nh_ease2-250_cdr-v3p0_198801-202012.nc
ice_conc_sh_ease2-250_cdr-v3p0_198801-202012.nc
NOTE Further exploration of the above datasets can be found in our supplemental Jupyter notebook: Demo_9b_seaIce_data_explore.ipynb
2. Sectors
This code block produces maps that show the different regions used in the analysis along with the mean observed (OSI-SAF) sea ice concentration. The code to generate these figures can be found in the script `sea_ice_sector_plots.py
<sea_ice_sector_plots.py>`__.
Below process will take about 30 seconds.
Go back to Top
[4]:
%%time
%%bash
python sea_ice_sector_plots.py
Creating Arctic map
Creating Antarctic map
[WARNING] yaksa: 10 leaked handle pool objects
CPU times: user 5.81 ms, sys: 7.2 ms, total: 13 ms
Wall time: 25.9 s
[5]:
# To open and display one of the graphics
from IPython.display import display_png, JSON, Image
[6]:
a = Image("Arctic_regions.png")
b = Image("Antarctic_regions.png")
display_png(a,b)
3. Basic example
This first case will work with sea ice concentration ouput from a single model, E3SM-1-0. Two overview plots are shown below to visualize the Arctic sea ice evolution over time in this model.
For this demo, we start the OSI-SAF satellite data in 1988 as that avoids missing data in earlier parts of the record.
The code to generate these figures can be found in `sea_ice_line_plots.py
<sea_ice_line_plots.py>`__.
Below process will take about 15 seconds.
Go back to Top
[7]:
%%time
%%bash
python sea_ice_line_plots.py
CPU times: user 3.44 ms, sys: 4.66 ms, total: 8.1 ms
Wall time: 25.1 s
[8]:
a = Image("Arctic_tseries.png")
b = Image("Arctic_clim.png")
display_png(a,b)
3.1 Introducing the PCMDI Metrics Package (PMP) parameter file
The PMP drivers can all read user arguments from parameter files. We provide a demo parameter file, which is shown below. Comments (beginning with a ‘#’) explain each of the parameters.
Go back to Top
[9]:
with open("sea_ice_param.py") as f:
print(f.read())
# Sea ice metrics parameter file
# Settings for models
# --------------------
# List of models to include in analysis
test_data_set = [
"E3SM-1-0",
]
# realization can be a single realization, a list of realizations, or "*" for all realizations
realization = "r1i2p2f1"
# test_data_path is a template for the model data parent directory
test_data_path = "/p/user_pub/pmp/demo/sea-ice/links_siconc/%(model)/historical/%(realization)/siconc/"
# filename_template is a template for the model data file name
# combine it with test_data_path to get complete data path
filename_template = "siconc_SImon_%(model)_historical_%(realization)_*_*.nc"
# The name of the sea ice variable in the model data
var = "siconc"
# Start and end years for model data
msyear = 1981
meyear = 2010
# Factor for adjusting model data to decimal rather than percent units
ModUnitsAdjust = (True, "multiply", 1e-2)
# Template for the grid area file
area_template = "/p/user_pub/pmp/demo/sea-ice/links_area/%(model)/*.nc"
# Area variable name; likely 'areacello' or 'areacella' for CMIP6
area_var = "areacello"
# Factor to convert area units to km-2
AreaUnitsAdjust = (True, "multiply", 1e-6)
# Directory for writing outputs
case_id = "ex1"
metrics_output_path = "sea_ice_demo/%(case_id)/"
# Settings for the observational data
# ------------------------------------
# Paths to northern and southern hemisphere files
reference_data_path_nh = "/p/user_pub/pmp/demo/sea-ice/EUMETSAT/OSI-SAF-450-a-3-0/v20231201/ice_conc_nh_ease2-250_cdr-v3p0_198801-202012.nc"
reference_data_path_sh = "/p/user_pub/pmp/demo/sea-ice/EUMETSAT/OSI-SAF-450-a-3-0/v20231201/ice_conc_sh_ease2-250_cdr-v3p0_198801-202012.nc"
# Factor for adjusting obs data to decimal rather than percent units
ObsUnitsAdjust = (True, "multiply", 1e-2)
# Name of reference data
reference_data_set = "OSI-SAF"
# Start and end years for obs
osyear = 1988
oeyear = 2020
# Name of sea ice concentration variable
obs_var = "ice_conc"
# Factor to convert area units to km-2
ObsAreaUnitsAdjust = (False, 0, 0)
# In this case there is no obs area file, so these are None
obs_area_template = None
obs_area_var = None
# Because there is no obs area file and this data
# uses an equal-area grid, we provide the
# fixed grid cell area value in km2 units
obs_cell_area = 625 # km 2
To see all of the parameters available for the sea ice metrics, run the –help command as shown here:
3.2 Introducing the PMP driver file
Go back to Top
[10]:
%%bash
sea_ice_driver.py --help
usage: sea_ice_driver.py [-h] [--parameters PARAMETERS]
[--diags OTHER_PARAMETERS [OTHER_PARAMETERS ...]]
[--case_id CASE_ID] [-v VAR] [--obs_var OBS_VAR]
[--area_var AREA_VAR] [--obs_area_var OBS_AREA_VAR]
[-r REFERENCE_DATA_SET [REFERENCE_DATA_SET ...]]
[--reference_data_path_nh REFERENCE_DATA_PATH_NH]
[--reference_data_path_sh REFERENCE_DATA_PATH_SH]
[-t TEST_DATA_SET [TEST_DATA_SET ...]]
[--test_data_path TEST_DATA_PATH]
[--realization REALIZATION]
[--filename_template FILENAME_TEMPLATE]
[--metrics_output_path METRICS_OUTPUT_PATH]
[--filename_output_template FILENAME_OUTPUT_TEMPLATE]
[--area_template AREA_TEMPLATE]
[--obs_area_template_nh OBS_AREA_TEMPLATE_NH]
[--obs_area_template_sh OBS_AREA_TEMPLATE_SH]
[--obs_cell_area OBS_CELL_AREA]
[--output_json_template OUTPUT_JSON_TEMPLATE]
[--debug] [--plots] [--osyear OSYEAR]
[--msyear MSYEAR] [--oeyear OEYEAR] [--meyear MEYEAR]
[--ObsUnitsAdjust OBSUNITSADJUST]
[--ModUnitsAdjust MODUNITSADJUST]
[--AreaUnitsAdjust AREAUNITSADJUST]
[--ObsAreaUnitsAdjust OBSAREAUNITSADJUST]
[--plot PLOT]
options:
-h, --help show this help message and exit
--parameters PARAMETERS, -p PARAMETERS
--diags OTHER_PARAMETERS [OTHER_PARAMETERS ...], -d OTHER_PARAMETERS [OTHER_PARAMETERS ...]
Path to other user-defined parameter file. (default:
None)
--case_id CASE_ID Defines a subdirectory to the metrics output, so
multiplecases can be compared (default: None)
-v VAR, --var VAR Name of model sea ice concentration variable (default:
None)
--obs_var OBS_VAR Name of obs sea ice concentration variable (default:
None)
--area_var AREA_VAR Name of model area variable (default: None)
--obs_area_var OBS_AREA_VAR
Name of reference data area variable (default: None)
-r REFERENCE_DATA_SET [REFERENCE_DATA_SET ...], --reference_data_set REFERENCE_DATA_SET [REFERENCE_DATA_SET ...]
List of observations or models that are used as a
reference against the test_data_set (default: None)
--reference_data_path_nh REFERENCE_DATA_PATH_NH
Path for the reference climatologies for southern
hemisphere (default: None)
--reference_data_path_sh REFERENCE_DATA_PATH_SH
Path for the reference climatologies for northern
hemisphere (default: None)
-t TEST_DATA_SET [TEST_DATA_SET ...], --test_data_set TEST_DATA_SET [TEST_DATA_SET ...]
List of observations or models to test against the
reference_data_set (default: None)
--test_data_path TEST_DATA_PATH
Path for the test climitologies (default: None)
--realization REALIZATION
A simulation parameter (default: None)
--filename_template FILENAME_TEMPLATE
Template for climatology files (default: None)
--metrics_output_path METRICS_OUTPUT_PATH
Directory of where to put the results (default: None)
--filename_output_template FILENAME_OUTPUT_TEMPLATE
Filename for the interpolated test climatologies
(default: None)
--area_template AREA_TEMPLATE
Filename template for model grid area (default: None)
--obs_area_template_nh OBS_AREA_TEMPLATE_NH
Filename template for obs grid area in Northern
Hemisphere (default: None)
--obs_area_template_sh OBS_AREA_TEMPLATE_SH
Filename template for obs grid area in Southern
Hemisphere (default: None)
--obs_cell_area OBS_CELL_AREA
For equal area grids, the cell area in km (default:
None)
--output_json_template OUTPUT_JSON_TEMPLATE
Filename template for results json files (default:
None)
--debug Turn on debugging mode by printing more information to
track progress (default: False)
--plots Set to True to generate figures. (default: False)
--osyear OSYEAR Start year for reference data set (default: None)
--msyear MSYEAR Start year for model data set (default: None)
--oeyear OEYEAR End year for reference data set (default: None)
--meyear MEYEAR End year for model data set (default: None)
--ObsUnitsAdjust OBSUNITSADJUST
Factor to convert obs sea ice concentration to
decimal. For example: - (True, 'divide', 100.0) #
percentage to decimal - (False, 0, 0) # No adjustment
(default) (default: (False, 0, 0))
--ModUnitsAdjust MODUNITSADJUST
Factor to convert model sea ice concentration to
decimal. For example: - (True, 'divide', 100.0) #
percentage to decimal - (False, 0, 0) # No adjustment
(default) (default: (False, 0, 0))
--AreaUnitsAdjust AREAUNITSADJUST
Factor to convert area data to km^2. For example: -
(True, 'multiply', 1e-6) # m^2 to km^2 - (False, 0, 0)
# No adjustment (default) (default: (False, 0, 0))
--ObsAreaUnitsAdjust OBSAREAUNITSADJUST
Factor to convert area data to km^2. For example: -
(True, 'multiply', 1e-6) # m^2 to km^2 - (False, 0, 0)
# No adjustment (default) (default: (False, 0, 0))
--plot PLOT Option for generate individual plots for models: True
(default) / False (default: True)
[WARNING] yaksa: 10 leaked handle pool objects
3.3 Running the PMP sea ice demo
The PMP drivers are run on the command line. In this Jupyter Notebook, we use the bash cell magic function %%bash to run command line functions from the notebook.
The PMP sea ice metrics driver call follows the basic format: sea_ice_driver.py -p parameter_file.py –additional arguments
The following cell runs the driver with the demo parameter file we saw above.
Below process will take about 3 minutes.
Go back to Top
[11]:
%%time
%%bash
sea_ice_driver.py -p sea_ice_param.py
INFO::2024-04-25 10:44::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex1/sea_ice_metrics.json
2024-04-25 10:44:38,110 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex1/sea_ice_metrics.json
2024-04-25 10:44:38,110 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex1/sea_ice_metrics.json
INFO::2024-04-25 10:44::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex1/sea_ice_data.json
2024-04-25 10:44:51,616 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex1/sea_ice_data.json
2024-04-25 10:44:51,616 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex1/sea_ice_data.json
Model list: ['E3SM-1-0']
Find all realizations: False
OBS: Arctic
Converting units by multiply 0.01
OBS: Antarctic
Converting units by multiply 0.01
Model list: ['E3SM-1-0']
/p/user_pub/pmp/demo/sea-ice/links_area/E3SM-1-0/*.nc
Converting units by multiply 1e-06
-----------------------
model, run, variable: E3SM-1-0 r1i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_201001-201112.nc
Converting units by multiply 0.01
-------------------------------------------
Calculating model regional average metrics
for E3SM-1-0
--------------------------------------------
arctic
ca
na
np
antarctic
sp
sa
io
[WARNING] yaksa: 10 leaked handle pool objects
CPU times: user 39.6 ms, sys: 13 ms, total: 52.6 ms
Wall time: 3min
One of the primary outputs of the PMP is a JSON file containing the metrics values. In this case, the metrics are the mean square errors of the time mean and monthly mean ice extent. Ice extent is defined as the total area covered by sea ice concentration of >= 15%. The metrics are organized by model, realization, and reference dataset.
The metrics JSON from this run is displayed below.
[12]:
with open("sea_ice_demo/ex1/sea_ice_metrics.json") as f:
print(f.read())
{
"DIMENSIONS": {
"index": {
"monthly_clim": "Monthly climatology of extent",
"total_extent": "Sum of ice coverage where concentration > 15%"
},
"json_structure": [
"region",
"realization",
"obs",
"index",
"statistic"
],
"model": [
"E3SM-1-0"
],
"region": [
"arctic",
"ca",
"na",
"np",
"antarctic",
"io",
"sa",
"sp"
],
"statistic": {
"mse": "Mean Square Error (10^12 km^4)"
}
},
"RESULTS": {
"E3SM-1-0": {
"antarctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.3224829985071201"
},
"total_extent": {
"mse": "0.21094145964623673"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.3224829985071201"
},
"total_extent": {
"mse": "0.21094145964623673"
}
}
}
},
"arctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.2997445969100572"
},
"total_extent": {
"mse": "2.030507158527881"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.2997445969100572"
},
"total_extent": {
"mse": "2.030507158527881"
}
}
}
},
"ca": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.05035142426809447"
},
"total_extent": {
"mse": "4.1785016078305246e-05"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.05035142426809447"
},
"total_extent": {
"mse": "4.1785016078305246e-05"
}
}
}
},
"io": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.04058821765045104"
},
"total_extent": {
"mse": "0.01237930945282938"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.04058821765045104"
},
"total_extent": {
"mse": "0.01237930945282938"
}
}
}
},
"na": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5678330040810853"
},
"total_extent": {
"mse": "0.9514249147235673"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5678330040810853"
},
"total_extent": {
"mse": "0.9514249147235673"
}
}
}
},
"np": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.26983353803307286"
},
"total_extent": {
"mse": "0.21846457619506263"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.26983353803307286"
},
"total_extent": {
"mse": "0.21846457619506263"
}
}
}
},
"sa": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0823791567667957"
},
"total_extent": {
"mse": "0.30289427422253834"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0823791567667957"
},
"total_extent": {
"mse": "0.30289427422253834"
}
}
}
},
"sp": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5695004447566266"
},
"total_extent": {
"mse": "0.044574352751696585"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5695004447566266"
},
"total_extent": {
"mse": "0.044574352751696585"
}
}
}
}
}
},
"json_structure": [
"region",
"realization",
"obs",
"index",
"statistic"
],
"json_version": 3.0,
"model_year_range": {
"E3SM-1-0": [
"1981",
"2010"
]
},
"provenance": {
"commandLine": "/home/ordonez4/miniconda3/envs/pmp_si_test_2/bin/sea_ice_driver.py -p sea_ice_param.py",
"conda": {
"Platform": "linux-64",
"PythonVersion": "3.8.15.final.0",
"Version": "23.1.0",
"buildVersion": "not installed"
},
"date": "2024-04-25 10:44:23",
"openGL": {
"GLX": {
"client": {},
"server": {}
}
},
"osAccess": false,
"packages": {
"PMP": "v3.0.2-11-g06b151f",
"PMPObs": "See 'References' key below, for detailed obs provenance information.",
"blas": "0.3.27",
"cdat_info": "8.2.1",
"cdms": "3.1.5",
"cdp": "1.7.0",
"cdtime": "3.1.4",
"cdutil": "8.2.1",
"clapack": null,
"esmf": "0.8.5",
"esmpy": "8.6.0",
"genutil": "8.2.1",
"lapack": "3.9.0",
"matplotlib": null,
"mesalib": null,
"numpy": "1.23.5",
"python": "3.10.14",
"scipy": "1.13.0",
"uvcdat": null,
"vcs": null,
"vtk": null,
"xarray": "2024.3.0",
"xcdat": "0.7.0"
},
"platform": {
"Name": "gates.llnl.gov",
"OS": "Linux",
"Version": "3.10.0-1160.108.1.el7.x86_64"
},
"userId": "ordonez4"
}
}
This driver also outputs a bar chart that visualizes the mean square error between the model and observations. Since there is only one model and one realization in this instance, the bar chart looks very simple. The red bar indicates the mean square error for the time mean ice extent, and the blue bar indicates the mean square error for the climatological ice extent.
[13]:
!ls {"sea_ice_demo/ex1/MSE_bar_chart.png"}
sea_ice_demo/ex1/MSE_bar_chart.png
[14]:
a = Image("sea_ice_demo/ex1/MSE_bar_chart.png")
display_png(a)
4. Working with multiple realizations
The sea ice driver can generate metrics based on an average of all available realizations. To do so, provide an asterisk * as the value to the –realization argument on the command line. Options passed on the command line will supercede arguments in the parameter file.
In addition, we set the –case_id value to ‘ex2’ to save results in a new directory.
Below process will take about 5 minutes.
Go back to Top
[15]:
%%time
%%bash
sea_ice_driver.py -p sea_ice_param.py --realization '*' --case_id "ex2"
Model list: ['E3SM-1-0']
Find all realizations: True
OBS: Arctic
Converting units by multiply 0.01
OBS: Antarctic
Converting units by multiply 0.01
Model list: ['E3SM-1-0']
=================================
model, runs: E3SM-1-0 ['r1i2p2f1', 'r2i2p2f1', 'r3i2p2f1', 'r4i2p2f1']
/p/user_pub/pmp/demo/sea-ice/links_area/E3SM-1-0/*.nc
Converting units by multiply 1e-06
-----------------------
model, run, variable: E3SM-1-0 r1i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_201001-201112.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: E3SM-1-0 r2i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_201001-201312.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: E3SM-1-0 r3i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_201001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: E3SM-1-0 r4i2p2f1 siconc
INFO::2024-04-25 10:52::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex2/sea_ice_metrics.json
2024-04-25 10:52:04,534 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex2/sea_ice_metrics.json
2024-04-25 10:52:04,534 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex2/sea_ice_metrics.json
INFO::2024-04-25 10:52::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex2/sea_ice_data.json
2024-04-25 10:52:17,776 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex2/sea_ice_data.json
2024-04-25 10:52:17,776 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex2/sea_ice_data.json
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_201001-201412.nc
Converting units by multiply 0.01
-------------------------------------------
Calculating model regional average metrics
for E3SM-1-0
--------------------------------------------
arctic
ca
na
np
antarctic
sp
sa
io
[WARNING] yaksa: 10 leaked handle pool objects
CPU times: user 84.8 ms, sys: 31.3 ms, total: 116 ms
Wall time: 7min 27s
Since we have averaged four different realizations (E3SM-1-0: ‘r1i2p2f1’, ‘r2i2p2f1’, ‘r3i2p2f1’, ‘r4i2p2f1’), the resulting statistics are different than seen in example 1. The bar chart now contains markers showing the overall spread among the realizations.
[16]:
a = Image("sea_ice_demo/ex2/MSE_bar_chart.png")
display_png(a)
5. Working with multiple models
Along with using multiple realizations, we can include multiple models in a single analysis. The model data must all follow a single filename template. All model inputs must use the same name and units for the sea ice variable.
The example below shows how to use three models in the analysis, with all available realizations. The models are listed as inputs to the –test_data_set flag.
Want to add more models? Six other model sea ice datasets are available in the directories linked in the notebook introduction.
Below process will take about 10 minutes.
Go back to Top
[17]:
%%time
%%bash
sea_ice_driver.py -p sea_ice_param.py \
--test_data_set "E3SM-1-0" "CanESM5" "MIROC6" \
--realization '*' \
--case_id "ex3"
Model list: ['E3SM-1-0', 'CanESM5', 'MIROC6']
Find all realizations: True
OBS: Arctic
Converting units by multiply 0.01
OBS: Antarctic
Converting units by multiply 0.01
Model list: ['CanESM5', 'E3SM-1-0', 'MIROC6']
=================================
model, runs: CanESM5 ['r2i1p1f1', 'r1i1p1f1', 'r3i1p1f1']
/p/user_pub/pmp/demo/sea-ice/links_area/CanESM5/*.nc
Converting units by multiply 1e-06
-----------------------
model, run, variable: CanESM5 r2i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/CanESM5/historical/r2i1p1f1/siconc/siconc_SImon_CanESM5_historical_r2i1p1f1_gn_185001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: CanESM5 r1i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/CanESM5/historical/r1i1p1f1/siconc/siconc_SImon_CanESM5_historical_r1i1p1f1_gn_185001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: CanESM5 r3i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/CanESM5/historical/r3i1p1f1/siconc/siconc_SImon_CanESM5_historical_r3i1p1f1_gn_185001-201412.nc
Converting units by multiply 0.01
-------------------------------------------
Calculating model regional average metrics
for CanESM5
--------------------------------------------
arctic
ca
na
np
antarctic
sp
sa
io
=================================
model, runs: E3SM-1-0 ['r1i2p2f1', 'r2i2p2f1', 'r3i2p2f1', 'r4i2p2f1']
/p/user_pub/pmp/demo/sea-ice/links_area/E3SM-1-0/*.nc
Converting units by multiply 1e-06
-----------------------
model, run, variable: E3SM-1-0 r1i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r1i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r1i2p2f1_gr_201001-201112.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: E3SM-1-0 r2i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r2i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r2i2p2f1_gr_201001-201312.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: E3SM-1-0 r3i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_192001-192912.nc
INFO::2024-04-25 11:08::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex3/sea_ice_metrics.json
2024-04-25 11:08:50,388 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex3/sea_ice_metrics.json
2024-04-25 11:08:50,388 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex3/sea_ice_metrics.json
INFO::2024-04-25 11:09::pcmdi_metrics:: Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex3/sea_ice_data.json
2024-04-25 11:09:03,719 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex3/sea_ice_data.json
2024-04-25 11:09:03,719 [INFO]: base.py(write:251) >> Results saved to a json file: /home/ordonez4/git/pcmdi_metrics/doc/jupyter/Demo/sea_ice_demo/ex3/sea_ice_data.json
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r3i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r3i2p2f1_gr_201001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: E3SM-1-0 r4i2p2f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_185001-185912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_186001-186912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_187001-187912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_188001-188912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_189001-189912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_190001-190912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_191001-191912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_192001-192912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_193001-193912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_194001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_195001-195912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_196001-196912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_197001-197912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_198001-198912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_199001-199912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_200001-200912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/E3SM-1-0/historical/r4i2p2f1/siconc/siconc_SImon_E3SM-1-0_historical_r4i2p2f1_gr_201001-201412.nc
Converting units by multiply 0.01
-------------------------------------------
Calculating model regional average metrics
for E3SM-1-0
--------------------------------------------
arctic
ca
na
np
antarctic
sp
sa
io
=================================
model, runs: MIROC6 ['r2i1p1f1', 'r1i1p1f1', 'r4i1p1f1', 'r3i1p1f1']
/p/user_pub/pmp/demo/sea-ice/links_area/MIROC6/*.nc
Converting units by multiply 1e-06
-----------------------
model, run, variable: MIROC6 r2i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r2i1p1f1/siconc/siconc_SImon_MIROC6_historical_r2i1p1f1_gn_185001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r2i1p1f1/siconc/siconc_SImon_MIROC6_historical_r2i1p1f1_gn_195001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: MIROC6 r1i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r1i1p1f1/siconc/siconc_SImon_MIROC6_historical_r1i1p1f1_gn_185001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r1i1p1f1/siconc/siconc_SImon_MIROC6_historical_r1i1p1f1_gn_195001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: MIROC6 r4i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r4i1p1f1/siconc/siconc_SImon_MIROC6_historical_r4i1p1f1_gn_185001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r4i1p1f1/siconc/siconc_SImon_MIROC6_historical_r4i1p1f1_gn_195001-201412.nc
Converting units by multiply 0.01
-----------------------
model, run, variable: MIROC6 r3i1p1f1 siconc
test_data (model in this case) full_path:
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r3i1p1f1/siconc/siconc_SImon_MIROC6_historical_r3i1p1f1_gn_185001-194912.nc
/p/user_pub/pmp/demo/sea-ice/links_siconc/MIROC6/historical/r3i1p1f1/siconc/siconc_SImon_MIROC6_historical_r3i1p1f1_gn_195001-201412.nc
Converting units by multiply 0.01
-------------------------------------------
Calculating model regional average metrics
for MIROC6
--------------------------------------------
arctic
ca
na
np
antarctic
sp
sa
io
[WARNING] yaksa: 10 leaked handle pool objects
CPU times: user 145 ms, sys: 57.9 ms, total: 202 ms
Wall time: 16min 45s
The output JSON now includes metrics for all three models.
[18]:
with open("sea_ice_demo/ex3/sea_ice_metrics.json") as f:
print(f.read())
{
"DIMENSIONS": {
"index": {
"monthly_clim": "Monthly climatology of extent",
"total_extent": "Sum of ice coverage where concentration > 15%"
},
"json_structure": [
"region",
"realization",
"obs",
"index",
"statistic"
],
"model": [
"CanESM5",
"E3SM-1-0",
"MIROC6"
],
"region": [
"arctic",
"ca",
"na",
"np",
"antarctic",
"io",
"sa",
"sp"
],
"statistic": {
"mse": "Mean Square Error (10^12 km^4)"
}
},
"RESULTS": {
"CanESM5": {
"antarctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.286304445114698"
},
"total_extent": {
"mse": "4.542657209664359"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2705435627546696"
},
"total_extent": {
"mse": "3.31914238715812"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.29002317830303875"
},
"total_extent": {
"mse": "4.817666618178247"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2911360020251559"
},
"total_extent": {
"mse": "5.6514761857693845"
}
}
}
},
"arctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07411837149010482"
},
"total_extent": {
"mse": "1.5344759242358808"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0897906234429174"
},
"total_extent": {
"mse": "0.9847816473978805"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07783337367868165"
},
"total_extent": {
"mse": "1.6853508957073962"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0720709467493335"
},
"total_extent": {
"mse": "2.032468374976366"
}
}
}
},
"ca": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06337141934048413"
},
"total_extent": {
"mse": "0.02640474428046143"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.03160970050552352"
},
"total_extent": {
"mse": "0.008373323686409789"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06641374247849027"
},
"total_extent": {
"mse": "0.04769850188410871"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07448795247489874"
},
"total_extent": {
"mse": "0.031534786726365796"
}
}
}
},
"io": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.04573389030361688"
},
"total_extent": {
"mse": "0.33202135970984636"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.040685574761863415"
},
"total_extent": {
"mse": "0.223161551983003"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.04572693344670885"
},
"total_extent": {
"mse": "0.33563892555535735"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.05547540915660881"
},
"total_extent": {
"mse": "0.458187558303221"
}
}
}
},
"na": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.14744345706833706"
},
"total_extent": {
"mse": "1.1861797454555474"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.16950875024588902"
},
"total_extent": {
"mse": "0.8958345677777696"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.14823680785606305"
},
"total_extent": {
"mse": "1.1190421296472655"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.14366916486708534"
},
"total_extent": {
"mse": "1.5952274178728996"
}
}
}
},
"np": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0055052352990676585"
},
"total_extent": {
"mse": "1.3561933179738154e-06"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.008419597492711275"
},
"total_extent": {
"mse": "0.0011396654988171042"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0066786848652949675"
},
"total_extent": {
"mse": "0.0011312610318961892"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.004720184916638091"
},
"total_extent": {
"mse": "1.134991428164361e-05"
}
}
}
},
"sa": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.24507804758287582"
},
"total_extent": {
"mse": "0.21829594776003455"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.20065110417787246"
},
"total_extent": {
"mse": "0.16093691606448515"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.24628928342174694"
},
"total_extent": {
"mse": "0.18549791220930334"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2420962209223723"
},
"total_extent": {
"mse": "0.3246725364168564"
}
}
}
},
"sp": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.015235521003588432"
},
"total_extent": {
"mse": "1.2027634446167885"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.015036289107735253"
},
"total_extent": {
"mse": "0.9159856464507651"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.024334230797936576"
},
"total_extent": {
"mse": "1.4248466137382687"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0155135957970158"
},
"total_extent": {
"mse": "1.2981785591540005"
}
}
}
}
},
"E3SM-1-0": {
"antarctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2712910250837596"
},
"total_extent": {
"mse": "0.641406992392678"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.38721339145214084"
},
"total_extent": {
"mse": "0.21094145964623673"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.26877288912334857"
},
"total_extent": {
"mse": "0.6598404486630004"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2435705245925407"
},
"total_extent": {
"mse": "0.8575345935924709"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2759737924697999"
},
"total_extent": {
"mse": "1.011824021687754"
}
}
}
},
"arctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.1600970808740905"
},
"total_extent": {
"mse": "2.005831055976063"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.1603204311505024"
},
"total_extent": {
"mse": "2.030507158527881"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.197184843341671"
},
"total_extent": {
"mse": "1.6265473421554568"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.0818924321222867"
},
"total_extent": {
"mse": "2.3876574150640635"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "1.0750233178668298"
},
"total_extent": {
"mse": "2.015177995502851"
}
}
}
},
"ca": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06556676468015665"
},
"total_extent": {
"mse": "0.0008318821313221659"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06692081981762993"
},
"total_extent": {
"mse": "4.1785016078305246e-05"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.05264997712274583"
},
"total_extent": {
"mse": "1.4444811574992051e-05"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.08886471001969645"
},
"total_extent": {
"mse": "0.0050768997960854425"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07659164328504993"
},
"total_extent": {
"mse": "0.0029573874530499232"
}
}
}
},
"io": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.05645457530158847"
},
"total_extent": {
"mse": "0.03782377154869018"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06345253635091992"
},
"total_extent": {
"mse": "0.01237930945282938"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.05178485578464389"
},
"total_extent": {
"mse": "0.02373863421036596"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06850728010096704"
},
"total_extent": {
"mse": "0.07066570595587236"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07015095590607602"
},
"total_extent": {
"mse": "0.06089412264247427"
}
}
}
},
"na": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5269113737615976"
},
"total_extent": {
"mse": "0.9028520120169525"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5278233706256472"
},
"total_extent": {
"mse": "0.9514249147235673"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5186230160573806"
},
"total_extent": {
"mse": "0.7258633199904024"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5373451503952179"
},
"total_extent": {
"mse": "1.0999193024571021"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.48714115101035943"
},
"total_extent": {
"mse": "0.8548562691208009"
}
}
}
},
"np": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.25822525983880873"
},
"total_extent": {
"mse": "0.20118045523960082"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2587606153696512"
},
"total_extent": {
"mse": "0.21846457619506263"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2572838524749538"
},
"total_extent": {
"mse": "0.19205408318339318"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.24350176575462187"
},
"total_extent": {
"mse": "0.19020142229135586"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.2635264177480379"
},
"total_extent": {
"mse": "0.20463245826006815"
}
}
}
},
"sa": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.08526540810855697"
},
"total_extent": {
"mse": "0.4135687698582245"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0941783826778278"
},
"total_extent": {
"mse": "0.30289427422253834"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07452315066382884"
},
"total_extent": {
"mse": "0.3648846350157542"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.09076642601966597"
},
"total_extent": {
"mse": "0.46250787386653075"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.09823531333025226"
},
"total_extent": {
"mse": "0.5444640379137466"
}
}
}
},
"sp": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.4901922428050756"
},
"total_extent": {
"mse": "0.002069034460989729"
}
}
},
"r1i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5165467219413418"
},
"total_extent": {
"mse": "0.044574352751696585"
}
}
},
"r2i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.4294712533526206"
},
"total_extent": {
"mse": "0.002059944324885434"
}
}
},
"r3i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.4965352557784154"
},
"total_extent": {
"mse": "0.0008218479438377459"
}
}
},
"r4i2p2f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.47450029334958926"
},
"total_extent": {
"mse": "0.0001552792507891479"
}
}
}
}
},
"MIROC6": {
"antarctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "15.13998617639839"
},
"total_extent": {
"mse": "68.6632614502658"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "15.084479520142164"
},
"total_extent": {
"mse": "68.52794560927198"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "15.139330510992973"
},
"total_extent": {
"mse": "68.85676894043061"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "15.188547508249986"
},
"total_extent": {
"mse": "68.82973879104648"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "15.087865990740454"
},
"total_extent": {
"mse": "68.43907940876977"
}
}
}
},
"arctic": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.6164058774197069"
},
"total_extent": {
"mse": "0.772159995521514"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.7453729952096938"
},
"total_extent": {
"mse": "0.7563334724125443"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.6317883303312207"
},
"total_extent": {
"mse": "0.5608082965815141"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5693493216936317"
},
"total_extent": {
"mse": "0.8057186995366655"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.5651094204929541"
},
"total_extent": {
"mse": "0.997484281173332"
}
}
}
},
"ca": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06610814001415294"
},
"total_extent": {
"mse": "0.04601931652473067"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.09525521991116574"
},
"total_extent": {
"mse": "0.02804306362125295"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0661490981771208"
},
"total_extent": {
"mse": "0.04281925224724488"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.049252354602055966"
},
"total_extent": {
"mse": "0.06157451819422781"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.053386600877679824"
},
"total_extent": {
"mse": "0.05548551404269704"
}
}
}
},
"io": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.8359153137312322"
},
"total_extent": {
"mse": "1.6632971662216927"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.8424860072371962"
},
"total_extent": {
"mse": "1.6677768392989374"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.8358808213696858"
},
"total_extent": {
"mse": "1.6747971300205027"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.8355440441444869"
},
"total_extent": {
"mse": "1.6600674102835808"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.8266188629202105"
},
"total_extent": {
"mse": "1.6505960159038342"
}
}
}
},
"na": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.09568175850362463"
},
"total_extent": {
"mse": "0.19234550758107205"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.10591256171798862"
},
"total_extent": {
"mse": "0.21831683739761823"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.10568830409610037"
},
"total_extent": {
"mse": "0.1132988016950188"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.08678794351830181"
},
"total_extent": {
"mse": "0.16498066807460046"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0959347363274953"
},
"total_extent": {
"mse": "0.2962272460769257"
}
}
}
},
"np": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06832403454904791"
},
"total_extent": {
"mse": "0.045562446067180955"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07468658132970779"
},
"total_extent": {
"mse": "0.0496360291944792"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.0686346736511589"
},
"total_extent": {
"mse": "0.03731231675015285"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.07768683897141687"
},
"total_extent": {
"mse": "0.05341617746490438"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "0.06571252437465899"
},
"total_extent": {
"mse": "0.042741283247571364"
}
}
}
},
"sa": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.0532720105434725"
},
"total_extent": {
"mse": "10.721021930990371"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.082976134588596"
},
"total_extent": {
"mse": "10.824557738551325"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.0536235519396926"
},
"total_extent": {
"mse": "10.654556297730434"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.075852612226663"
},
"total_extent": {
"mse": "10.783402381871937"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.0329848399165957"
},
"total_extent": {
"mse": "10.622242470221158"
}
}
}
},
"sp": {
"model_mean": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.490776276834461"
},
"total_extent": {
"mse": "13.790489578711297"
}
}
},
"r1i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.4292367981812477"
},
"total_extent": {
"mse": "13.600443567817171"
}
}
},
"r2i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.490536164334231"
},
"total_extent": {
"mse": "13.91989497985934"
}
}
},
"r3i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.487625422289276"
},
"total_extent": {
"mse": "13.803712654042968"
}
}
},
"r4i1p1f1": {
"OSI-SAF": {
"monthly_clim": {
"mse": "2.5085679669338607"
},
"total_extent": {
"mse": "13.838914179700371"
}
}
}
}
}
},
"json_structure": [
"region",
"realization",
"obs",
"index",
"statistic"
],
"json_version": 3.0,
"model_year_range": {
"CanESM5": [
"1981",
"2010"
],
"E3SM-1-0": [
"1981",
"2010"
],
"MIROC6": [
"1981",
"2010"
]
},
"provenance": {
"commandLine": "/home/ordonez4/miniconda3/envs/pmp_si_test_2/bin/sea_ice_driver.py -p sea_ice_param.py --test_data_set E3SM-1-0 CanESM5 MIROC6 --realization * --case_id ex3",
"conda": {
"Platform": "linux-64",
"PythonVersion": "3.8.15.final.0",
"Version": "23.1.0",
"buildVersion": "not installed"
},
"date": "2024-04-25 11:08:36",
"openGL": {
"GLX": {
"client": {},
"server": {}
}
},
"osAccess": false,
"packages": {
"PMP": "v3.0.2-11-g06b151f",
"PMPObs": "See 'References' key below, for detailed obs provenance information.",
"blas": "0.3.27",
"cdat_info": "8.2.1",
"cdms": "3.1.5",
"cdp": "1.7.0",
"cdtime": "3.1.4",
"cdutil": "8.2.1",
"clapack": null,
"esmf": "0.8.5",
"esmpy": "8.6.0",
"genutil": "8.2.1",
"lapack": "3.9.0",
"matplotlib": null,
"mesalib": null,
"numpy": "1.23.5",
"python": "3.10.14",
"scipy": "1.13.0",
"uvcdat": null,
"vcs": null,
"vtk": null,
"xarray": "2024.3.0",
"xcdat": "0.7.0"
},
"platform": {
"Name": "gates.llnl.gov",
"OS": "Linux",
"Version": "3.10.0-1160.108.1.el7.x86_64"
},
"userId": "ordonez4"
}
}
Now the resulting bar chart shows three different models with their multiple realization spread.
[19]:
a = Image("sea_ice_demo/ex3/MSE_bar_chart.png")
display_png(a)
6. Further exploration
Maybe you want to compare more models, or take a closer look at the model data? Here are links to the data for further exploration.
As a reminder, data for eight CMIP6 models (ACCESS-CM2, ACCESS-ESM1-5, CanESM5, CAS-ESM2-0, E3SM-1-0, E3SM-2-0, GFDL-ESM4, MIROC6, with 30 realizations in total across the model suite) is available here:
/p/user_pub/pmp/demo/sea-ice/links_siconc
/p/user_pub/pmp/demo/sea-ice/links_area
Note, expanding the “Working with multiple models” to include all available models will extend run time to around 15 minutes.
The observational time series can be found at:
/p/user_pub/pmp/demo/sea-ice/EUMETSAT
For some example plotting code using xcdat and matplotlib, see the scripts that were used to generate the introductory figures:
sea_ice_sector_plots.py
sea_ice_line_plots.py
Further exploration of the above datasets can be found in our supplemental Jupyter notebook: Demo_9b_seaIce_data_explore.ipynb
7. Debugging the LLNL Nimbus binder environment
For CAMAS workshop users, if you hit an issue at login
Launching server...
Launch attempt 1 failed, retrying...
Launch attempt 2 failed, retrying...
Launch attempt 3 failed, retrying...
User $id already has a running server.
The fix is to login (using your GitHub credentials) using https://binder-nimbus.llnl.gov/hub/home and select “Stop My Server”.
Once you refresh the start page (https://binder-nimbus.llnl.gov), login and start again, it should work as expected
Go back to Top