diff --git a/Tables/input4MIPs_A3hr.json b/Tables/input4MIPs_A3hr.json index 077b168..0eb0f36 100644 --- a/Tables/input4MIPs_A3hr.json +++ b/Tables/input4MIPs_A3hr.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_A3hr" }, "variable_entry":{ diff --git a/Tables/input4MIPs_A3hrPt.json b/Tables/input4MIPs_A3hrPt.json index 94221ac..8e034fd 100644 --- a/Tables/input4MIPs_A3hrPt.json +++ b/Tables/input4MIPs_A3hrPt.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_A3hrPt" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Afx.json b/Tables/input4MIPs_Afx.json index adce169..c15ce73 100644 --- a/Tables/input4MIPs_Afx.json +++ b/Tables/input4MIPs_Afx.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos land", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Afx" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Ayr.json b/Tables/input4MIPs_Ayr.json index ef5c25e..78af5a2 100644 --- a/Tables/input4MIPs_Ayr.json +++ b/Tables/input4MIPs_Ayr.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos atmosChem", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Ayr" }, "variable_entry":{ diff --git a/Tables/input4MIPs_CV.json b/Tables/input4MIPs_CV.json index 545050c..19dac3a 100644 --- a/Tables/input4MIPs_CV.json +++ b/Tables/input4MIPs_CV.json @@ -753,11 +753,8 @@ "contact":"Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", "dataset_category":"atmosphericState", "further_info_url":"http://climate.mri-jma.go.jp/~htsujino/jra55do.html", - "grid":"1x1 degree longitude x latitude", - "grid_label":"gn", "institution":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", "institution_id":"MRI", - "nominal_resolution":"1x1 degree", "product":"reanalysis", "references":"Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", "region":[ diff --git a/Tables/input4MIPs_LIday.json b/Tables/input4MIPs_LIday.json index 202ac38..1ed5856 100644 --- a/Tables/input4MIPs_LIday.json +++ b/Tables/input4MIPs_LIday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIday" }, "variable_entry":{ diff --git a/Tables/input4MIPs_LIfx.json b/Tables/input4MIPs_LIfx.json index 3befdb7..fa0cb90 100644 --- a/Tables/input4MIPs_LIfx.json +++ b/Tables/input4MIPs_LIfx.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIfx" }, "variable_entry":{ diff --git a/Tables/input4MIPs_LIyr.json b/Tables/input4MIPs_LIyr.json index 683d9be..759b87a 100644 --- a/Tables/input4MIPs_LIyr.json +++ b/Tables/input4MIPs_LIyr.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce land", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIyr" }, "variable_entry":{ diff --git a/Tables/input4MIPs_LIyrAnt.json b/Tables/input4MIPs_LIyrAnt.json index e387c52..a395ee4 100644 --- a/Tables/input4MIPs_LIyrAnt.json +++ b/Tables/input4MIPs_LIyrAnt.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIyrAnt" }, "variable_entry":{ diff --git a/Tables/input4MIPs_LIyrC.json b/Tables/input4MIPs_LIyrC.json index a59958f..6d7b41b 100644 --- a/Tables/input4MIPs_LIyrC.json +++ b/Tables/input4MIPs_LIyrC.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIyrC" }, "variable_entry":{ diff --git a/Tables/input4MIPs_LIyrGre.json b/Tables/input4MIPs_LIyrGre.json index 3a7e0ac..e569876 100644 --- a/Tables/input4MIPs_LIyrGre.json +++ b/Tables/input4MIPs_LIyrGre.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIyrGre" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Lday.json b/Tables/input4MIPs_Lday.json index 88f9276..0eb3deb 100644 --- a/Tables/input4MIPs_Lday.json +++ b/Tables/input4MIPs_Lday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"land", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Lday" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Lyr.json b/Tables/input4MIPs_Lyr.json index a4a147f..85b4f21 100644 --- a/Tables/input4MIPs_Lyr.json +++ b/Tables/input4MIPs_Lyr.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"land", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Lyr" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Oday.json b/Tables/input4MIPs_Oday.json index 22dfeff..4b54bc9 100644 --- a/Tables/input4MIPs_Oday.json +++ b/Tables/input4MIPs_Oday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Oday" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Ofx.json b/Tables/input4MIPs_Ofx.json index 946e598..81aacdc 100644 --- a/Tables/input4MIPs_Ofx.json +++ b/Tables/input4MIPs_Ofx.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Ofx" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Omon.json b/Tables/input4MIPs_Omon.json index f57b5f1..5f3e2e7 100644 --- a/Tables/input4MIPs_Omon.json +++ b/Tables/input4MIPs_Omon.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Omon" }, "variable_entry":{ diff --git a/Tables/input4MIPs_OmonC.json b/Tables/input4MIPs_OmonC.json index fca4242..bf9151b 100644 --- a/Tables/input4MIPs_OmonC.json +++ b/Tables/input4MIPs_OmonC.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_OmonC" }, "variable_entry":{ diff --git a/Tables/input4MIPs_Oyr.json b/Tables/input4MIPs_Oyr.json index a317fe1..c6afe7c 100644 --- a/Tables/input4MIPs_Oyr.json +++ b/Tables/input4MIPs_Oyr.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Oyr" }, "variable_entry":{ diff --git a/Tables/input4MIPs_OyrC.json b/Tables/input4MIPs_OyrC.json index 03d64f6..b1e1973 100644 --- a/Tables/input4MIPs_OyrC.json +++ b/Tables/input4MIPs_OyrC.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_OyrC" }, "variable_entry":{ diff --git a/Tables/input4MIPs_SI3hrPt.json b/Tables/input4MIPs_SI3hrPt.json index 107f0bf..84fc7e4 100644 --- a/Tables/input4MIPs_SI3hrPt.json +++ b/Tables/input4MIPs_SI3hrPt.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"seaIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_SI3hrPt" }, "variable_entry":{ diff --git a/Tables/input4MIPs_SIday.json b/Tables/input4MIPs_SIday.json index 05f861d..0e53ece 100644 --- a/Tables/input4MIPs_SIday.json +++ b/Tables/input4MIPs_SIday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"seaIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_SIday" }, "variable_entry":{ diff --git a/Tables/input4MIPs_SImon.json b/Tables/input4MIPs_SImon.json index b34ef50..c987c03 100644 --- a/Tables/input4MIPs_SImon.json +++ b/Tables/input4MIPs_SImon.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"seaIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_SImon" }, "variable_entry":{ diff --git a/Tables/input4MIPs_grids.json b/Tables/input4MIPs_grids.json index a6e1e8e..a9ad7f8 100644 --- a/Tables/input4MIPs_grids.json +++ b/Tables/input4MIPs_grids.json @@ -5,7 +5,7 @@ "data_specs_version":"01.00.32", "missing_value":"1e20", "product":"input4MIPs", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_grids" }, "axis_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hr.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hr.json index 077b168..0eb0f36 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hr.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hr.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_A3hr" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hrPt.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hrPt.json index 94221ac..8e034fd 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hrPt.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_A3hrPt.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_A3hrPt" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Afx.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Afx.json index adce169..c15ce73 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Afx.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Afx.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"atmos land", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Afx" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_CV.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_CV.json index 545050c..19dac3a 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_CV.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_CV.json @@ -753,11 +753,8 @@ "contact":"Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", "dataset_category":"atmosphericState", "further_info_url":"http://climate.mri-jma.go.jp/~htsujino/jra55do.html", - "grid":"1x1 degree longitude x latitude", - "grid_label":"gn", "institution":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", "institution_id":"MRI", - "nominal_resolution":"1x1 degree", "product":"reanalysis", "references":"Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", "region":[ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIday.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIday.json index 202ac38..1ed5856 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIday.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIday" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIyrC.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIyrC.json index a59958f..6d7b41b 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIyrC.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_LIyrC.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"landIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_LIyrC" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Lday.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Lday.json index 88f9276..0eb3deb 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Lday.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Lday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"land", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Lday" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Oday.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Oday.json index 22dfeff..4b54bc9 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Oday.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_Oday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_Oday" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OmonC.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OmonC.json index fca4242..bf9151b 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OmonC.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OmonC.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_OmonC" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OyrC.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OyrC.json index 03d64f6..b1e1973 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OyrC.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_OyrC.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"ocean", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_OyrC" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SI3hrPt.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SI3hrPt.json index 107f0bf..84fc7e4 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SI3hrPt.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SI3hrPt.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"seaIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_SI3hrPt" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SIday.json b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SIday.json index 05f861d..0e53ece 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SIday.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/Tables/input4MIPs_SIday.json @@ -10,7 +10,7 @@ "missing_value":"1e20", "product":"input4MIPs", "realm":"seaIce", - "table_date":"08 September 2020", + "table_date":"14 September 2020", "table_id":"Table input4MIPs_SIday" }, "variable_entry":{ diff --git a/demo/MRI-JMA-JRA55-do-1-4-0/mriJRA55-do-input.json b/demo/MRI-JMA-JRA55-do-1-4-0/mriJRA55-do-input.json index 5e0d1d2..9b04233 100644 --- a/demo/MRI-JMA-JRA55-do-1-4-0/mriJRA55-do-input.json +++ b/demo/MRI-JMA-JRA55-do-1-4-0/mriJRA55-do-input.json @@ -20,7 +20,7 @@ "further_info_url": "http://climate.mri-jma.go.jp/~htsujino/jra55do.html", "institution_id": "MRI", "references": "Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", - "source_id": "MRI-JRA55-do-1-4", + "source_id": "MRI-JRA55-do-1-4-0", "source": "MRI JRA55-do 1.4: Atmospheric state generated for OMIP based on the JRA-55 reanalysis", "source_version": "1.4.0", "title": "MRI JRA55-do 1.4 dataset prepared for input4MIPs", diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/README.md b/demo/MRI-JMA-JRA55-do-1-5-0/README.md new file mode 100644 index 0000000..b7caa87 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/README.md @@ -0,0 +1,36 @@ +MRI-JMA-JRA55-do-1-5-0 +======== + + Generate CMORized data for input4MIPs. + + +Contents +-------- + + * mriJRA55-do-input.json + + * runCmorAllWrite-1-5-0.py: Generate all files for JRA55-do-v1.5.0. + + * runCmorAllWrite-1-5-0-update.py: Update only recent years for JRA55-do-v1.5.0. + + * Tables: Copy of "../../Tables". + + * Before running runCmorAllWrite-1-5-0.py, make symbolic links to... + + - input_atmos ---> JRA55-do main data + - input_suppl ---> JRA55-do supplemental data + - input_clim ---> JRA55-do climatological data + - input_fx ---> JRA55-do invariant data + - input4MIPs ---> CMORized data for input4MIPS + + +Usage Note +-------- + + * Python scripts work with python 3.8 with CMOR 3.6.0. + + +Contact +-------- + + * Hiroyuki Tsujino (JMA-MRI) diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_A3hr.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_A3hr.json new file mode 100644 index 0000000..0eb0f36 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_A3hr.json @@ -0,0 +1,90 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"0.125000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"atmos", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_A3hr" + }, + "variable_entry":{ + "prra":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics", + "dimensions":"longitude latitude time", + "frequency":"3hr", + "long_name":"Rainfall Flux", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"prra", + "positive":"", + "standard_name":"rainfall_flux", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + }, + "prsn":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"At surface; includes precipitation of all forms of water in the solid phase", + "dimensions":"longitude latitude time", + "frequency":"3hr", + "long_name":"Snowfall Flux", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"prsn", + "positive":"", + "standard_name":"snowfall_flux", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + }, + "rlds":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"The surface called 'surface' means the lower boundary of the atmosphere. 'longwave' means longwave radiation. Downwelling radiation is radiation from above. It does not mean 'net downward'. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics.", + "dimensions":"longitude latitude time", + "frequency":"3hr", + "long_name":"Surface Downwelling Longwave Radiation", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"rlds", + "positive":"down", + "standard_name":"surface_downwelling_longwave_flux_in_air", + "type":"real", + "units":"W m-2", + "valid_max":"", + "valid_min":"" + }, + "rsds":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"Surface solar irradiance for UV calculations.", + "dimensions":"longitude latitude time", + "frequency":"3hr", + "long_name":"Surface Downwelling Shortwave Radiation", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"rsds", + "positive":"down", + "standard_name":"surface_downwelling_shortwave_flux_in_air", + "type":"real", + "units":"W m-2", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_A3hrPt.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_A3hrPt.json new file mode 100644 index 0000000..8e034fd --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_A3hrPt.json @@ -0,0 +1,126 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"0.125000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"atmos", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_A3hrPt" + }, + "variable_entry":{ + "huss":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"Near-surface (usually, 2 meter) specific humidity", + "dimensions":"longitude latitude time1 height2m", + "frequency":"3hrPt", + "long_name":"Near-Surface Specific Humidity", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"huss", + "positive":"", + "standard_name":"specific_humidity", + "type":"real", + "units":"1", + "valid_max":"", + "valid_min":"" + }, + "psl":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"Sea Level Pressure", + "dimensions":"longitude latitude time1", + "frequency":"3hrPt", + "long_name":"Sea Level Pressure", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"psl", + "positive":"", + "standard_name":"air_pressure_at_mean_sea_level", + "type":"real", + "units":"Pa", + "valid_max":"", + "valid_min":"" + }, + "tas":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"near-surface (usually, 2 meter) air temperature", + "dimensions":"longitude latitude time1 height2m", + "frequency":"3hrPt", + "long_name":"Near-Surface Air Temperature", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"tas", + "positive":"", + "standard_name":"air_temperature", + "type":"real", + "units":"K", + "valid_max":"", + "valid_min":"" + }, + "ts":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"Temperature of the lower boundary of the atmosphere", + "dimensions":"longitude latitude time1", + "frequency":"3hrPt", + "long_name":"Surface Temperature", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"ts", + "positive":"", + "standard_name":"surface_temperature", + "type":"real", + "units":"K", + "valid_max":"", + "valid_min":"" + }, + "uas":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"Eastward component of the near-surface wind", + "dimensions":"longitude latitude time1 height10m", + "frequency":"3hrPt", + "long_name":"Eastward Near-Surface Wind", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"uas", + "positive":"", + "standard_name":"eastward_wind", + "type":"real", + "units":"m s-1", + "valid_max":"", + "valid_min":"" + }, + "vas":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"Northward component of the near surface wind", + "dimensions":"longitude latitude time1 height10m", + "frequency":"3hrPt", + "long_name":"Northward Near-Surface Wind", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"vas", + "positive":"", + "standard_name":"northward_wind", + "type":"real", + "units":"m s-1", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Afx.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Afx.json new file mode 100644 index 0000000..c15ce73 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Afx.json @@ -0,0 +1,72 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"0.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"alevel", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"atmos land", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_Afx" + }, + "variable_entry":{ + "areacella":{ + "cell_measures":"", + "cell_methods":"area: sum", + "comment":"For atmospheres with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"Grid-Cell Area for Atmospheric Grid Variables", + "modeling_realm":"atmos land", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"areacella", + "positive":"", + "standard_name":"cell_area", + "type":"real", + "units":"m2", + "valid_max":"", + "valid_min":"" + }, + "sftlf":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean", + "comment":"Please express 'X_area_fraction' as the percentage of horizontal area occupied by X", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"Percentage of the Grid Cell Occupied by Land (Including Lakes)", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"sftlf", + "positive":"", + "standard_name":"land_area_fraction", + "type":"real", + "units":"%", + "valid_max":"", + "valid_min":"" + }, + "sftof":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean", + "comment":"Percentage of horizontal area occupied by ocean", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"Sea Area Percentage", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"sftof", + "positive":"", + "standard_name":"sea_area_fraction", + "type":"real", + "units":"%", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_CV.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_CV.json new file mode 100644 index 0000000..19dac3a --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_CV.json @@ -0,0 +1,1010 @@ +{ + "CV":{ + "activity_id":[ + "input4MIPs" + ], + "dataset_category":[ + "GHGConcentrations", + "SSTsAndSeaIce", + "aerosolProperties", + "atmosphericState", + "emissions", + "landState", + "ozone", + "radiation", + "solar", + "surfaceAir", + "surfaceFluxes" + ], + "frequency":{ + "1hr":"sampled hourly", + "1hrCM":"monthly-mean diurnal cycle resolving each day into 1-hour means", + "1hrPt":"sampled hourly, at specified time point within an hour", + "3hr":"sampled every 3 hours", + "3hrPt":"sampled 3 hourly, at specified time point within the time period", + "6hr":"sampled every 6 hours", + "6hrPt":"sampled 6 hourly, at specified time point within the time period", + "day":"daily mean samples", + "dec":"decadal mean samples", + "fx":"fixed (time invariant) field", + "mon":"monthly mean samples", + "monC":"monthly climatology computed from monthly mean samples", + "monPt":"sampled monthly, at specified time point within the time period", + "subhrPt":"sampled sub-hourly, at specified time point within an hour", + "yr":"annual mean samples", + "yrC":"annual climatology computed from annual mean samples", + "yrPt":"sampled yearly, at specified time point within the time period" + }, + "grid_label":{ + "gm":"global mean data", + "gn":"data reported on a model's native grid", + "gna":"data reported on a native grid in the region of Antarctica", + "gng":"data reported on a native grid in the region of Greenland", + "gnz":"zonal mean data reported on a model's native latitude grid", + "gr":"regridded data reported on the data provider's preferred target grid", + "gr1":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr1a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr1g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr1z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr2":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr2a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr2g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr2z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr3":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr3a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr3g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr3z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr4":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr4a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr4g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr4z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr5":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr5a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr5g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr5z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr6":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr6a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr6g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr6z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr7":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr7a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr7g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr7z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr8":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr8a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr8g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr8z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gr9":"regridded data reported on a grid other than the native grid and other than the preferred target grid", + "gr9a":"regridded data reported in the region of Antarctica on a grid other than the native grid and other than the preferred target grid", + "gr9g":"regridded data reported in the region of Greenland on a grid other than the native grid and other than the preferred target grid", + "gr9z":"regridded zonal mean data reported on a grid other than the native latitude grid and other than the preferred latitude target grid", + "gra":"regridded data in the region of Antarctica reported on the data provider's preferred target grid", + "grg":"regridded data in the region of Greenland reported on the data provider's preferred target grid", + "grz":"regridded zonal mean data reported on the data provider's preferred latitude target grid" + }, + "institution_id":{ + "CCCma":"Canadian Centre for Climate Modelling and Analysis, Victoria, BC V8P 5C2, Canada", + "CNRM-Cerfacs":"CNRM (Centre National de Recherches Meteorologiques, Toulouse 31057, France), CERFACS (Centre Europeen de Recherche et de Formation Avancee en Calcul Scientifique, Toulouse 31100, France)", + "IACETH":"Institute for Atmosphere and Climate, ETH Zurich, Zurich 8092, Switzerland", + "IAMC":"Integrated Assessment Modeling Consortium (see www.globalchange.umd.edu/iamc/membership for complete membership). Mailing address: International Institute for Applied Systems Analysis (IIASA), Schlossplatz 1, A-2361 Laxenburg, Austria", + "ImperialCollege":"Imperial College London, South Kensington Campus, London SW7 2AZ, UK", + "MOHC":"Met Office Hadley Centre, Fitzroy Road, Exeter, Devon, EX1 3PB, UK", + "MPI-B":"Max Planck Institute for Biogeochemistry, Jena 07745, Germany", + "MPI-M":"Max Planck Institute for Meteorology, Hamburg 20146, Germany", + "MRI":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", + "NASA-GSFC":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "NCAR":"National Center for Atmospheric Research, Boulder, CO 80307, USA", + "NCAS":"National Centre for Atmospheric Science, University of Reading, Reading RG6 6BB, UK", + "PCMDI":"Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA", + "PNNL-JGCRI":"Pacific Northwest National Laboratory - Joint Global Change Research Institute, College Park, MD 20740, USA", + "SOLARIS-HEPPA":"SOLARIS-HEPPA, GEOMAR Helmholtz Centre for Ocean Research, Kiel 24105, Germany", + "UCI":"Department of Earth System Science, University of California Irvine, Irvine, CA 92697, USA", + "UColorado":"University of Colorado, Boulder, CO 80309, USA", + "UReading":"University of Reading, Reading RG6 6UA, UK", + "UoM":"Australian-German Climate & Energy College, The University of Melbourne (UoM), Parkville, Victoria 3010, Australia", + "UofMD":"University of Maryland (UofMD), College Park, MD 20742, USA", + "VUA":"Vrije Universiteit Amsterdam, De Boelelaan 1105, 1081 HV Amsterdam, Netherlands" + }, + "license":" data produced by is licensed under a Creative Commons Attribution-[NonCommercial-]ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing input4MIPs output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file). The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.", + "mip_era":[ + "CMIP1", + "CMIP2", + "CMIP3", + "CMIP5", + "CMIP6" + ], + "nominal_resolution":[ + "0.5 km", + "1 km", + "10 km", + "100 km", + "1000 km", + "10000 km", + "1x1 degree", + "2.5 km", + "25 km", + "250 km", + "2500 km", + "5 km", + "50 km", + "500 km", + "5000 km" + ], + "product":[ + "derived", + "observations", + "reanalysis" + ], + "realm":{ + "aerosol":"Aerosol", + "atmos":"Atmosphere", + "atmosChem":"Atmospheric Chemistry", + "land":"Land Surface", + "landIce":"Land Ice", + "ocean":"Ocean", + "ocnBgchem":"Ocean Biogeochemistry", + "seaIce":"Sea Ice" + }, + "region":[ + "africa", + "antarctica", + "arabian_sea", + "aral_sea", + "arctic_ocean", + "asia", + "atlantic_ocean", + "australia", + "baltic_sea", + "barents_opening", + "barents_sea", + "beaufort_sea", + "bellingshausen_sea", + "bering_sea", + "bering_strait", + "black_sea", + "canadian_archipelago", + "caribbean_sea", + "caspian_sea", + "central_america", + "chukchi_sea", + "contiguous_united_states", + "denmark_strait", + "drake_passage", + "east_china_sea", + "english_channel", + "eurasia", + "europe", + "faroe_scotland_channel", + "florida_bahamas_strait", + "fram_strait", + "global", + "global_land", + "global_ocean", + "great_lakes", + "greenland", + "gulf_of_alaska", + "gulf_of_mexico", + "hudson_bay", + "iceland_faroe_channel", + "indian_ocean", + "indo_pacific_ocean", + "indonesian_throughflow", + "irish_sea", + "lake_baykal", + "lake_chad", + "lake_malawi", + "lake_tanganyika", + "lake_victoria", + "mediterranean_sea", + "mozambique_channel", + "north_america", + "north_sea", + "norwegian_sea", + "pacific_equatorial_undercurrent", + "pacific_ocean", + "persian_gulf", + "red_sea", + "ross_sea", + "sea_of_japan", + "sea_of_okhotsk", + "south_america", + "south_china_sea", + "southern_ocean", + "taiwan_luzon_straits", + "weddell_sea", + "windward_passage", + "yellow_sea" + ], + "required_global_attributes":[ + "Conventions", + "activity_id", + "contact", + "creation_date", + "dataset_category", + "frequency", + "further_info_url", + "grid_label", + "institution", + "institution_id", + "license", + "mip_era", + "nominal_resolution", + "realm", + "region", + "source", + "source_id", + "source_version", + "table_id", + "target_mip", + "title", + "tracking_id", + "variable_id" + ], + "source_id":{ + "ACCESS1-3-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model ACCESS1-3 as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"ACCESS1-3-rcp85-1-0 derived dataset computed from CMIP5 ACCESS1-3 historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"ACCESS1-3-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - ACCESS1-3-rcp85-1-0 derived data prepared for input4MIPs" + }, + "CCSM4-rcp26-1-0":{ + "comment":"Prepared using CMIP5 model CCSM4 as input. A combination of historical and rcp26 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CCSM4-rcp26-1-0 derived dataset computed from CMIP5 CCSM4 historical and rcp26 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CCSM4-rcp26-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CCSM4-rcp26-1-0 derived data prepared for input4MIPs" + }, + "CCSM4-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model CCSM4 as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CCSM4-rcp85-1-0 derived dataset computed from CMIP5 CCSM4 historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CCSM4-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CCSM4-rcp85-1-0 derived data prepared for input4MIPs" + }, + "CESM2-ssp585-1-0":{ + "comment":"Prepared using CMIP6 model CESM2 as input. A combination of historical and ssp585 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CESM2-ssp585-1-0 derived dataset computed from CMIP6 CESM2 historical and ssp585 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CESM2-ssp585-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CESM2-ssp585-1-0 derived data prepared for input4MIPs" + }, + "CNRM-CM6-1-ssp126-1-0":{ + "comment":"Prepared using CMIP6 model CNRM-CM6-1 as input. A combination of historical and ssp126 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CNRM-CM6-1-ssp126-1-0 derived dataset computed from CMIP6 CNRM-CM6-1 historical and ssp126 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CNRM-CM6-1-ssp126-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CNRM-CM6-1-ssp126-1-0 derived data prepared for input4MIPs" + }, + "CNRM-CM6-1-ssp585-1-0":{ + "comment":"Prepared using CMIP6 model CNRM-CM6-1 as input. A combination of historical and ssp585 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CNRM-CM6-1-ssp585-1-0 derived dataset computed from CMIP6 CNRM-CM6-1 historical and ssp585 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CNRM-CM6-1-ssp585-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CNRM-CM6-1-ssp585-1-0 derived data prepared for input4MIPs" + }, + "CNRM-ESM2-1-ssp585-1-0":{ + "comment":"Prepared using CMIP6 model CNRM-ESM2-1 as input. A combination of historical and ssp585 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CNRM-ESM2-1-ssp585-1-0 derived dataset computed from CMIP6 CNRM-ESM2-1 historical and ssp585 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CNRM-ESM2-1-ssp585-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CNRM-ESM2-1-ssp585-1-0 derived data prepared for input4MIPs" + }, + "CSIRO-MK3-6-0-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model CSIRO-MK3-6-0 as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"CSIRO-MK3-6-0-rcp85-1-0 derived dataset computed from CMIP5 CSIRO-MK3-6-0 historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"CSIRO-MK3-6-0-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - CSIRO-MK3-6-0-rcp85-1-0 derived data prepared for input4MIPs" + }, + "HadGEM2-ES-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model HadGEM2-ES as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"HadGEM2-ES-rcp85-1-0 derived dataset computed from CMIP5 HadGEM2-ES historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"HadGEM2-ES-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - HadGEM2-ES-rcp85-1-0 derived data prepared for input4MIPs" + }, + "IPSL-CM5A-MR-rcp26-1-0":{ + "comment":"Prepared using CMIP5 model IPSL-CM5A-MR as input. A combination of historical and rcp26 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"IPSL-CM5A-MR-rcp26-1-0 derived dataset computed from CMIP5 IPSL-CM5A-MR historical and rcp26 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"IPSL-CM5A-MR-rcp26-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - IPSL-CM5A-MR-rcp26-1-0 derived data prepared for input4MIPs" + }, + "IPSL-CM5A-MR-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model IPSL-CM5A-MR as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"IPSL-CM5A-MR-rcp85-1-0 derived dataset computed from CMIP5 IPSL-CM5A-MR historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"IPSL-CM5A-MR-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - IPSL-CM5A-MR-rcp85-1-0 derived data prepared for input4MIPs" + }, + "MIROC-ESM-CHEM-rcp26-1-0":{ + "comment":"Prepared using CMIP5 model MIROC-ESM-CHEM as input. A combination of historical and rcp26 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"MIROC-ESM-CHEM-rcp26-1-0 derived dataset computed from CMIP5 MIROC-ESM-CHEM historical and rcp26 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"MIROC-ESM-CHEM-rcp26-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - MIROC-ESM-CHEM-rcp26-1-0 derived data prepared for input4MIPs" + }, + "MIROC-ESM-CHEM-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model MIROC-ESM-CHEM as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"MIROC-ESM-CHEM-rcp85-1-0 derived dataset computed from CMIP5 MIROC-ESM-CHEM historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"MIROC-ESM-CHEM-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - MIROC-ESM-CHEM-rcp85-1-0 derived data prepared for input4MIPs" + }, + "MIROC5-rcp26-1-0":{ + "comment":"Prepared using CMIP5 model MIROC5 as input. A combination of historical and rcp26 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"MIROC5-rcp26-1-0 derived dataset computed from CMIP5 MIROC5 historical and rcp26 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"MIROC5-rcp26-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - MIROC5-rcp26-1-0 derived data prepared for input4MIPs" + }, + "MIROC5-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model MIROC5 as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"MIROC5-rcp85-1-0 derived dataset computed from CMIP5 MIROC5 historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"MIROC5-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - MIROC5-rcp85-1-0 derived data prepared for input4MIPs" + }, + "MRI-JRA55-do-1-3":{ + "source":"MRI JRA55-do 1.3: Atmospheric state generated for OMIP based on the JRA-55 reanalysis" + }, + "MRI-JRA55-do-1-3-2":{ + "comment":"Based on JRA-55 reanalysis (1958-01 to 2019-01)", + "contact":"Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", + "dataset_category":"atmosphericState", + "further_info_url":"http://climate.mri-jma.go.jp/~htsujino/jra55do.html", + "institution":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", + "institution_id":"MRI", + "product":"reanalysis", + "references":"Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", + "region":[ + "global_ocean" + ], + "release_year":"2019", + "source":"MRI JRA55-do 1.3.2: Atmospheric state generated for OMIP based on the JRA-55 reanalysis", + "source_description":"Atmospheric state and terrestrial runoff datasets produced by MRI for the OMIP experiment of CMIP6", + "source_id":"MRI-JRA55-do-1-3-2", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "friver", + "huss", + "licalvf", + "prra", + "prsn", + "psl", + "rlds", + "sftof", + "siconc", + "siconca", + "sos", + "tas", + "tos", + "ts", + "uas", + "uos", + "vas", + "vos" + ], + "source_version":"1.3.2", + "target_mip":"OMIP", + "title":"MRI JRA55-do 1.3.2 dataset prepared for input4MIPs" + }, + "MRI-JRA55-do-1-4-0":{ + "comment":"Based on JRA-55 reanalysis (1958-01 to 2019-01)", + "contact":"Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", + "dataset_category":"atmosphericState", + "further_info_url":"http://climate.mri-jma.go.jp/~htsujino/jra55do.html", + "institution":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", + "institution_id":"MRI", + "product":"reanalysis", + "references":"Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", + "region":[ + "global_ocean" + ], + "release_year":"2019", + "source":"MRI JRA55-do 1.4.0: Atmospheric state generated for OMIP based on the JRA-55 reanalysis", + "source_description":"Atmospheric state and terrestrial runoff datasets produced by MRI for the OMIP experiment of CMIP6", + "source_id":"MRI-JRA55-do-1-4-0", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "friver", + "huss", + "licalvf", + "prra", + "prsn", + "psl", + "rlds", + "sftof", + "siconc", + "siconca", + "sos", + "tas", + "tos", + "ts", + "uas", + "uos", + "vas", + "vos" + ], + "source_version":"1.4.0", + "target_mip":"OMIP", + "title":"MRI JRA55-do 1.4.0 dataset prepared for input4MIPs" + }, + "MRI-JRA55-do-1-5-0":{ + "comment":"Based on JRA-55 reanalysis (1958-01 to 2020-07)", + "contact":"Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", + "dataset_category":"atmosphericState", + "further_info_url":"http://climate.mri-jma.go.jp/~htsujino/jra55do.html", + "institution":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", + "institution_id":"MRI", + "product":"reanalysis", + "references":"Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", + "region":[ + "global_ocean" + ], + "release_year":"2020", + "source":"MRI JRA55-do 1.5.0: Atmospheric state generated for OMIP based on the JRA-55 reanalysis", + "source_description":"Atmospheric state and terrestrial runoff datasets produced by MRI for the OMIP experiment of CMIP6", + "source_id":"MRI-JRA55-do-1-5-0", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "friver", + "huss", + "licalvf", + "prra", + "prsn", + "psl", + "rlds", + "sftof", + "siconc", + "siconca", + "sos", + "tas", + "tos", + "ts", + "uas", + "uos", + "vas", + "vos" + ], + "source_version":"1.5.0", + "target_mip":"OMIP", + "title":"MRI JRA55-do 1.5.0 dataset prepared for input4MIPs" + }, + "NorESM1-M-rcp26-1-0":{ + "comment":"Prepared using CMIP5 model NorESM1-M as input. A combination of historical and rcp26 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"NorESM1-M-rcp26-1-0 derived dataset computed from CMIP5 NorESM1-M historical and rcp26 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"NorESM1-M-rcp26-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - NorESM1-M-rcp26-1-0 derived data prepared for input4MIPs" + }, + "NorESM1-M-rcp85-1-0":{ + "comment":"Prepared using CMIP5 model NorESM1-M as input. A combination of historical and rcp85 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"NorESM1-M-rcp85-1-0 derived dataset computed from CMIP5 NorESM1-M historical and rcp85 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"NorESM1-M-rcp85-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - NorESM1-M-rcp85-1-0 derived data prepared for input4MIPs" + }, + "PCMDI-AMIP-1-1-3":{ + "source":"PCMDI-AMIP 1.1.3: Merged SST based on UK MetOffice HadISST and NCEP OI2" + }, + "PCMDI-AMIP-1-1-4":{ + "comment":"Based on Hurrell SST/sea ice consistency criteria applied to merged HadISST (1870-01 to 1981-10) & NCEP-0I2 (1981-11 to 2017-12)", + "contact":"PCMDI (pcmdi-cmip@llnl.gov)", + "dataset_category":"SSTsAndSeaIce", + "further_info_url":"https://pcmdi.llnl.gov/mips/amip", + "grid":"1x1 degree longitude x latitude", + "grid_label":"gn", + "institution":"Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA", + "institution_id":"PCMDI", + "nominal_resolution":"1x1 degree", + "product":"observations", + "references":"Taylor, K.E., D. Williamson and F. Zwiers, 2000: The sea surface temperature and sea ice concentration boundary conditions for AMIP II simulations. PCMDI Report 60, Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, 25 pp. Available online: https://pcmdi.llnl.gov/report/pdf/60.pdf", + "region":[ + "global_ocean" + ], + "release_year":"2018", + "source":"PCMDI-AMIP 1.1.4: Merged SST based on UK MetOffice HadISST and NCEP OI2", + "source_description":"Sea surface temperature and sea-ice datasets produced by PCMDI (LLNL) for the AMIP (DECK) experiment of CMIP6", + "source_id":"PCMDI-AMIP-1-1-4", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "sftof", + "siconc", + "siconcbcs", + "tos", + "tosbcs" + ], + "source_version":"1.1.4", + "target_mip":"CMIP", + "title":"PCMDI-AMIP 1.1.4 dataset prepared for input4MIPs" + }, + "PCMDI-AMIP-1-1-5":{ + "comment":"Based on Hurrell SST/sea ice consistency criteria applied to merged HadISST (1870-01 to 1981-10) & NCEP-0I2 (1981-11 to 2018-06)", + "contact":"PCMDI (pcmdi-cmip@llnl.gov)", + "dataset_category":"SSTsAndSeaIce", + "further_info_url":"https://pcmdi.llnl.gov/mips/amip", + "grid":"1x1 degree longitude x latitude", + "grid_label":"gn", + "institution":"Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA", + "institution_id":"PCMDI", + "nominal_resolution":"1x1 degree", + "product":"observations", + "references":"Taylor, K.E., D. Williamson and F. Zwiers, 2000: The sea surface temperature and sea ice concentration boundary conditions for AMIP II simulations. PCMDI Report 60, Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, 25 pp. Available online: https://pcmdi.llnl.gov/report/pdf/60.pdf", + "region":[ + "global_ocean" + ], + "release_year":"2018", + "source":"PCMDI-AMIP 1.1.5: Merged SST based on UK MetOffice HadISST and NCEP OI2", + "source_description":"Sea surface temperature and sea-ice datasets produced by PCMDI (LLNL) for the AMIP (DECK) experiment of CMIP6", + "source_id":"PCMDI-AMIP-1-1-5", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "sftof", + "siconc", + "siconcbcs", + "tos", + "tosbcs" + ], + "source_version":"1.1.5", + "target_mip":"CMIP", + "title":"PCMDI-AMIP 1.1.5 dataset prepared for input4MIPs" + }, + "PCMDI-AMIP-1-1-6":{ + "comment":"Based on Hurrell SST/sea ice consistency criteria applied to merged HadISST (1870-01 to 1981-10) & NCEP-0I2 (1981-11 to 2018-12)", + "contact":"PCMDI (pcmdi-cmip@llnl.gov)", + "dataset_category":"SSTsAndSeaIce", + "further_info_url":"https://pcmdi.llnl.gov/mips/amip", + "grid":"1x1 degree longitude x latitude", + "grid_label":"gn", + "institution":"Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA", + "institution_id":"PCMDI", + "nominal_resolution":"1x1 degree", + "product":"observations", + "references":"Taylor, K.E., D. Williamson and F. Zwiers, 2000: The sea surface temperature and sea ice concentration boundary conditions for AMIP II simulations. PCMDI Report 60, Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, 25 pp. Available online: https://pcmdi.llnl.gov/report/pdf/60.pdf", + "region":[ + "global_ocean" + ], + "release_year":"2019", + "source":"PCMDI-AMIP 1.1.6: Merged SST based on UK MetOffice HadISST and NCEP OI2", + "source_description":"Sea surface temperature and sea-ice datasets produced by PCMDI (LLNL) for the AMIP (DECK) experiment of CMIP6", + "source_id":"PCMDI-AMIP-1-1-6", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "sftof", + "siconc", + "siconcbcs", + "tos", + "tosbcs" + ], + "source_version":"1.1.6", + "target_mip":"CMIP", + "title":"PCMDI-AMIP 1.1.6 dataset prepared for input4MIPs" + }, + "PCMDI-AMIP-1-2-0":{ + "comment":"Based on Hurrell SST/sea ice consistency criteria applied to merged HadISST (1870-01 to 1981-10) & NCEP-0I2 (1981-11 to 2019-06)", + "contact":"PCMDI (pcmdi-cmip@llnl.gov)", + "dataset_category":"SSTsAndSeaIce", + "further_info_url":"https://pcmdi.llnl.gov/mips/amip", + "grid":"1x1 degree longitude x latitude", + "grid_label":"gn", + "institution":"Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA", + "institution_id":"PCMDI", + "nominal_resolution":"1x1 degree", + "product":"observations", + "references":"Taylor, K.E., D. Williamson and F. Zwiers, 2000: The sea surface temperature and sea ice concentration boundary conditions for AMIP II simulations. PCMDI Report 60, Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, 25 pp. Available online: https://pcmdi.llnl.gov/report/pdf/60.pdf", + "region":[ + "global_ocean" + ], + "release_year":"2020", + "source":"PCMDI-AMIP 1.2.0: Merged SST based on UK MetOffice HadISST and NCEP OI2", + "source_description":"Sea surface temperature and sea-ice datasets produced by PCMDI (LLNL) for the AMIP (DECK) experiment of CMIP6", + "source_id":"PCMDI-AMIP-1-2-0", + "source_type":"satellite_blended", + "source_variables":[ + "areacello", + "sftof", + "siconc", + "siconcbcs", + "tos", + "tosbcs" + ], + "source_version":"1.2.0", + "target_mip":"CMIP", + "title":"PCMDI-AMIP 1.2.0 dataset prepared for input4MIPs" + }, + "UKESM1-0-LL-ssp585-1-0":{ + "comment":"Prepared using CMIP6 model UKESM1-0-LL as input. A combination of historical and ssp585 datasets were used to create this ISMIP6 forcing dataset", + "contact":"ISMIP6 Steering Team (ismip6@gmail.com)", + "dataset_category":"surfaceFluxes", + "further_info_url":"http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6_wiki_page", + "institution":"NASA Goddard Space Flight Center, Greenbelt, MD 20771, USA", + "institution_id":"NASA-GSFC", + "nominal_resolution":"10 km", + "product":"derived", + "references":"Experimental protocol for sealevel projections from ISMIP6 standalone ice sheet models, Nowicki, S. et al, 2020, https://doi.org/10.5194/tc-2019-322", + "release_year":"2020", + "source":"UKESM1-0-LL-ssp585-1-0 derived dataset computed from CMIP6 UKESM1-0-LL historical and ssp585 simulations for ISMIP6", + "source_description":"Ice sheet relevant datasets produced by the ISMIP6 Team for the standalone ice sheet experiment of ISMIP6", + "source_id":"UKESM1-0-LL-ssp585-1-0", + "source_type":"AOGCM", + "source_variables":[ + "acabf", + "evspsbl", + "mrros", + "pr", + "sftflf", + "so", + "ts" + ], + "source_version":"1.0", + "target_mip":"ISMIP6", + "title":"ISMIP6 (CMIP6) - UKESM1-0-LL-ssp585-1-0 derived data prepared for input4MIPs" + } + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIday.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIday.json new file mode 100644 index 0000000..1ed5856 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIday.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"30.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"olevel olevhalf", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"landIce", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_LIday" + }, + "variable_entry":{ + "licalvf":{ + "cell_measures":"area: areacellg", + "cell_methods":"area: time: mean where ice_sheet", + "comment":"Computed as the flux of solid ice into the ocean divided by the area of the land portion of the grid cell", + "dimensions":"longitude latitude time", + "frequency":"day", + "long_name":"Land Ice Calving Flux", + "modeling_realm":"landIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"licalvf", + "positive":"", + "standard_name":"land_ice_specific_mass_flux_due_to_calving", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrC.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrC.json new file mode 100644 index 0000000..6d7b41b --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrC.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"30.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"olevel olevhalf", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"landIce", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_LIyrC" + }, + "variable_entry":{ + "licalvf":{ + "cell_measures":"area: areacellg", + "cell_methods":"area: time: mean where ice_sheet", + "comment":"Computed as the flux of solid ice into the ocean divided by the area of the land portion of the grid cell", + "dimensions":"longitude latitude time2", + "frequency":"yrC", + "long_name":"Land Ice Calving Flux", + "modeling_realm":"landIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"licalvf", + "positive":"", + "standard_name":"land_ice_specific_mass_flux_due_to_calving", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Lday.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Lday.json new file mode 100644 index 0000000..0eb3deb --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Lday.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"30.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"land", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_Lday" + }, + "variable_entry":{ + "friver":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean where sea time: mean", + "comment":"computed as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell", + "dimensions":"longitude latitude time", + "frequency":"day", + "long_name":"Water Flux into Sea Water from Rivers", + "modeling_realm":"land", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"friver", + "positive":"", + "standard_name":"water_flux_into_sea_water_from_rivers", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Oday.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Oday.json new file mode 100644 index 0000000..4b54bc9 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Oday.json @@ -0,0 +1,72 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"30.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"olevel olevhalf", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"ocean", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_Oday" + }, + "variable_entry":{ + "ficeberg2d":{ + "cell_measures":"area: areacello", + "cell_methods":"area: mean where sea time: mean", + "comment":"computed as the iceberg melt water flux into the ocean divided by the area of the ocean portion of the grid cell", + "dimensions":"longitude latitude time", + "frequency":"day", + "long_name":"Water Flux into Sea Water from Icebergs", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"ficeberg", + "positive":"", + "standard_name":"water_flux_into_sea_water_from_icebergs", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + }, + "friver":{ + "cell_measures":"area: areacello", + "cell_methods":"area: mean where sea time: mean", + "comment":"computed as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell", + "dimensions":"longitude latitude time", + "frequency":"day", + "long_name":"Water Flux into Sea Water from Rivers", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"friver", + "positive":"", + "standard_name":"water_flux_into_sea_water_from_rivers", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + }, + "tos":{ + "cell_measures":"area: areacello", + "cell_methods":"area: mean where sea time: mean", + "comment":"Temperature of upper boundary of the liquid ocean, including temperatures below sea-ice and floating ice shelves", + "dimensions":"longitude latitude time", + "frequency":"day", + "long_name":"Sea Surface Temperature", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"tos", + "positive":"", + "standard_name":"sea_surface_temperature", + "type":"real", + "units":"degC", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_OmonC.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_OmonC.json new file mode 100644 index 0000000..bf9151b --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_OmonC.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"30.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"olevel olevhalf", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"ocean", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_OmonC" + }, + "variable_entry":{ + "sos":{ + "cell_measures":"area: areacello", + "cell_methods":"area: mean where sea time: mean", + "comment":"Sea water salinity is the salt content of sea water, often on the Practical Salinity Scale of 1978. However, the unqualified term 'salinity' is generic and does not necessarily imply any particular method of calculation. The units of salinity are dimensionless and the units attribute should normally be given as 1e-3 or 0.001 i.e. parts per thousand. ", + "dimensions":"longitude latitude time2", + "frequency":"monC", + "long_name":"Sea Surface Salinity", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"sos", + "positive":"", + "standard_name":"sea_surface_salinity", + "type":"real", + "units":"0.001", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_OyrC.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_OyrC.json new file mode 100644 index 0000000..b1e1973 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_OyrC.json @@ -0,0 +1,54 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"30.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"olevel olevhalf", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"ocean", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_OyrC" + }, + "variable_entry":{ + "uos":{ + "cell_measures":"--OPT", + "cell_methods":"area: mean where sea time: mean", + "comment":"Prognostic x-ward velocity component resolved by the model", + "dimensions":"longitude latitude time2", + "frequency":"yrC", + "long_name":"Sea Water X Velocity", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"uos", + "positive":"", + "standard_name":"sea_water_x_velocity", + "type":"real", + "units":"m s-1", + "valid_max":"", + "valid_min":"" + }, + "vos":{ + "cell_measures":"--OPT", + "cell_methods":"area: mean where sea time: mean", + "comment":"Prognostic y-ward velocity component resolved by the model", + "dimensions":"longitude latitude time2", + "frequency":"yrC", + "long_name":"Sea Water Y Velocity", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"vos", + "positive":"", + "standard_name":"sea_water_y_velocity", + "type":"real", + "units":"m s-1", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SI3hrPt.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SI3hrPt.json new file mode 100644 index 0000000..84fc7e4 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SI3hrPt.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"0.125000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"seaIce", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_SI3hrPt" + }, + "variable_entry":{ + "siconca":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean time: point", + "comment":"Percentage of grid cell covered by sea ice", + "dimensions":"longitude latitude time1 typesi", + "frequency":"3hrPt", + "long_name":"Sea-Ice Area Percentage (Atmospheric Grid)", + "modeling_realm":"seaIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"siconca", + "positive":"", + "standard_name":"sea_ice_area_fraction", + "type":"real", + "units":"%", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SIday.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SIday.json new file mode 100644 index 0000000..0e53ece --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SIday.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"1.00000", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "generic_levels":"", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"seaIce", + "table_date":"14 September 2020", + "table_id":"Table input4MIPs_SIday" + }, + "variable_entry":{ + "siconc":{ + "cell_measures":"area: areacello", + "cell_methods":"area: mean where sea time: mean", + "comment":"Percentage of grid cell covered by sea ice", + "dimensions":"longitude latitude time typesi", + "frequency":"day", + "long_name":"Sea-Ice Area Percentage (Ocean Grid)", + "modeling_realm":"seaIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"siconc", + "positive":"", + "standard_name":"sea_ice_area_fraction", + "type":"real", + "units":"%", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_coordinate.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_coordinate.json new file mode 100644 index 0000000..6e36dda --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_coordinate.json @@ -0,0 +1,3226 @@ +{ + "axis_entry":{ + "alt16":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"altitude", + "must_have_bounds":"yes", + "out_name":"alt16", + "positive":"up", + "requested":[ + "0", + "250", + "750", + "1250", + "1750", + "2250", + "2750", + "3500", + "4500", + "6000", + "8000", + "10000", + "12000", + "14500", + "16000", + "18000" + ], + "requested_bounds":[ + "-99000.0", + "0.0", + "0.0", + "500.0", + "500.0", + "1000.0", + "1000.0", + "1500.0", + "1500.0", + "2000.0", + "2000.0", + "2500.0", + "2500.0", + "3000.0", + "3000.0", + "4000.0", + "4000.0", + "5000.0", + "5000.0", + "7000.0", + "7000.0", + "9000.0", + "9000.0", + "11000.0", + "11000.0", + "13000.0", + "13000.0", + "15000.0", + "15000.0", + "17000.0", + "17000.0", + "99000.0" + ], + "standard_name":"altitude", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "alt40":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"altitude", + "must_have_bounds":"yes", + "out_name":"alt40", + "positive":"up", + "requested":[ + "240.", + "720.", + "1200.", + "1680.", + "2160.", + "2640.", + "3120.", + "3600.", + "4080.", + "4560.", + "5040.", + "5520.", + "6000.", + "6480.", + "6960.", + "7440.", + "7920.", + "8400.", + "8880.", + "9360.", + "9840.", + "10320.", + "10800.", + "11280.", + "11760.", + "12240.", + "12720.", + "13200.", + "13680.", + "14160.", + "14640.", + "15120.", + "15600.", + "16080.", + "16560.", + "17040.", + "17520.", + "18000.", + "18480.", + "18960." + ], + "requested_bounds":[ + "0.0", + "480.0", + "480.0", + "960.0", + "960.0", + "1440.0", + "1440.0", + "1920.0", + "1920.0", + "2400.0", + "2400.0", + "2880.0", + "2880.0", + "3360.0", + "3360.0", + "3840.0", + "3840.0", + "4320.0", + "4320.0", + "4800.0", + "4800.0", + "5280.0", + "5280.0", + "5760.0", + "5760.0", + "6240.0", + "6240.0", + "6720.0", + "6720.0", + "7200.0", + "7200.0", + "7680.0", + "7680.0", + "8160.0", + "8160.0", + "8640.0", + "8640.0", + "9120.0", + "9120.0", + "9600.0", + "9600.0", + "10080.0", + "10080.0", + "10560.0", + "10560.0", + "11040.0", + "11040.0", + "11520.0", + "11520.0", + "12000.0", + "12000.0", + "12480.0", + "12480.0", + "12960.0", + "12960.0", + "13440.0", + "13440.0", + "13920.0", + "13920.0", + "14400.0", + "14400.0", + "14880.0", + "14880.0", + "15360.0", + "15360.0", + "15840.0", + "15840.0", + "16320.0", + "16320.0", + "16800.0", + "16800.0", + "17280.0", + "17280.0", + "17760.0", + "17760.0", + "18240.0", + "18240.0", + "18720.0", + "18720.0", + "19200.0" + ], + "standard_name":"altitude", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "alternate_hybrid_sigma":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"p = ap + b*ps", + "generic_level_name":"alevel", + "long_name":"hybrid sigma pressure coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_hybrid_sigma_pressure_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"1", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"ap: ap_bnds b: b_bnds ps: ps", + "z_factors":"ap: ap b: b ps: ps" + }, + "alternate_hybrid_sigma_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"p = ap + b*ps", + "generic_level_name":"alevhalf", + "long_name":"hybrid sigma pressure coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_hybrid_sigma_pressure_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"1", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"ap: ap b: b ps: ps" + }, + "basin":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"ocean basin", + "must_have_bounds":"no", + "out_name":"basin", + "positive":"", + "requested":[ + "atlantic_arctic_ocean", + "indian_pacific_ocean", + "global_ocean" + ], + "requested_bounds":"", + "standard_name":"region", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "dbze":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"CloudSat simulator equivalent radar reflectivity factor", + "must_have_bounds":"yes", + "out_name":"dbze", + "positive":"", + "requested":[ + "-47.5", + "-42.5", + "-37.5", + "-32.5", + "-27.5", + "-22.5", + "-17.5", + "-12.5", + "-7.5", + "-2.5", + "2.5", + "7.5", + "12.5", + "17.5", + "22.5" + ], + "requested_bounds":[ + "-50.0", + "-45.0", + "-45.0", + "-40.0", + "-40.0", + "-35.0", + "-35.0", + "-30.0", + "-30.0", + "-25.0", + "-25.0", + "-20.0", + "-20.0", + "-15.0", + "-15.0", + "-10.0", + "-10.0", + "-5.0", + "-5.0", + "0.0", + "0.0", + "5.0", + "5.0", + "10.0", + "10.0", + "15.0", + "15.0", + "20.0", + "20.0", + "25.0" + ], + "standard_name":"equivalent_reflectivity_factor", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"dBZ", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth0m":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"no", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"100.0", + "valid_min":"0.0", + "value":"0.", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth100m":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"no", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"120.0", + "valid_min":"80.0", + "value":"100.", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth2000m":{ + "axis":"Z", + "bounds_values":"0.0 2000.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"2000.0", + "valid_min":"0.0", + "value":"1000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth300m":{ + "axis":"Z", + "bounds_values":"0.0 300.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"300.0", + "valid_min":"0.0", + "value":"150.", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth700m":{ + "axis":"Z", + "bounds_values":"0.0 700.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"700.0", + "valid_min":"0.0", + "value":"350.", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth_coord":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"olevel", + "long_name":"ocean depth coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"", + "units":"m", + "valid_max":"12000.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "depth_coord_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"olevhalf", + "long_name":"ocean depth coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"", + "units":"m", + "valid_max":"12000.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "effectRadIc":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Effective Radius [Values to be specified]", + "must_have_bounds":"yes", + "out_name":"effectRadIc", + "positive":"", + "requested":[ + "5.", + "15.", + "25.", + "35.", + "50.", + "75." + ], + "requested_bounds":[ + "0.0", + "10.0", + "10.0", + "20.0", + "20.0", + "30.0", + "30.0", + "40.0", + "40.0", + "60.0", + "60.0", + "90.0" + ], + "standard_name":"effective_radius_of_convective_cloud_ice_particles", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"micron", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "effectRadLi":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Effective Radius [Values to be specified]", + "must_have_bounds":"yes", + "out_name":"effectRadLi", + "positive":"", + "requested":[ + "4.", + "9.", + "11.5", + "14.", + "17.5", + "25." + ], + "requested_bounds":[ + "0.0", + "8.0", + "8.0", + "10.0", + "10.0", + "13.0", + "13.0", + "15.0", + "15.0", + "20.0", + "20.0", + "30.0" + ], + "standard_name":"effective_radius_of_cloud_liquid_water_particles", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"micron", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "gridlatitude":{ + "axis":"Y", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Grid Latitude", + "must_have_bounds":"yes", + "out_name":"rlat", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"grid_latitude", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"degrees", + "valid_max":"90.0", + "valid_min":"-90.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "height100m":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"height", + "must_have_bounds":"no", + "out_name":"height", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"height", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"120.0", + "valid_min":"80.0", + "value":"100.", + "z_bounds_factors":"", + "z_factors":"" + }, + "height10m":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"height", + "must_have_bounds":"no", + "out_name":"height", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"height", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"30.0", + "valid_min":"1.0", + "value":"10.", + "z_bounds_factors":"", + "z_factors":"" + }, + "height2m":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"height", + "must_have_bounds":"no", + "out_name":"height", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"height", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"10.0", + "valid_min":"1.0", + "value":"2.", + "z_bounds_factors":"", + "z_factors":"" + }, + "hybrid_height":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"z = a + b*orog", + "generic_level_name":"alevel", + "long_name":"hybrid height coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_hybrid_height_coordinate", + "stored_direction":"increasing", + "tolerance":"", + "type":"", + "units":"m", + "valid_max":"", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"a: lev_bnds b: b_bnds orog: orog", + "z_factors":"a: lev b: b orog: orog" + }, + "hybrid_height_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"z = a + b*orog", + "generic_level_name":"alevhalf", + "long_name":"hybrid height coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_hybrid_height_coordinate", + "stored_direction":"increasing", + "tolerance":"", + "type":"", + "units":"m", + "valid_max":"", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"a: lev b: b orog: orog" + }, + "iceband":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Ice Depth Band", + "must_have_bounds":"yes", + "out_name":"iceband", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"sea_ice_thickness", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "lambda550nm":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Radiation Wavelength 550 nanometers", + "must_have_bounds":"no", + "out_name":"wavelength", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"radiation_wavelength", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"nm", + "valid_max":"", + "valid_min":"", + "value":"550.0", + "z_bounds_factors":"", + "z_factors":"" + }, + "landUse":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Land use type", + "must_have_bounds":"no", + "out_name":"landuse", + "positive":"", + "requested":[ + "primary_and_secondary_land", + "pastures", + "crops", + "urban" + ], + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "latitude":{ + "axis":"Y", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Latitude", + "must_have_bounds":"yes", + "out_name":"lat", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"latitude", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"degrees_north", + "valid_max":"90.0", + "valid_min":"-90.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "longitude":{ + "axis":"X", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Longitude", + "must_have_bounds":"yes", + "out_name":"lon", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"longitude", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"degrees_east", + "valid_max":"360.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "ocean_sigma":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))", + "generic_level_name":"olevel", + "long_name":"ocean sigma coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"ocean_sigma_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"", + "valid_max":"0.0", + "valid_min":"-1.0", + "value":"", + "z_bounds_factors":"sigma: lev_bnds eta: eta depth: depth", + "z_factors":"sigma: lev eta: eta depth: depth" + }, + "ocean_sigma_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))", + "generic_level_name":"olevhalf", + "long_name":"ocean sigma coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"up", + "requested":"", + "requested_bounds":"", + "standard_name":"ocean_sigma_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"", + "valid_max":"0.0", + "valid_min":"-1.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"sigma: lev eta: eta depth: depth" + }, + "ocean_sigma_z":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"for k <= nsigma: z(n,k,j,i) = eta(n,j,i) + sigma(k)*(min(depth_c,depth(j,i))+eta(n,j,i)) ; for k > nsigma: z(n,k,j,i) = zlev(k)", + "generic_level_name":"olevel", + "long_name":"ocean sigma over z coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"ocean_sigma_z_coordinate", + "stored_direction":"", + "tolerance":"", + "type":"", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"sigma: lev_bnds eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev_bnds", + "z_factors":"sigma: lev eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev" + }, + "ocean_sigma_z_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"for k <= nsigma: z(n,k,j,i) = eta(n,j,i) + sigma(k)*(min(depth_c,depth(j,i))+eta(n,j,i)) ; for k > nsigma: z(n,k,j,i) = zlev(k)", + "generic_level_name":"olevhalf", + "long_name":"ocean sigma over z coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"ocean_sigma_z_coordinate", + "stored_direction":"", + "tolerance":"", + "type":"", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"sigma: lev eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev" + }, + "olayer100m":{ + "axis":"Z", + "bounds_values":"0.0 100.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"100.0", + "valid_min":"0.0", + "value":"50.", + "z_bounds_factors":"", + "z_factors":"" + }, + "oline":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"ocean passage", + "must_have_bounds":"no", + "out_name":"line", + "positive":"", + "requested":[ + "barents_opening", + "bering_strait", + "windward_passage", + "davis_strait", + "denmark_strait", + "drake_passage", + "english_channel", + "faroe_scotland_channel", + "florida_bahamas_strait", + "fram_strait", + "gibraltar_strait", + "iceland_faroe_channel", + "indonesian_throughflow", + "mozambique_channel", + "pacific_equatorial_undercurrent", + "taiwan_luzon_straits" + ], + "requested_bounds":"", + "standard_name":"region", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "p10":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"1000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p100":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"10000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p1000":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"100000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p200":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"20000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p220":{ + "axis":"Z", + "bounds_values":"44000.0 0.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"yes", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"22000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p500":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"50000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p560":{ + "axis":"Z", + "bounds_values":"68000.0 44000.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"yes", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"56000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p700":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"70000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p840":{ + "axis":"Z", + "bounds_values":"100000.0 68000.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"yes", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"84000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "p850":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"85000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "pl700":{ + "axis":"Z", + "bounds_values":"85000.0 60000.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"yes", + "out_name":"plev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"70000.", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev19":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "100000.", + "92500.", + "85000.", + "70000.", + "60000.", + "50000.", + "40000.", + "30000.", + "25000.", + "20000.", + "15000.", + "10000.", + "7000.", + "5000.", + "3000.", + "2000.", + "1000.", + "500.", + "100." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev23":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "100000.", + "92500.", + "85000.", + "70000.", + "60000.", + "50000.", + "40000.", + "30000.", + "25000.", + "20000.", + "15000.", + "10000.", + "7000.", + "5000.", + "3000.", + "2000.", + "1000.", + "700.", + "500.", + "300.", + "200.", + "100.", + "40." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev27":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "100000.", + "97500.", + "95000.", + "92500.", + "90000.", + "87500.", + "85000.", + "82500.", + "80000.", + "77500.", + "75000.", + "70000.", + "65000.", + "60000.", + "55000.", + "50000.", + "45000.", + "40000.", + "35000.", + "30000.", + "25000.", + "22500.", + "20000.", + "17500.", + "15000.", + "12500.", + "10000." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev3":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "85000.", + "50000.", + "25000." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev39":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "100000.", + "92500.", + "85000.", + "70000.", + "60000.", + "50000.", + "40000.", + "30000.", + "25000.", + "20000.", + "17000.", + "15000.", + "13000.", + "11500.", + "10000.", + "9000.", + "8000.", + "7000.", + "5000.", + "3000.", + "2000.", + "1500.", + "1000.", + "700.", + "500.", + "300.", + "200.", + "150.", + "100.", + "70.", + "50.", + "40.", + "30.", + "20.", + "15.", + "10.", + "7.", + "5.", + "3." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev3h":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "10000.", + "1000.", + "100." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev4":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "92500.", + "85000.", + "50000.", + "25000." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev7c":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"yes", + "out_name":"plev", + "positive":"down", + "requested":[ + "90000.", + "74000.", + "62000.", + "50000.", + "37500.", + "24500.", + "9000." + ], + "requested_bounds":[ + "100000.0", + "80000.0", + "80000.0", + "68000.0", + "68000.0", + "56000.0", + "56000.0", + "44000.0", + "44000.0", + "31000.0", + "31000.0", + "18000.0", + "18000.0", + "0.0" + ], + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev7h":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "92500.", + "85000.", + "70000.", + "60000.", + "50000.", + "25000.", + "5000." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "plev8":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"pressure", + "must_have_bounds":"no", + "out_name":"plev", + "positive":"down", + "requested":[ + "100000.", + "85000.", + "70000.", + "50000.", + "25000.", + "10000.", + "5000.", + "1000." + ], + "requested_bounds":"", + "standard_name":"air_pressure", + "stored_direction":"decreasing", + "tolerance":"", + "type":"double", + "units":"Pa", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "rho":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"potential density referenced to 2000 dbar", + "must_have_bounds":"yes", + "out_name":"rho", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"sea_water_potential_density", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"kg m-3", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "scatratio":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"lidar backscattering ratio", + "must_have_bounds":"yes", + "out_name":"scatratio", + "positive":"", + "requested":[ + "0.005", + "0.605", + "2.1", + "4.", + "6.", + "8.5", + "12.5", + "17.5", + "22.5", + "27.5", + "35.", + "45.", + "55.", + "70.", + "50040." + ], + "requested_bounds":[ + "0.0", + "0.01", + "0.01", + "1.2", + "1.2", + "3.0", + "3.0", + "5.0", + "5.0", + "7.0", + "7.0", + "10.0", + "10.0", + "15.0", + "15.0", + "20.0", + "20.0", + "25.0", + "25.0", + "30.0", + "30.0", + "40.0", + "40.0", + "50.0", + "50.0", + "60.0", + "60.0", + "80.0", + "80.0", + "100000.0" + ], + "standard_name":"backscattering_ratio_in_air", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"1", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "scatter180":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Scattering Angle", + "must_have_bounds":"no", + "out_name":"scatangle", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"scattering_angle", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"degree", + "valid_max":"", + "valid_min":"", + "value":"180.0", + "z_bounds_factors":"", + "z_factors":"" + }, + "sdepth":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"200.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "sdepth1":{ + "axis":"Z", + "bounds_values":"0.0 0.1", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"0.1", + "valid_min":"0.0", + "value":"0.05", + "z_bounds_factors":"", + "z_factors":"" + }, + "sdepth10":{ + "axis":"Z", + "bounds_values":"0.0 1.0", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"depth", + "must_have_bounds":"yes", + "out_name":"depth", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"depth", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"0.5", + "z_bounds_factors":"", + "z_factors":"" + }, + "siline":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"ocean passage", + "must_have_bounds":"no", + "out_name":"line", + "positive":"", + "requested":[ + "fram_strait,", + "canadian_archipelego,", + "barents_opening,", + "bering_strait" + ], + "requested_bounds":"", + "standard_name":"region", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "site":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"site index", + "must_have_bounds":"no", + "out_name":"site", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"", + "stored_direction":"", + "tolerance":"", + "type":"integer", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "sithreshold":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Sea Ice Area Fraction Threshold", + "must_have_bounds":"no", + "out_name":"threshold", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"sea_ice_area_fraction", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"%", + "valid_max":"", + "valid_min":"", + "value":"15.0", + "z_bounds_factors":"", + "z_factors":"" + }, + "snowband":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Snow Depth Band", + "must_have_bounds":"yes", + "out_name":"snowband", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"surface_snow_thickness", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"m", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "soilpools":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Soil Pools", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "spectband":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Spectral Frequency Band", + "must_have_bounds":"yes", + "out_name":"spectband", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"sensor_band_central_radiation_wavenumber", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"m-1", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "standard_hybrid_sigma":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"p = a*p0 + b*ps", + "generic_level_name":"alevel", + "long_name":"hybrid sigma pressure coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_hybrid_sigma_pressure_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"1", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"p0: p0 a: a_bnds b: b_bnds ps: ps", + "z_factors":"p0: p0 a: a b: b ps: ps" + }, + "standard_hybrid_sigma_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"p = a*p0 + b*ps", + "generic_level_name":"alevhalf", + "long_name":"hybrid sigma pressure coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_hybrid_sigma_pressure_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"1", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"p0: p0 a: a b: b ps: ps" + }, + "standard_sigma":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"p = ptop + sigma*(ps - ptop)", + "generic_level_name":"alevel", + "long_name":"sigma coordinate", + "must_have_bounds":"yes", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_sigma_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"ptop: ptop sigma: lev_bnds ps: ps", + "z_factors":"ptop: ptop sigma: lev ps: ps" + }, + "standard_sigma_half":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"p = ptop + sigma*(ps - ptop)", + "generic_level_name":"alevhalf", + "long_name":"sigma coordinate", + "must_have_bounds":"no", + "out_name":"lev", + "positive":"down", + "requested":"", + "requested_bounds":"", + "standard_name":"atmosphere_sigma_coordinate", + "stored_direction":"decreasing", + "tolerance":"", + "type":"", + "units":"", + "valid_max":"1.0", + "valid_min":"0.0", + "value":"", + "z_bounds_factors":"", + "z_factors":"ptop: ptop sigma: lev ps: ps" + }, + "stempzero":{ + "axis":"Z", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Soil Temperature Zero", + "must_have_bounds":"no", + "out_name":"stempzero", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"soil_temperature", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"degC", + "valid_max":"", + "valid_min":"", + "value":"0.0", + "z_bounds_factors":"", + "z_factors":"" + }, + "sza5":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"solar zenith angle", + "must_have_bounds":"no", + "out_name":"sza", + "positive":"", + "requested":[ + "0.", + "20.", + "40.", + "60.", + "80." + ], + "requested_bounds":"", + "standard_name":"solar_zenith_angle", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"degree", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "tau":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"cloud optical thickness", + "must_have_bounds":"yes", + "out_name":"tau", + "positive":"", + "requested":[ + "0.15", + "0.8", + "2.45", + "6.5", + "16.2", + "41.5", + "100." + ], + "requested_bounds":[ + "0.0", + "0.3", + "0.3", + "1.3", + "1.3", + "3.6", + "3.6", + "9.4", + "9.4", + "23.0", + "23.0", + "60.0", + "60.0", + "100000.0" + ], + "standard_name":"atmosphere_optical_thickness_due_to_cloud", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"1", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "time":{ + "axis":"T", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"time", + "must_have_bounds":"yes", + "out_name":"time", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"time", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"days since ?", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "time1":{ + "axis":"T", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"time", + "must_have_bounds":"no", + "out_name":"time", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"time", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"days since ?", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "time2":{ + "axis":"T", + "bounds_values":"", + "climatology":"yes", + "formula":"", + "generic_level_name":"", + "long_name":"time", + "must_have_bounds":"yes", + "out_name":"time", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"time", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"days since ?", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "time3":{ + "axis":"T", + "bounds_values":"", + "climatology":"yes", + "formula":"", + "generic_level_name":"", + "long_name":"time", + "must_have_bounds":"yes", + "out_name":"time", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"time", + "stored_direction":"increasing", + "tolerance":"", + "type":"double", + "units":"days since ?", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "typebare":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"bare_ground", + "z_bounds_factors":"", + "z_factors":"" + }, + "typeburnt":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Burnt vegetation area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"burnt_vegetation", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec3crop":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"crops_of_c3_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec3natg":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"C3 Natural grass area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"natural_grasses_of_c3_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec3pastures":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"C3 Pastures area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"pastures_of_c3_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec3pft":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"c3_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec4crop":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"crops_of_c4_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec4natg":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"C4 Natural grass area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"natural_grasses_of_c4_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec4pastures":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"C4 Pastures area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"pastures_of_c4_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typec4pft":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"c4_plant_functional_types", + "z_bounds_factors":"", + "z_factors":"" + }, + "typecloud":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Cloud area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"cloud", + "z_bounds_factors":"", + "z_factors":"" + }, + "typecrop":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Crop area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"crops", + "z_bounds_factors":"", + "z_factors":"" + }, + "typefis":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Floating Ice Shelf area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"floating_ice_shelf", + "z_bounds_factors":"", + "z_factors":"" + }, + "typegis":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Grounded Ice Sheet area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"grounded_ice_sheet", + "z_bounds_factors":"", + "z_factors":"" + }, + "typeland":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Land area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"land", + "z_bounds_factors":"", + "z_factors":"" + }, + "typeli":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Land Ice area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"land_ice", + "z_bounds_factors":"", + "z_factors":"" + }, + "typemp":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Melt pond area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"sea_ice_melt_pond", + "z_bounds_factors":"", + "z_factors":"" + }, + "typenatgr":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Natural grass area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"natural_grasses", + "z_bounds_factors":"", + "z_factors":"" + }, + "typenwd":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Non-Woody Vegetation area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"herbaceous_vegetation", + "z_bounds_factors":"", + "z_factors":"" + }, + "typepasture":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Pasture area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"pastures", + "z_bounds_factors":"", + "z_factors":"" + }, + "typepdec":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"primary_deciduous_trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typepever":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"primary_evergreen_trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typeresidual":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Residual area", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"residual", + "z_bounds_factors":"", + "z_factors":"" + }, + "typesdec":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"secondary_decidous_trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typesea":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Ocean area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"sea", + "z_bounds_factors":"", + "z_factors":"" + }, + "typesever":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"surface type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"secondary_evergreen_trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typeshrub":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Shrub area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"shrubs", + "z_bounds_factors":"", + "z_factors":"" + }, + "typesi":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Sea Ice area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"sea_ice", + "z_bounds_factors":"", + "z_factors":"" + }, + "typesirdg":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Sea Ice Ridge area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"sea_ice_ridges", + "z_bounds_factors":"", + "z_factors":"" + }, + "typetree":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Tree area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typetreebd":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Tree area type (Broadleaf Deciduous)", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typetreebe":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Tree area type (Broadleaf Evergreen)", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typetreend":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Tree area type (Needleleaf Deciduous)", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typetreene":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Tree area type (Needleleaf Evergreen)", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"trees", + "z_bounds_factors":"", + "z_factors":"" + }, + "typeveg":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Vegetation area type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"vegetation", + "z_bounds_factors":"", + "z_factors":"" + }, + "typewetla":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Wetland", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"area_type", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"wetland", + "z_bounds_factors":"", + "z_factors":"" + }, + "vegtype":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Vegetation or Land Cover Type", + "must_have_bounds":"no", + "out_name":"type", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"", + "stored_direction":"", + "tolerance":"", + "type":"character", + "units":"", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "xant":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"X-coordinate of Antarctic grid", + "must_have_bounds":"no", + "out_name":"xant", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"projection_x_coordinate", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"km", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "xgre":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"X-coordinate of Greenland grid", + "must_have_bounds":"no", + "out_name":"xgre", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"projection_x_coordinate", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"km", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "yant":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Y-coordinate of Antarctic grid", + "must_have_bounds":"no", + "out_name":"yant", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"projection_y_coordinate", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"km", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + }, + "ygre":{ + "axis":"", + "bounds_values":"", + "climatology":"", + "formula":"", + "generic_level_name":"", + "long_name":"Y-coordinate of Greenland grid", + "must_have_bounds":"no", + "out_name":"ygre", + "positive":"", + "requested":"", + "requested_bounds":"", + "standard_name":"projection_y_coordinate", + "stored_direction":"", + "tolerance":"", + "type":"double", + "units":"km", + "valid_max":"", + "valid_min":"", + "value":"", + "z_bounds_factors":"", + "z_factors":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_formula_terms.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_formula_terms.json new file mode 100644 index 0000000..7693529 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_formula_terms.json @@ -0,0 +1,204 @@ +{ + "formula_entry":{ + "a":{ + "dimensions":"alevel", + "long_name":"vertical coordinate formula term: a", + "out_name":"a", + "standard_name":"", + "type":"double", + "units":"" + }, + "a_bnds":{ + "dimensions":"alevel", + "long_name":"vertical coordinate formula term: a(k+1/2)", + "out_name":"a_bnds", + "standard_name":"", + "type":"double", + "units":"" + }, + "a_half":{ + "dimensions":"alevhalf", + "long_name":"vertical coordinate formula term: a(k)", + "out_name":"a", + "standard_name":"", + "type":"double", + "units":"" + }, + "ap":{ + "dimensions":"alevel", + "long_name":"vertical coordinate formula term: ap", + "out_name":"ap", + "standard_name":"", + "type":"double", + "units":"Pa" + }, + "ap_bnds":{ + "dimensions":"alevel", + "long_name":"vertical coordinate formula term: ap(k+1/2)", + "out_name":"ap_bnds", + "standard_name":"", + "type":"double", + "units":"Pa" + }, + "ap_half":{ + "dimensions":"alevhalf", + "long_name":"vertical coordinate formula term: ap(k)", + "out_name":"ap", + "standard_name":"", + "type":"double", + "units":"Pa" + }, + "b":{ + "dimensions":"alevel", + "long_name":"vertical coordinate formula term: b", + "out_name":"b", + "standard_name":"", + "type":"double", + "units":"" + }, + "b_bnds":{ + "dimensions":"alevel", + "long_name":"vertical coordinate formula term: b(k+1/2)", + "out_name":"b_bnds", + "standard_name":"", + "type":"double", + "units":"" + }, + "b_half":{ + "dimensions":"alevhalf", + "long_name":"vertical coordinate formula term: b(k)", + "out_name":"b", + "standard_name":"", + "type":"double", + "units":"" + }, + "depth":{ + "dimensions":"longitude latitude", + "long_name":"Sea Floor Depth", + "out_name":"depth", + "standard_name":"", + "type":"real", + "units":"m" + }, + "depth_c":{ + "dimensions":"", + "long_name":"vertical coordinate formula term: depth_c", + "out_name":"depth_c", + "standard_name":"", + "type":"double", + "units":"m" + }, + "eta":{ + "dimensions":"longitude latitude time", + "long_name":"Sea Surface Height", + "out_name":"eta", + "standard_name":"", + "type":"real", + "units":"m" + }, + "eta2":{ + "dimensions":"longitude latitude time2", + "long_name":"Sea Surface Height", + "out_name":"eta", + "standard_name":"", + "type":"real", + "units":"m" + }, + "k_c":{ + "dimensions":"", + "long_name":"vertical coordinate formula term: k_c", + "out_name":"k_c", + "standard_name":"", + "type":"integer", + "units":"" + }, + "nsigma":{ + "dimensions":"", + "long_name":"vertical coordinate formula term: nsigma", + "out_name":"nsigma", + "standard_name":"", + "type":"integer", + "units":"" + }, + "orog":{ + "dimensions":"longitude latitude", + "long_name":"Surface Altitude", + "out_name":"orog", + "standard_name":"", + "type":"real", + "units":"m" + }, + "orog2d":{ + "dimensions":"latitude", + "long_name":"Surface Altitude", + "out_name":"orog", + "standard_name":"", + "type":"real", + "units":"m" + }, + "p0":{ + "dimensions":"", + "long_name":"vertical coordinate formula term: reference pressure", + "out_name":"p0", + "standard_name":"reference_air_pressure_for_atmosphere_vertical_coordinate", + "type":"double", + "units":"Pa" + }, + "ps":{ + "dimensions":"longitude latitude time", + "long_name":"Surface Air Pressure", + "out_name":"ps", + "standard_name":"air_pressure", + "type":"real", + "units":"Pa" + }, + "ps1":{ + "dimensions":"longitude latitude time1", + "long_name":"Surface Air Pressure", + "out_name":"ps", + "standard_name":"air_pressure", + "type":"real", + "units":"Pa" + }, + "ps2":{ + "dimensions":"longitude latitude time2", + "long_name":"Surface Air Pressure", + "out_name":"ps", + "standard_name":"air_pressure", + "type":"real", + "units":"Pa" + }, + "ps2d":{ + "dimensions":"latitude time1", + "long_name":"Surface Air Pressure", + "out_name":"ps", + "standard_name":"air_pressure", + "type":"real", + "units":"Pa" + }, + "ptop":{ + "dimensions":"", + "long_name":"pressure at top of model", + "out_name":"ptop", + "standard_name":"air_pressure_at_top_of_atmosphere", + "type":"double", + "units":"Pa" + }, + "zlev":{ + "dimensions":"olevel", + "long_name":"vertical coordinate formula term: zlev(k)", + "out_name":"zlev", + "standard_name":"", + "type":"double", + "units":"m" + }, + "zlev_bnds":{ + "dimensions":"olevel", + "long_name":"vertical coordinate formula term: zlev(k+1/2)", + "out_name":"zlev_bnds", + "standard_name":"", + "type":"double", + "units":"m" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/mriJRA55-do-input.json b/demo/MRI-JMA-JRA55-do-1-5-0/mriJRA55-do-input.json new file mode 100644 index 0000000..e8f24cf --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/mriJRA55-do-input.json @@ -0,0 +1,34 @@ +{ + "_controlled_vocabulary_file": "input4MIPs_CV.json", + "_AXIS_ENTRY_FILE": "input4MIPs_coordinate.json", + "_FORMULA_VAR_FILE": "input4MIPs_formula_terms.json", + "activity_id": "input4MIPs", + + "calendar": "gregorian", + "dataset_category": "atmosphericState", + "frequency": "3hr", + "grid": "0.5x0.5 degree latitude x longitude", + "grid_label": "gn", + "nominal_resolution": "50 km", + "product": "reanalysis", + "realm": "ocean", + "region": "global_ocean", + "target_mip": "OMIP", + + "comment": "Based on JRA-55 reanalysis (1958-01 to 2020-07)", + "contact ": "Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", + "further_info_url": "http://climate.mri-jma.go.jp/~htsujino/jra55do.html", + "institution_id": "MRI", + "references": "Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", + "source_id": "MRI-JRA55-do-1-5-0", + "source": "MRI JRA55-do 1.5: Atmospheric state generated for OMIP based on the JRA-55 reanalysis", + "source_version": "1.5.0", + "title": "MRI JRA55-do 1.5 dataset prepared for input4MIPs", + + "outpath": ".", + "_history_template": "%s; CMOR rewrote data to be consistent with , CMIP6, and standards", + "output_path_template": "", + "output_file_template": "", + "tracking_prefix": "hdl:21.14100", + "license": "OMIP boundary condition data produced by MRI is licensed under a Creative Commons Attribution-[NonCommercial-]ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing input4MIPs output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file). The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law." +} diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/runCmorAllWrite-1-5-0-update.py b/demo/MRI-JMA-JRA55-do-1-5-0/runCmorAllWrite-1-5-0-update.py new file mode 100755 index 0000000..be01168 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/runCmorAllWrite-1-5-0-update.py @@ -0,0 +1,553 @@ +#!/usr/bin/env python +import cmor,json,os +import cdms2 as cdm +import cdtime as cdt +import numpy as np +from calendar import isleap +#cdm.setAutoBounds('on') # Caution, this attempts to automatically set coordinate bounds - please check outputs using this option +#import pdb ; # Debug statement - import if enabling debugging below + +# Notes +# PJD 5 Feb 2018 - Started +# PJD 21 Feb 2018 - Updated for CMOR3.3.1 +# PJD 24 Feb 2018 - Updated paths for demo dir +# PJD 7 Mar 2018 - Updated pr to prra +# PJD 8 Mar 2018 - Correct prra 'positive'; Added ficeberg2d placeholder +# PJD 5 Apr 2018 - Update for latest variable list +# TODO: Fix missing_value assignment problem +# ---> Is this going to be fixed by setting missing_value to 1e20 for the inputfile? +# This has been done for JRA55-do-v1.3.1 + +#%% Create input decks for all variables - 'fileList' will need to be amended to include all files 1958-2018 +inputDict = {} +inputDict['A3hr'] = {} +key = 'rain' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/rain.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'prrn' +inputDict['A3hr'][key]['outputVarName'] = 'prra' ; # Was pr +inputDict['A3hr'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['A3hr'][key]['positive'] = '' +key = 'snow' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/snow.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'prsn' +inputDict['A3hr'][key]['outputVarName'] = 'prsn' +inputDict['A3hr'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['A3hr'][key]['positive'] = '' +key = 'rlds' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/rlds.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'rlds' +inputDict['A3hr'][key]['outputVarName'] = 'rlds' +inputDict['A3hr'][key]['outputUnits'] = 'W m-2' +inputDict['A3hr'][key]['positive'] = 'down' +key = 'rsds' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/rsds.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'rsds' +inputDict['A3hr'][key]['outputVarName'] = 'rsds' +inputDict['A3hr'][key]['outputUnits'] = 'W m-2' +inputDict['A3hr'][key]['positive'] = 'down' +inputDict['A3hrPt'] = {} +key = 'q_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/q_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'huss_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'huss' +inputDict['A3hrPt'][key]['outputUnits'] = '1.0' +inputDict['A3hrPt'][key]['positive'] = '' +key = 'slp' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/slp.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'psl' +inputDict['A3hrPt'][key]['outputVarName'] = 'psl' +inputDict['A3hrPt'][key]['outputUnits'] = 'Pa' +inputDict['A3hrPt'][key]['positive'] = '' +key = 't_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/t_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'tas_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'tas' +inputDict['A3hrPt'][key]['outputUnits'] = 'K' +inputDict['A3hrPt'][key]['positive'] = '' +# +# You may wish to comment out "ts" because ocean models do not necessarily need this. +# -- below (1) -- +key = 'ts' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_suppl/brtmp.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'ts' +inputDict['A3hrPt'][key]['outputVarName'] = 'ts' +inputDict['A3hrPt'][key]['outputUnits'] = 'K' +inputDict['A3hrPt'][key]['positive'] = '' +# -- above (1) -- +key = 'u_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/u_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'uas_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'uas' +inputDict['A3hrPt'][key]['outputUnits'] = 'm s-1' +inputDict['A3hrPt'][key]['positive'] = '' +key = 'v_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/v_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'vas_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'vas' +inputDict['A3hrPt'][key]['outputUnits'] = 'm s-1' +inputDict['A3hrPt'][key]['positive'] = '' +# +# You may wish to comment out "LIday" and "Lday" if you do not prepare river discharge data. +# -- below (2) -- +inputDict['LIday'] = {} +key = 'licalvf' +inputDict['LIday'][key] = {} +inputDict['LIday'][key]['fileList'] = [ + 'input_atmos/solid_runoff.2020.24jul2020.nc' + ] +inputDict['LIday'][key]['inputVarName'] = 'licalvf' +inputDict['LIday'][key]['outputVarName'] = 'licalvf' +inputDict['LIday'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['LIday'][key]['positive'] = '' +inputDict['Lday'] = {} +key = 'friver' +inputDict['Lday'][key] = {} +inputDict['Lday'][key]['fileList'] = [ + 'input_atmos/liquid_runoff.2020.24jul2020.nc' + ] +inputDict['Lday'][key]['inputVarName'] = 'friver' +inputDict['Lday'][key]['outputVarName'] = 'friver' +inputDict['Lday'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['Lday'][key]['positive'] = '' +# -- above (2) -- +# You may wish to comment out "tos" because ocean models do not necessarily need this. +# -- below (3) -- +inputDict['Oday'] = {} +key = 'tos' +inputDict['Oday'][key] = {} +inputDict['Oday'][key]['fileList'] = [ + 'input_suppl/sst.COBESST.2020.24jul2020.nc' + ] +inputDict['Oday'][key]['inputVarName'] = 'tos' +inputDict['Oday'][key]['outputVarName'] = 'tos' +inputDict['Oday'][key]['outputUnits'] = 'degC' +inputDict['Oday'][key]['positive'] = '' +# -- above (3) -- +# ocean monthly mean climatology: These can be commented out because these are provided by a previous version. +# -- below (4) -- +#inputDict['OmonC'] = {} +#key = 's_u10a' +#inputDict['OmonC'][key] = {} +#inputDict['OmonC'][key]['fileList'] = [ +# 'input_clim/woa13_decav_s_0-10m.mon_01v2_filled.nc' +# ] +#inputDict['OmonC'][key]['inputVarName'] = 's_u10a' +#inputDict['OmonC'][key]['outputVarName'] = 'sos' +#inputDict['OmonC'][key]['outputUnits'] = '0.001' +#inputDict['OmonC'][key]['positive'] = '' +# -- above (4) -- +# ocean annual mean climatology: These can be commented out because these are provided by a previous version. +# -- below (5) -- +#inputDict['OyrC'] = {} +#key = 'uo' +#inputDict['OyrC'][key] = {} +#inputDict['OyrC'][key]['fileList'] = [ +# 'input_clim/uosurf_3d_nov1999-oct2009.nc' +# ] +#inputDict['OyrC'][key]['inputVarName'] = 'uo' +#inputDict['OyrC'][key]['outputVarName'] = 'uos' +#inputDict['OyrC'][key]['outputUnits'] = 'm s-1' +#inputDict['OyrC'][key]['positive'] = '' +#key = 'vo' +#inputDict['OyrC'][key] = {} +#inputDict['OyrC'][key]['fileList'] = [ +# 'input_clim/vosurf_3d_nov1999-oct2009.nc' +# ] +#inputDict['OyrC'][key]['inputVarName'] = 'vo' +#inputDict['OyrC'][key]['outputVarName'] = 'vos' +#inputDict['OyrC'][key]['outputUnits'] = 'm s-1' +#inputDict['OyrC'][key]['positive'] = '' +# -- above (5) -- +# +# sea ice data: These can be commented out because ocean models do not necessarily need this. +# -- below (6) -- +inputDict['SI3hrPt'] = {} +key = 'siconca' +inputDict['SI3hrPt'][key] = {} +inputDict['SI3hrPt'][key]['fileList'] = [ + 'input_suppl/ice.2020.24jul2020.nc' + ] +inputDict['SI3hrPt'][key]['inputVarName'] = 'siconca' +inputDict['SI3hrPt'][key]['outputVarName'] = 'siconca' +inputDict['SI3hrPt'][key]['outputUnits'] = '%' +inputDict['SI3hrPt'][key]['positive'] = '' +inputDict['SIday'] = {} +key = 'siconco' +inputDict['SIday'][key] = {} +inputDict['SIday'][key]['fileList'] = [ + 'input_suppl/ice.COBESST.2020.24jul2020.nc' + ] +inputDict['SIday'][key]['inputVarName'] = 'siconco' +inputDict['SIday'][key]['outputVarName'] = 'siconc' +inputDict['SIday'][key]['outputUnits'] = '%' +inputDict['SIday'][key]['positive'] = '' +# -- above (6) -- +# fixed in time: These can be commented out because these are provided by a previous version. +# -- below (7) -- +#inputDict['Afx'] = {} +#key = 'areacello' +#inputDict['Afx'][key] = {} +#inputDict['Afx'][key]['fileList'] = [ +# 'input_fx/jra55_cell_area.10Apr2018.nc' +# ] +#inputDict['Afx'][key]['inputVarName'] = 'areacello' +#inputDict['Afx'][key]['outputVarName'] = 'areacella' +#inputDict['Afx'][key]['outputUnits'] = 'm2' +#inputDict['Afx'][key]['positive'] = '' +#key = 'sftof' +#inputDict['Afx'][key] = {} +#inputDict['Afx'][key]['fileList'] = [ +# 'input_fx/jra55_mask_sea.10Apr2018.nc' +# ] +#inputDict['Afx'][key]['inputVarName'] = 'sftof' +#inputDict['Afx'][key]['outputVarName'] = 'sftof' +#inputDict['Afx'][key]['outputUnits'] = '1' +#inputDict['Afx'][key]['positive'] = '' +#inputDict['Ofx'] = {} +#key = 'areacellg' +#inputDict['Ofx'][key] = {} +#inputDict['Ofx'][key]['fileList'] = [ +# 'input_fx/runoff_cell_area.10Apr2018.nc' +# ] +#inputDict['Ofx'][key]['inputVarName'] = 'areacellg' +#inputDict['Ofx'][key]['outputVarName'] = 'areacello' +#inputDict['Ofx'][key]['outputUnits'] = 'm2' +#inputDict['Ofx'][key]['positive'] = '' +# -- above (7) -- + +#%% Loop through entries and process file lists +for key in inputDict.keys(): + # User provided input + cmorTable = ''.join(['Tables/input4MIPs_',key,'.json']) ; # Aday,Amon,Lmon,Omon,SImon,fx - Load target table, axis info (coordinates, grid*) and CVs + cmorJson = json.load(open(cmorTable)) + inputJson = 'mriJRA55-do-input.json' ; # Update contents of this file to set your global_attributes + newJson = json.load(open(inputJson)) + for var in inputDict[key].keys(): + outVar = inputDict[key][var]['outputVarName'] + # Update frequency based on variable and write output to CMOR input file + newJson['frequency'] = cmorJson['variable_entry'][outVar]['frequency'] + + if var in ['friver','licalvf','areacellg','s_u10a']: + newJson['grid'] = '0.25x0.25 degree latitude x longitude' + newJson['nominal_resolution'] = '25 km' + newJson['grid_label'] = 'gr' + elif var in ['tos','siconco']: + newJson['grid'] = '1x1 degree latitude x longitude' + newJson['nominal_resolution'] = '100 km' + newJson['grid_label'] = 'gn' + elif var in ['uo','vo']: + newJson['grid'] = 'data regridded to the normal atmosphere TL319 gaussian grid (320x640 latxlon) from 0.25x0.25 degree latitude x longitude' + newJson['nominal_resolution'] = '50 km' + newJson['grid_label'] = 'gr' + else: + newJson['grid'] = 'data regridded to the normal atmosphere TL319 gaussian grid (320x640 latxlon) from a reduced TL319 gaussian grid' + newJson['nominal_resolution'] = '50 km' + newJson['grid_label'] = 'gr' + + # areacello -> areacella, areacellg -> areacello + if var in ['friver','licalvf','s_u10a']: + newJson['cell_measures'] = 'area: areacello' + elif var in ['tos','siconco']: + newJson['cell_measures'] = '' + elif var in ['areacello','areacellg']: + newJson['cell_measures'] = '' + else: + newJson['cell_measures'] = 'area: areacella' + + #json.dump(newJson,open('tmp.json','w'),ensure_ascii=True,encoding='utf-8',sort_keys=True) + json.dump(newJson,open('tmp.json','w'),ensure_ascii=True,sort_keys=True) + inputVarName = inputDict[key][var]['inputVarName'] + outputVarName = inputDict[key][var]['outputVarName'] + outputUnits = inputDict[key][var]['outputUnits'] + for count,filePath in enumerate(inputDict[key][var]['fileList']): + print ('key,var:',key,var) + print ('filePath:',filePath) + print ('cmorTable:',cmorTable) + print ('inputVarName:',inputVarName) + print ('outputVarName:',outputVarName) + print ('outputUnits:',outputUnits) + # Open and read input netcdf file + f = cdm.open(filePath) + print ('Source data read start..') + d = f(inputVarName) ; # Or use temporal subset for testing below + #d = f(inputVarName,time=slice(0,5)) + print ('Source data read end..') + # Reset missing value + #d.setMissing(1e20) ; # This should also set fill_value, and suppress CMOR variable history being written + # Get axes + lat = d.getLatitude() + lon = d.getLongitude() + if var in ['uo','vo']: + lev = d.getLevel() + time = d.getTime() ; # Assumes variable is named 'time', for the demo file this is named 'months' + #time = d.getAxis(0) ; # Rather use a file dimension-based load + + #%% Initialize and run CMOR + print ('Start CMORizing..') + # For more information see https://cmor.llnl.gov/mydoc_cmor3_api/ + cmor.setup(inpath='./',netcdf_file_action=cmor.CMOR_REPLACE_4) #,logfile='cmorLog.txt') + cmor.dataset_json('tmp.json') + cmor.load_table(cmorTable) + #cmor.set_cur_dataset_attribute('history',f.history) ; # Force input file attribute as history + # Create axes based on variable + if var in ['q_10','t_10']: + # Reset height2m coordinate value to 10m + heightAx = {'table_entry': 'height2m', + 'units': 'm', + 'coord_vals': cdm.createAxis([10.],id='height') + } + elif var in ['u_10','v_10']: + # Use height10m coordinate entry + heightAx = {'table_entry': 'height10m', + 'units': 'm', + 'coord_vals': cdm.createAxis([10.],id='height') + } + else: + # Use height2m default value + heightAx = {'table_entry': 'height2m', + 'units': 'm', + 'coord_vals': cdm.createAxis([2.],id='height') + } + # Create time based on table + if key == 'A3hrPt': + timeAx = {'table_entry': 'time1', + 'units': time.units + } + elif key == 'SI3hrPt': + timeAx = {'table_entry': 'time1', + 'units': time.units + } + elif key == 'OmonC': + # Create climatological time axis for the WOA13 (1955-2012) temporal range + times = [] ; times_bnds = [] + for count,months in enumerate(range(1,13)): + #print count,months + if months in [1,3,5,7,8,10,12]: + monthendday = 31 + hrs = 12 + elif months in [4,6,9,11]: + monthendday = 30 + hrs = 0 + elif isleap(int(1984)): + monthendday = 29 + hrs = 12 + else: + monthendday = 28 + hrs = 0 + times.append(cdt.componenttime(1984,months,np.int(monthendday/2.),hrs).torel('days since 1955-1-1').value) + # WOA13v2 extends from 1955 to 2012 +# times_bnds.append([cdt.componenttime(1955,months,1,0,0,0).torel('days since 1955-1-1'), +# cdt.componenttime(2012,months,monthendday,12,59,59).torel('days since 1955-1-1')]) + if months < 12: + times_bnds.append([cdt.componenttime(1955,months,1,0,0,0).torel('days since 1955-1-1').value, + cdt.componenttime(2012,months+1,1,0,0,0).torel('days since 1955-1-1').value]) + else: + times_bnds.append([cdt.componenttime(1955,months,1,0,0,0).torel('days since 1955-1-1').value, + cdt.componenttime(2013,1,1,0,0,0).torel('days since 1955-1-1').value]) + time = cdm.createAxis(times,np.array(times_bnds),id='time') + time.units = 'days since 1955-01-01 0.0.0' + timeAx = {'table_entry': 'time2', + 'units': time.units, + 'coord_vals': time + } + elif key == 'OyrC': + if var in ['uo','vo']: + # Create climatological time axis for the GlobCurrent (Nov1999-Oct2009) temporal range + times = [] ; times_bnds = [] + times.append(cdt.componenttime(2004,10,31,12,0,0).torel('days since 1999-11-1').value) + times_bnds.append([cdt.componenttime(1999,11,1,0,0,0).torel('days since 1999-11-1').value, + cdt.componenttime(2009,11,1,0,0,0).torel('days since 1999-11-1').value]) + time = cdm.createAxis(times,np.array(times_bnds),id='time') + time.units = 'days since 1999-11-01 0.0.0' + print (times[0]) + print (times_bnds[0]) + print (time) + timeAx = {'table_entry': 'time2', + 'units': time.units, + 'coord_vals': time + } + elif key == 'LIyrC': + if var in ['licalvf']: + # Create climatological time axis for the Depoorter et al. (2013) (Jan2007-Dec2007) temporal range + times = [] ; times_bnds = [] + times.append(cdt.componenttime(2007,7,2,12,0,0).torel('days since 2007-1-1').value) + times_bnds.append([cdt.componenttime(2007,1,1,0,0,0).torel('days since 2007-1-1').value, + cdt.componenttime(2008,1,1,0,0,0).torel('days since 2007-1-1').value]) + time = cdm.createAxis(times,np.array(times_bnds),id='time') + time.units = 'days since 2007-01-01 0.0.0' + print (times[0]) + print (times_bnds[0]) + print (time) + timeAx = {'table_entry': 'time2', + 'units': time.units, + 'coord_vals': time + } + else: + # Use default time entry + timeAx = {'table_entry': 'time', + 'units': time.units + } + # Now set axes list based on variable + if var in ['q_10','t_10','u_10','v_10']: + # 4D variable - 4 axes + axes = [ timeAx, + heightAx, + {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + elif var in ['uo','vo']: + # 4D variable - 4 axes +# axes = [ timeAx, +# {'table_entry': 'depth_coord', +# 'units': 'm', +# 'coord_vals': lev[:], +# 'cell_bounds': lev.getBounds() +# }, +# {'table_entry': 'latitude', +# 'units': 'degrees_north', +# 'coord_vals': lat[:], +# 'cell_bounds': lat.getBounds() +# }, +# {'table_entry': 'longitude', +# 'units': 'degrees_east', +# 'coord_vals': lon[:], +# 'cell_bounds': lon.getBounds() +# }, +# ] + # 3D variable - 3 axes + axes = [ timeAx, + {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + elif var in ['areacello','sftof','areacellg']: + # 2D variable - 2 axes + axes = [ {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + else: + # 3D variable - 3 axes + axes = [ timeAx, + {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + axisIds = list() ; # Create list of axes and build these for each variable from axis components above + for axis in axes: + axisId = cmor.axis(**axis) + axisIds.append(axisId) + + # For use in debugging + #print 'axes:',axes + #print 'd.shape:',d.shape + #print 'outputVarName:',outputVarName + #print 'd.units:',d.units + #print 'd.missing:',d.missing + #pdb.set_trace() ; # Debug statement + + # Setup units and create variable to write using cmor - see https://cmor.llnl.gov/mydoc_cmor3_api/#cmor_set_variable_attribute + d.units = outputUnits + if inputDict[key][var]['positive'] == 'down': + varid = cmor.variable(outputVarName,d.units,axisIds,missing_value=d.missing,positive='down') + elif var in ['friver']: + varid = cmor.variable(outputVarName,d.units,axisIds,missing_value=d.missing,comment='computed as the river flux of liquid water into the ocean divided by the area of the ocean portion of the grid cell') + else: + varid = cmor.variable(outputVarName,d.units,axisIds,missing_value=d.missing) ; # This is not trapping the correct missing_value + values = np.array(d[:],np.float32) + + # Append valid_min and valid_max to variable before writing - see https://cmor.llnl.gov/mydoc_cmor3_api/#cmor_set_variable_attribute + #cmor.set_variable_attribute(varid,'valid_min','f',2.0) + #cmor.set_variable_attribute(varid,'valid_max','f',3.0) + if var in ['friver','licalvf']: + cmor.set_variable_attribute(varid,'cell_measures','c','area: areacello') + if var in ['uo','vo']: + cmor.set_variable_attribute(varid,'cell_measures','c','area: areacella') + if var in ['tos','siconco']: + cmor.set_variable_attribute(varid,'cell_measures','c','') + + # Prepare variable for writing, then write and close file - see https://cmor.llnl.gov/mydoc_cmor3_api/#cmor_set_variable_attribute + cmor.set_deflate(varid,1,1,1) ; # shuffle=1,deflate=1,deflate_level=1 - Deflate options compress file data + print ('Start CMOR write..') + if key == 'OmonC': + cmor.write(varid,values) ; # Write variable with time axis + elif key == 'OyrC': + cmor.write(varid,values) ; # Write variable with time axis + elif key == 'LIyrC': + cmor.write(varid,values) ; # Write variable with time axis + elif key == 'Ofx': + cmor.write(varid,values) ; # Write variable without time axis + elif key == 'Afx': + cmor.write(varid,values) ; # Write variable without time axis + elif key == 'LIfx': + cmor.write(varid,values) ; # Write variable without time axis + else: + cmor.write(varid,values,time_vals=time,time_bnds=time.getBounds()) ; # Write variable with time axis + print ('End CMOR write..') + # Alteratively write in append mode + #for i in range(0,len(time),10): + # print i + # cmor.write(varid,values[i*10:(i+1)*10],time_vals=time[i*10:(i+1)*10],time_bnds=time.getBounds()[i*10:(i+1)*10]) ; # Write variable with time axis + f.close() + cmor.close() + # Cleanup + os.remove('tmp.json') diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/runCmorAllWrite-1-5-0.py b/demo/MRI-JMA-JRA55-do-1-5-0/runCmorAllWrite-1-5-0.py new file mode 100755 index 0000000..6c33ad1 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/runCmorAllWrite-1-5-0.py @@ -0,0 +1,1460 @@ +#!/usr/bin/env python3.7.6 +import cmor,json,os +import cdms2 as cdm +import cdtime as cdt +import numpy as np +from calendar import isleap +#cdm.setAutoBounds('on') # Caution, this attempts to automatically set coordinate bounds - please check outputs using this option +#import pdb ; # Debug statement - import if enabling debugging below + +# Notes +# PJD 5 Feb 2018 - Started +# PJD 21 Feb 2018 - Updated for CMOR3.3.1 +# PJD 24 Feb 2018 - Updated paths for demo dir +# PJD 7 Mar 2018 - Updated pr to prra +# PJD 8 Mar 2018 - Correct prra 'positive'; Added ficeberg2d placeholder +# PJD 5 Apr 2018 - Update for latest variable list +# TODO: Fix missing_value assignment problem +# ---> Is this going to be fixed by setting missing_value to 1e20 for the inputfile? +# This has been done for JRA55-do-v1.3.1 + +#%% Create input decks for all variables - 'fileList' will need to be amended to include all files 1958-2018 +inputDict = {} +inputDict['A3hr'] = {} +key = 'rain' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/rain.1958.25Mar2020.nc', + 'input_atmos/rain.1959.25Mar2020.nc', + 'input_atmos/rain.1960.25Mar2020.nc', + 'input_atmos/rain.1961.25Mar2020.nc', + 'input_atmos/rain.1962.25Mar2020.nc', + 'input_atmos/rain.1963.25Mar2020.nc', + 'input_atmos/rain.1964.25Mar2020.nc', + 'input_atmos/rain.1965.25Mar2020.nc', + 'input_atmos/rain.1966.25Mar2020.nc', + 'input_atmos/rain.1967.25Mar2020.nc', + 'input_atmos/rain.1968.25Mar2020.nc', + 'input_atmos/rain.1969.25Mar2020.nc', + 'input_atmos/rain.1970.25Mar2020.nc', + 'input_atmos/rain.1971.25Mar2020.nc', + 'input_atmos/rain.1972.25Mar2020.nc', + 'input_atmos/rain.1973.25Mar2020.nc', + 'input_atmos/rain.1974.25Mar2020.nc', + 'input_atmos/rain.1975.25Mar2020.nc', + 'input_atmos/rain.1976.25Mar2020.nc', + 'input_atmos/rain.1977.25Mar2020.nc', + 'input_atmos/rain.1978.25Mar2020.nc', + 'input_atmos/rain.1979.25Mar2020.nc', + 'input_atmos/rain.1980.25Mar2020.nc', + 'input_atmos/rain.1981.25Mar2020.nc', + 'input_atmos/rain.1982.25Mar2020.nc', + 'input_atmos/rain.1983.25Mar2020.nc', + 'input_atmos/rain.1984.25Mar2020.nc', + 'input_atmos/rain.1985.25Mar2020.nc', + 'input_atmos/rain.1986.25Mar2020.nc', + 'input_atmos/rain.1987.25Mar2020.nc', + 'input_atmos/rain.1988.25Mar2020.nc', + 'input_atmos/rain.1989.25Mar2020.nc', + 'input_atmos/rain.1990.25Mar2020.nc', + 'input_atmos/rain.1991.25Mar2020.nc', + 'input_atmos/rain.1992.25Mar2020.nc', + 'input_atmos/rain.1993.25Mar2020.nc', + 'input_atmos/rain.1994.25Mar2020.nc', + 'input_atmos/rain.1995.25Mar2020.nc', + 'input_atmos/rain.1996.25Mar2020.nc', + 'input_atmos/rain.1997.25Mar2020.nc', + 'input_atmos/rain.1998.25Mar2020.nc', + 'input_atmos/rain.1999.25Mar2020.nc', + 'input_atmos/rain.2000.25Mar2020.nc', + 'input_atmos/rain.2001.25Mar2020.nc', + 'input_atmos/rain.2002.25Mar2020.nc', + 'input_atmos/rain.2003.25Mar2020.nc', + 'input_atmos/rain.2004.25Mar2020.nc', + 'input_atmos/rain.2005.25Mar2020.nc', + 'input_atmos/rain.2006.25Mar2020.nc', + 'input_atmos/rain.2007.25Mar2020.nc', + 'input_atmos/rain.2008.25Mar2020.nc', + 'input_atmos/rain.2009.25Mar2020.nc', + 'input_atmos/rain.2010.25Mar2020.nc', + 'input_atmos/rain.2011.25Mar2020.nc', + 'input_atmos/rain.2012.25Mar2020.nc', + 'input_atmos/rain.2013.25Mar2020.nc', + 'input_atmos/rain.2014.25Mar2020.nc', + 'input_atmos/rain.2015.25Mar2020.nc', + 'input_atmos/rain.2016.25Mar2020.nc', + 'input_atmos/rain.2017.25Mar2020.nc', + 'input_atmos/rain.2018.25Mar2020.nc', + 'input_atmos/rain.2019.25Mar2020.nc', + 'input_atmos/rain.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'prrn' +inputDict['A3hr'][key]['outputVarName'] = 'prra' ; # Was pr +inputDict['A3hr'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['A3hr'][key]['positive'] = '' +key = 'snow' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/snow.1958.25Mar2020.nc', + 'input_atmos/snow.1959.25Mar2020.nc', + 'input_atmos/snow.1960.25Mar2020.nc', + 'input_atmos/snow.1961.25Mar2020.nc', + 'input_atmos/snow.1962.25Mar2020.nc', + 'input_atmos/snow.1963.25Mar2020.nc', + 'input_atmos/snow.1964.25Mar2020.nc', + 'input_atmos/snow.1965.25Mar2020.nc', + 'input_atmos/snow.1966.25Mar2020.nc', + 'input_atmos/snow.1967.25Mar2020.nc', + 'input_atmos/snow.1968.25Mar2020.nc', + 'input_atmos/snow.1969.25Mar2020.nc', + 'input_atmos/snow.1970.25Mar2020.nc', + 'input_atmos/snow.1971.25Mar2020.nc', + 'input_atmos/snow.1972.25Mar2020.nc', + 'input_atmos/snow.1973.25Mar2020.nc', + 'input_atmos/snow.1974.25Mar2020.nc', + 'input_atmos/snow.1975.25Mar2020.nc', + 'input_atmos/snow.1976.25Mar2020.nc', + 'input_atmos/snow.1977.25Mar2020.nc', + 'input_atmos/snow.1978.25Mar2020.nc', + 'input_atmos/snow.1979.25Mar2020.nc', + 'input_atmos/snow.1980.25Mar2020.nc', + 'input_atmos/snow.1981.25Mar2020.nc', + 'input_atmos/snow.1982.25Mar2020.nc', + 'input_atmos/snow.1983.25Mar2020.nc', + 'input_atmos/snow.1984.25Mar2020.nc', + 'input_atmos/snow.1985.25Mar2020.nc', + 'input_atmos/snow.1986.25Mar2020.nc', + 'input_atmos/snow.1987.25Mar2020.nc', + 'input_atmos/snow.1988.25Mar2020.nc', + 'input_atmos/snow.1989.25Mar2020.nc', + 'input_atmos/snow.1990.25Mar2020.nc', + 'input_atmos/snow.1991.25Mar2020.nc', + 'input_atmos/snow.1992.25Mar2020.nc', + 'input_atmos/snow.1993.25Mar2020.nc', + 'input_atmos/snow.1994.25Mar2020.nc', + 'input_atmos/snow.1995.25Mar2020.nc', + 'input_atmos/snow.1996.25Mar2020.nc', + 'input_atmos/snow.1997.25Mar2020.nc', + 'input_atmos/snow.1998.25Mar2020.nc', + 'input_atmos/snow.1999.25Mar2020.nc', + 'input_atmos/snow.2000.25Mar2020.nc', + 'input_atmos/snow.2001.25Mar2020.nc', + 'input_atmos/snow.2002.25Mar2020.nc', + 'input_atmos/snow.2003.25Mar2020.nc', + 'input_atmos/snow.2004.25Mar2020.nc', + 'input_atmos/snow.2005.25Mar2020.nc', + 'input_atmos/snow.2006.25Mar2020.nc', + 'input_atmos/snow.2007.25Mar2020.nc', + 'input_atmos/snow.2008.25Mar2020.nc', + 'input_atmos/snow.2009.25Mar2020.nc', + 'input_atmos/snow.2010.25Mar2020.nc', + 'input_atmos/snow.2011.25Mar2020.nc', + 'input_atmos/snow.2012.25Mar2020.nc', + 'input_atmos/snow.2013.25Mar2020.nc', + 'input_atmos/snow.2014.25Mar2020.nc', + 'input_atmos/snow.2015.25Mar2020.nc', + 'input_atmos/snow.2016.25Mar2020.nc', + 'input_atmos/snow.2017.25Mar2020.nc', + 'input_atmos/snow.2018.25Mar2020.nc', + 'input_atmos/snow.2019.25Mar2020.nc', + 'input_atmos/snow.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'prsn' +inputDict['A3hr'][key]['outputVarName'] = 'prsn' +inputDict['A3hr'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['A3hr'][key]['positive'] = '' +key = 'rlds' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/rlds.1958.25Mar2020.nc', + 'input_atmos/rlds.1959.25Mar2020.nc', + 'input_atmos/rlds.1960.25Mar2020.nc', + 'input_atmos/rlds.1961.25Mar2020.nc', + 'input_atmos/rlds.1962.25Mar2020.nc', + 'input_atmos/rlds.1963.25Mar2020.nc', + 'input_atmos/rlds.1964.25Mar2020.nc', + 'input_atmos/rlds.1965.25Mar2020.nc', + 'input_atmos/rlds.1966.25Mar2020.nc', + 'input_atmos/rlds.1967.25Mar2020.nc', + 'input_atmos/rlds.1968.25Mar2020.nc', + 'input_atmos/rlds.1969.25Mar2020.nc', + 'input_atmos/rlds.1970.25Mar2020.nc', + 'input_atmos/rlds.1971.25Mar2020.nc', + 'input_atmos/rlds.1972.25Mar2020.nc', + 'input_atmos/rlds.1973.25Mar2020.nc', + 'input_atmos/rlds.1974.25Mar2020.nc', + 'input_atmos/rlds.1975.25Mar2020.nc', + 'input_atmos/rlds.1976.25Mar2020.nc', + 'input_atmos/rlds.1977.25Mar2020.nc', + 'input_atmos/rlds.1978.25Mar2020.nc', + 'input_atmos/rlds.1979.25Mar2020.nc', + 'input_atmos/rlds.1980.25Mar2020.nc', + 'input_atmos/rlds.1981.25Mar2020.nc', + 'input_atmos/rlds.1982.25Mar2020.nc', + 'input_atmos/rlds.1983.25Mar2020.nc', + 'input_atmos/rlds.1984.25Mar2020.nc', + 'input_atmos/rlds.1985.25Mar2020.nc', + 'input_atmos/rlds.1986.25Mar2020.nc', + 'input_atmos/rlds.1987.25Mar2020.nc', + 'input_atmos/rlds.1988.25Mar2020.nc', + 'input_atmos/rlds.1989.25Mar2020.nc', + 'input_atmos/rlds.1990.25Mar2020.nc', + 'input_atmos/rlds.1991.25Mar2020.nc', + 'input_atmos/rlds.1992.25Mar2020.nc', + 'input_atmos/rlds.1993.25Mar2020.nc', + 'input_atmos/rlds.1994.25Mar2020.nc', + 'input_atmos/rlds.1995.25Mar2020.nc', + 'input_atmos/rlds.1996.25Mar2020.nc', + 'input_atmos/rlds.1997.25Mar2020.nc', + 'input_atmos/rlds.1998.25Mar2020.nc', + 'input_atmos/rlds.1999.25Mar2020.nc', + 'input_atmos/rlds.2000.25Mar2020.nc', + 'input_atmos/rlds.2001.25Mar2020.nc', + 'input_atmos/rlds.2002.25Mar2020.nc', + 'input_atmos/rlds.2003.25Mar2020.nc', + 'input_atmos/rlds.2004.25Mar2020.nc', + 'input_atmos/rlds.2005.25Mar2020.nc', + 'input_atmos/rlds.2006.25Mar2020.nc', + 'input_atmos/rlds.2007.25Mar2020.nc', + 'input_atmos/rlds.2008.25Mar2020.nc', + 'input_atmos/rlds.2009.25Mar2020.nc', + 'input_atmos/rlds.2010.25Mar2020.nc', + 'input_atmos/rlds.2011.25Mar2020.nc', + 'input_atmos/rlds.2012.25Mar2020.nc', + 'input_atmos/rlds.2013.25Mar2020.nc', + 'input_atmos/rlds.2014.25Mar2020.nc', + 'input_atmos/rlds.2015.25Mar2020.nc', + 'input_atmos/rlds.2016.25Mar2020.nc', + 'input_atmos/rlds.2017.25Mar2020.nc', + 'input_atmos/rlds.2018.25Mar2020.nc', + 'input_atmos/rlds.2019.25Mar2020.nc', + 'input_atmos/rlds.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'rlds' +inputDict['A3hr'][key]['outputVarName'] = 'rlds' +inputDict['A3hr'][key]['outputUnits'] = 'W m-2' +inputDict['A3hr'][key]['positive'] = 'down' +key = 'rsds' +inputDict['A3hr'][key] = {} +inputDict['A3hr'][key]['fileList'] = [ + 'input_atmos/rsds.1958.25Mar2020.nc', + 'input_atmos/rsds.1959.25Mar2020.nc', + 'input_atmos/rsds.1960.25Mar2020.nc', + 'input_atmos/rsds.1961.25Mar2020.nc', + 'input_atmos/rsds.1962.25Mar2020.nc', + 'input_atmos/rsds.1963.25Mar2020.nc', + 'input_atmos/rsds.1964.25Mar2020.nc', + 'input_atmos/rsds.1965.25Mar2020.nc', + 'input_atmos/rsds.1966.25Mar2020.nc', + 'input_atmos/rsds.1967.25Mar2020.nc', + 'input_atmos/rsds.1968.25Mar2020.nc', + 'input_atmos/rsds.1969.25Mar2020.nc', + 'input_atmos/rsds.1970.25Mar2020.nc', + 'input_atmos/rsds.1971.25Mar2020.nc', + 'input_atmos/rsds.1972.25Mar2020.nc', + 'input_atmos/rsds.1973.25Mar2020.nc', + 'input_atmos/rsds.1974.25Mar2020.nc', + 'input_atmos/rsds.1975.25Mar2020.nc', + 'input_atmos/rsds.1976.25Mar2020.nc', + 'input_atmos/rsds.1977.25Mar2020.nc', + 'input_atmos/rsds.1978.25Mar2020.nc', + 'input_atmos/rsds.1979.25Mar2020.nc', + 'input_atmos/rsds.1980.25Mar2020.nc', + 'input_atmos/rsds.1981.25Mar2020.nc', + 'input_atmos/rsds.1982.25Mar2020.nc', + 'input_atmos/rsds.1983.25Mar2020.nc', + 'input_atmos/rsds.1984.25Mar2020.nc', + 'input_atmos/rsds.1985.25Mar2020.nc', + 'input_atmos/rsds.1986.25Mar2020.nc', + 'input_atmos/rsds.1987.25Mar2020.nc', + 'input_atmos/rsds.1988.25Mar2020.nc', + 'input_atmos/rsds.1989.25Mar2020.nc', + 'input_atmos/rsds.1990.25Mar2020.nc', + 'input_atmos/rsds.1991.25Mar2020.nc', + 'input_atmos/rsds.1992.25Mar2020.nc', + 'input_atmos/rsds.1993.25Mar2020.nc', + 'input_atmos/rsds.1994.25Mar2020.nc', + 'input_atmos/rsds.1995.25Mar2020.nc', + 'input_atmos/rsds.1996.25Mar2020.nc', + 'input_atmos/rsds.1997.25Mar2020.nc', + 'input_atmos/rsds.1998.25Mar2020.nc', + 'input_atmos/rsds.1999.25Mar2020.nc', + 'input_atmos/rsds.2000.25Mar2020.nc', + 'input_atmos/rsds.2001.25Mar2020.nc', + 'input_atmos/rsds.2002.25Mar2020.nc', + 'input_atmos/rsds.2003.25Mar2020.nc', + 'input_atmos/rsds.2004.25Mar2020.nc', + 'input_atmos/rsds.2005.25Mar2020.nc', + 'input_atmos/rsds.2006.25Mar2020.nc', + 'input_atmos/rsds.2007.25Mar2020.nc', + 'input_atmos/rsds.2008.25Mar2020.nc', + 'input_atmos/rsds.2009.25Mar2020.nc', + 'input_atmos/rsds.2010.25Mar2020.nc', + 'input_atmos/rsds.2011.25Mar2020.nc', + 'input_atmos/rsds.2012.25Mar2020.nc', + 'input_atmos/rsds.2013.25Mar2020.nc', + 'input_atmos/rsds.2014.25Mar2020.nc', + 'input_atmos/rsds.2015.25Mar2020.nc', + 'input_atmos/rsds.2016.25Mar2020.nc', + 'input_atmos/rsds.2017.25Mar2020.nc', + 'input_atmos/rsds.2018.25Mar2020.nc', + 'input_atmos/rsds.2019.25Mar2020.nc', + 'input_atmos/rsds.2020.24jul2020.nc' + ] +inputDict['A3hr'][key]['inputVarName'] = 'rsds' +inputDict['A3hr'][key]['outputVarName'] = 'rsds' +inputDict['A3hr'][key]['outputUnits'] = 'W m-2' +inputDict['A3hr'][key]['positive'] = 'down' +inputDict['A3hrPt'] = {} +key = 'q_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/q_10.1958.25Mar2020.nc', + 'input_atmos/q_10.1959.25Mar2020.nc', + 'input_atmos/q_10.1960.25Mar2020.nc', + 'input_atmos/q_10.1961.25Mar2020.nc', + 'input_atmos/q_10.1962.25Mar2020.nc', + 'input_atmos/q_10.1963.25Mar2020.nc', + 'input_atmos/q_10.1964.25Mar2020.nc', + 'input_atmos/q_10.1965.25Mar2020.nc', + 'input_atmos/q_10.1966.25Mar2020.nc', + 'input_atmos/q_10.1967.25Mar2020.nc', + 'input_atmos/q_10.1968.25Mar2020.nc', + 'input_atmos/q_10.1969.25Mar2020.nc', + 'input_atmos/q_10.1970.25Mar2020.nc', + 'input_atmos/q_10.1971.25Mar2020.nc', + 'input_atmos/q_10.1972.25Mar2020.nc', + 'input_atmos/q_10.1973.25Mar2020.nc', + 'input_atmos/q_10.1974.25Mar2020.nc', + 'input_atmos/q_10.1975.25Mar2020.nc', + 'input_atmos/q_10.1976.25Mar2020.nc', + 'input_atmos/q_10.1977.25Mar2020.nc', + 'input_atmos/q_10.1978.25Mar2020.nc', + 'input_atmos/q_10.1979.25Mar2020.nc', + 'input_atmos/q_10.1980.25Mar2020.nc', + 'input_atmos/q_10.1981.25Mar2020.nc', + 'input_atmos/q_10.1982.25Mar2020.nc', + 'input_atmos/q_10.1983.25Mar2020.nc', + 'input_atmos/q_10.1984.25Mar2020.nc', + 'input_atmos/q_10.1985.25Mar2020.nc', + 'input_atmos/q_10.1986.25Mar2020.nc', + 'input_atmos/q_10.1987.25Mar2020.nc', + 'input_atmos/q_10.1988.25Mar2020.nc', + 'input_atmos/q_10.1989.25Mar2020.nc', + 'input_atmos/q_10.1990.25Mar2020.nc', + 'input_atmos/q_10.1991.25Mar2020.nc', + 'input_atmos/q_10.1992.25Mar2020.nc', + 'input_atmos/q_10.1993.25Mar2020.nc', + 'input_atmos/q_10.1994.25Mar2020.nc', + 'input_atmos/q_10.1995.25Mar2020.nc', + 'input_atmos/q_10.1996.25Mar2020.nc', + 'input_atmos/q_10.1997.25Mar2020.nc', + 'input_atmos/q_10.1998.25Mar2020.nc', + 'input_atmos/q_10.1999.25Mar2020.nc', + 'input_atmos/q_10.2000.25Mar2020.nc', + 'input_atmos/q_10.2001.25Mar2020.nc', + 'input_atmos/q_10.2002.25Mar2020.nc', + 'input_atmos/q_10.2003.25Mar2020.nc', + 'input_atmos/q_10.2004.25Mar2020.nc', + 'input_atmos/q_10.2005.25Mar2020.nc', + 'input_atmos/q_10.2006.25Mar2020.nc', + 'input_atmos/q_10.2007.25Mar2020.nc', + 'input_atmos/q_10.2008.25Mar2020.nc', + 'input_atmos/q_10.2009.25Mar2020.nc', + 'input_atmos/q_10.2010.25Mar2020.nc', + 'input_atmos/q_10.2011.25Mar2020.nc', + 'input_atmos/q_10.2012.25Mar2020.nc', + 'input_atmos/q_10.2013.25Mar2020.nc', + 'input_atmos/q_10.2014.25Mar2020.nc', + 'input_atmos/q_10.2015.25Mar2020.nc', + 'input_atmos/q_10.2016.25Mar2020.nc', + 'input_atmos/q_10.2017.25Mar2020.nc', + 'input_atmos/q_10.2018.25Mar2020.nc', + 'input_atmos/q_10.2019.25Mar2020.nc', + 'input_atmos/q_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'huss_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'huss' +inputDict['A3hrPt'][key]['outputUnits'] = '1.0' +inputDict['A3hrPt'][key]['positive'] = '' +key = 'slp' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/slp.1958.25Mar2020.nc', + 'input_atmos/slp.1959.25Mar2020.nc', + 'input_atmos/slp.1960.25Mar2020.nc', + 'input_atmos/slp.1961.25Mar2020.nc', + 'input_atmos/slp.1962.25Mar2020.nc', + 'input_atmos/slp.1963.25Mar2020.nc', + 'input_atmos/slp.1964.25Mar2020.nc', + 'input_atmos/slp.1965.25Mar2020.nc', + 'input_atmos/slp.1966.25Mar2020.nc', + 'input_atmos/slp.1967.25Mar2020.nc', + 'input_atmos/slp.1968.25Mar2020.nc', + 'input_atmos/slp.1969.25Mar2020.nc', + 'input_atmos/slp.1970.25Mar2020.nc', + 'input_atmos/slp.1971.25Mar2020.nc', + 'input_atmos/slp.1972.25Mar2020.nc', + 'input_atmos/slp.1973.25Mar2020.nc', + 'input_atmos/slp.1974.25Mar2020.nc', + 'input_atmos/slp.1975.25Mar2020.nc', + 'input_atmos/slp.1976.25Mar2020.nc', + 'input_atmos/slp.1977.25Mar2020.nc', + 'input_atmos/slp.1978.25Mar2020.nc', + 'input_atmos/slp.1979.25Mar2020.nc', + 'input_atmos/slp.1980.25Mar2020.nc', + 'input_atmos/slp.1981.25Mar2020.nc', + 'input_atmos/slp.1982.25Mar2020.nc', + 'input_atmos/slp.1983.25Mar2020.nc', + 'input_atmos/slp.1984.25Mar2020.nc', + 'input_atmos/slp.1985.25Mar2020.nc', + 'input_atmos/slp.1986.25Mar2020.nc', + 'input_atmos/slp.1987.25Mar2020.nc', + 'input_atmos/slp.1988.25Mar2020.nc', + 'input_atmos/slp.1989.25Mar2020.nc', + 'input_atmos/slp.1990.25Mar2020.nc', + 'input_atmos/slp.1991.25Mar2020.nc', + 'input_atmos/slp.1992.25Mar2020.nc', + 'input_atmos/slp.1993.25Mar2020.nc', + 'input_atmos/slp.1994.25Mar2020.nc', + 'input_atmos/slp.1995.25Mar2020.nc', + 'input_atmos/slp.1996.25Mar2020.nc', + 'input_atmos/slp.1997.25Mar2020.nc', + 'input_atmos/slp.1998.25Mar2020.nc', + 'input_atmos/slp.1999.25Mar2020.nc', + 'input_atmos/slp.2000.25Mar2020.nc', + 'input_atmos/slp.2001.25Mar2020.nc', + 'input_atmos/slp.2002.25Mar2020.nc', + 'input_atmos/slp.2003.25Mar2020.nc', + 'input_atmos/slp.2004.25Mar2020.nc', + 'input_atmos/slp.2005.25Mar2020.nc', + 'input_atmos/slp.2006.25Mar2020.nc', + 'input_atmos/slp.2007.25Mar2020.nc', + 'input_atmos/slp.2008.25Mar2020.nc', + 'input_atmos/slp.2009.25Mar2020.nc', + 'input_atmos/slp.2010.25Mar2020.nc', + 'input_atmos/slp.2011.25Mar2020.nc', + 'input_atmos/slp.2012.25Mar2020.nc', + 'input_atmos/slp.2013.25Mar2020.nc', + 'input_atmos/slp.2014.25Mar2020.nc', + 'input_atmos/slp.2015.25Mar2020.nc', + 'input_atmos/slp.2016.25Mar2020.nc', + 'input_atmos/slp.2017.25Mar2020.nc', + 'input_atmos/slp.2018.25Mar2020.nc', + 'input_atmos/slp.2019.25Mar2020.nc', + 'input_atmos/slp.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'psl' +inputDict['A3hrPt'][key]['outputVarName'] = 'psl' +inputDict['A3hrPt'][key]['outputUnits'] = 'Pa' +inputDict['A3hrPt'][key]['positive'] = '' +key = 't_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/t_10.1958.25Mar2020.nc', + 'input_atmos/t_10.1959.25Mar2020.nc', + 'input_atmos/t_10.1960.25Mar2020.nc', + 'input_atmos/t_10.1961.25Mar2020.nc', + 'input_atmos/t_10.1962.25Mar2020.nc', + 'input_atmos/t_10.1963.25Mar2020.nc', + 'input_atmos/t_10.1964.25Mar2020.nc', + 'input_atmos/t_10.1965.25Mar2020.nc', + 'input_atmos/t_10.1966.25Mar2020.nc', + 'input_atmos/t_10.1967.25Mar2020.nc', + 'input_atmos/t_10.1968.25Mar2020.nc', + 'input_atmos/t_10.1969.25Mar2020.nc', + 'input_atmos/t_10.1970.25Mar2020.nc', + 'input_atmos/t_10.1971.25Mar2020.nc', + 'input_atmos/t_10.1972.25Mar2020.nc', + 'input_atmos/t_10.1973.25Mar2020.nc', + 'input_atmos/t_10.1974.25Mar2020.nc', + 'input_atmos/t_10.1975.25Mar2020.nc', + 'input_atmos/t_10.1976.25Mar2020.nc', + 'input_atmos/t_10.1977.25Mar2020.nc', + 'input_atmos/t_10.1978.25Mar2020.nc', + 'input_atmos/t_10.1979.25Mar2020.nc', + 'input_atmos/t_10.1980.25Mar2020.nc', + 'input_atmos/t_10.1981.25Mar2020.nc', + 'input_atmos/t_10.1982.25Mar2020.nc', + 'input_atmos/t_10.1983.25Mar2020.nc', + 'input_atmos/t_10.1984.25Mar2020.nc', + 'input_atmos/t_10.1985.25Mar2020.nc', + 'input_atmos/t_10.1986.25Mar2020.nc', + 'input_atmos/t_10.1987.25Mar2020.nc', + 'input_atmos/t_10.1988.25Mar2020.nc', + 'input_atmos/t_10.1989.25Mar2020.nc', + 'input_atmos/t_10.1990.25Mar2020.nc', + 'input_atmos/t_10.1991.25Mar2020.nc', + 'input_atmos/t_10.1992.25Mar2020.nc', + 'input_atmos/t_10.1993.25Mar2020.nc', + 'input_atmos/t_10.1994.25Mar2020.nc', + 'input_atmos/t_10.1995.25Mar2020.nc', + 'input_atmos/t_10.1996.25Mar2020.nc', + 'input_atmos/t_10.1997.25Mar2020.nc', + 'input_atmos/t_10.1998.25Mar2020.nc', + 'input_atmos/t_10.1999.25Mar2020.nc', + 'input_atmos/t_10.2000.25Mar2020.nc', + 'input_atmos/t_10.2001.25Mar2020.nc', + 'input_atmos/t_10.2002.25Mar2020.nc', + 'input_atmos/t_10.2003.25Mar2020.nc', + 'input_atmos/t_10.2004.25Mar2020.nc', + 'input_atmos/t_10.2005.25Mar2020.nc', + 'input_atmos/t_10.2006.25Mar2020.nc', + 'input_atmos/t_10.2007.25Mar2020.nc', + 'input_atmos/t_10.2008.25Mar2020.nc', + 'input_atmos/t_10.2009.25Mar2020.nc', + 'input_atmos/t_10.2010.25Mar2020.nc', + 'input_atmos/t_10.2011.25Mar2020.nc', + 'input_atmos/t_10.2012.25Mar2020.nc', + 'input_atmos/t_10.2013.25Mar2020.nc', + 'input_atmos/t_10.2014.25Mar2020.nc', + 'input_atmos/t_10.2015.25Mar2020.nc', + 'input_atmos/t_10.2016.25Mar2020.nc', + 'input_atmos/t_10.2017.25Mar2020.nc', + 'input_atmos/t_10.2018.25Mar2020.nc', + 'input_atmos/t_10.2019.25Mar2020.nc', + 'input_atmos/t_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'tas_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'tas' +inputDict['A3hrPt'][key]['outputUnits'] = 'K' +inputDict['A3hrPt'][key]['positive'] = '' +key = 'ts' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_suppl/brtmp.1958.20Mar2018.nc', + 'input_suppl/brtmp.1959.20Mar2018.nc', + 'input_suppl/brtmp.1960.20Mar2018.nc', + 'input_suppl/brtmp.1961.20Mar2018.nc', + 'input_suppl/brtmp.1962.20Mar2018.nc', + 'input_suppl/brtmp.1963.20Mar2018.nc', + 'input_suppl/brtmp.1964.20Mar2018.nc', + 'input_suppl/brtmp.1965.20Mar2018.nc', + 'input_suppl/brtmp.1966.20Mar2018.nc', + 'input_suppl/brtmp.1967.20Mar2018.nc', + 'input_suppl/brtmp.1968.20Mar2018.nc', + 'input_suppl/brtmp.1969.20Mar2018.nc', + 'input_suppl/brtmp.1970.20Mar2018.nc', + 'input_suppl/brtmp.1971.20Mar2018.nc', + 'input_suppl/brtmp.1972.20Mar2018.nc', + 'input_suppl/brtmp.1973.20Mar2018.nc', + 'input_suppl/brtmp.1974.20Mar2018.nc', + 'input_suppl/brtmp.1975.20Mar2018.nc', + 'input_suppl/brtmp.1976.20Mar2018.nc', + 'input_suppl/brtmp.1977.20Mar2018.nc', + 'input_suppl/brtmp.1978.20Mar2018.nc', + 'input_suppl/brtmp.1979.20Mar2018.nc', + 'input_suppl/brtmp.1980.20Mar2018.nc', + 'input_suppl/brtmp.1981.20Mar2018.nc', + 'input_suppl/brtmp.1982.20Mar2018.nc', + 'input_suppl/brtmp.1983.20Mar2018.nc', + 'input_suppl/brtmp.1984.20Mar2018.nc', + 'input_suppl/brtmp.1985.20Mar2018.nc', + 'input_suppl/brtmp.1986.20Mar2018.nc', + 'input_suppl/brtmp.1987.20Mar2018.nc', + 'input_suppl/brtmp.1988.20Mar2018.nc', + 'input_suppl/brtmp.1989.20Mar2018.nc', + 'input_suppl/brtmp.1990.20Mar2018.nc', + 'input_suppl/brtmp.1991.20Mar2018.nc', + 'input_suppl/brtmp.1992.20Mar2018.nc', + 'input_suppl/brtmp.1993.20Mar2018.nc', + 'input_suppl/brtmp.1994.20Mar2018.nc', + 'input_suppl/brtmp.1995.20Mar2018.nc', + 'input_suppl/brtmp.1996.20Mar2018.nc', + 'input_suppl/brtmp.1997.20Mar2018.nc', + 'input_suppl/brtmp.1998.20Mar2018.nc', + 'input_suppl/brtmp.1999.20Mar2018.nc', + 'input_suppl/brtmp.2000.20Mar2018.nc', + 'input_suppl/brtmp.2001.20Mar2018.nc', + 'input_suppl/brtmp.2002.20Mar2018.nc', + 'input_suppl/brtmp.2003.20Mar2018.nc', + 'input_suppl/brtmp.2004.20Mar2018.nc', + 'input_suppl/brtmp.2005.20Mar2018.nc', + 'input_suppl/brtmp.2006.20Mar2018.nc', + 'input_suppl/brtmp.2007.20Mar2018.nc', + 'input_suppl/brtmp.2008.20Mar2018.nc', + 'input_suppl/brtmp.2009.20Mar2018.nc', + 'input_suppl/brtmp.2010.20Mar2018.nc', + 'input_suppl/brtmp.2011.20Mar2018.nc', + 'input_suppl/brtmp.2012.20Mar2018.nc', + 'input_suppl/brtmp.2013.20Mar2018.nc', + 'input_suppl/brtmp.2014.20Mar2018.nc', + 'input_suppl/brtmp.2015.20Mar2018.nc', + 'input_suppl/brtmp.2016.20Mar2018.nc', + 'input_suppl/brtmp.2017.20Mar2018.nc', + 'input_suppl/brtmp.2018.11Jan2019.nc', + 'input_suppl/brtmp.2019.16Jan2020.nc', + 'input_suppl/brtmp.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'ts' +inputDict['A3hrPt'][key]['outputVarName'] = 'ts' +inputDict['A3hrPt'][key]['outputUnits'] = 'K' +inputDict['A3hrPt'][key]['positive'] = '' +key = 'u_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/u_10.1958.25Mar2020.nc', + 'input_atmos/u_10.1959.25Mar2020.nc', + 'input_atmos/u_10.1960.25Mar2020.nc', + 'input_atmos/u_10.1961.25Mar2020.nc', + 'input_atmos/u_10.1962.25Mar2020.nc', + 'input_atmos/u_10.1963.25Mar2020.nc', + 'input_atmos/u_10.1964.25Mar2020.nc', + 'input_atmos/u_10.1965.25Mar2020.nc', + 'input_atmos/u_10.1966.25Mar2020.nc', + 'input_atmos/u_10.1967.25Mar2020.nc', + 'input_atmos/u_10.1968.25Mar2020.nc', + 'input_atmos/u_10.1969.25Mar2020.nc', + 'input_atmos/u_10.1970.25Mar2020.nc', + 'input_atmos/u_10.1971.25Mar2020.nc', + 'input_atmos/u_10.1972.25Mar2020.nc', + 'input_atmos/u_10.1973.25Mar2020.nc', + 'input_atmos/u_10.1974.25Mar2020.nc', + 'input_atmos/u_10.1975.25Mar2020.nc', + 'input_atmos/u_10.1976.25Mar2020.nc', + 'input_atmos/u_10.1977.25Mar2020.nc', + 'input_atmos/u_10.1978.25Mar2020.nc', + 'input_atmos/u_10.1979.25Mar2020.nc', + 'input_atmos/u_10.1980.25Mar2020.nc', + 'input_atmos/u_10.1981.25Mar2020.nc', + 'input_atmos/u_10.1982.25Mar2020.nc', + 'input_atmos/u_10.1983.25Mar2020.nc', + 'input_atmos/u_10.1984.25Mar2020.nc', + 'input_atmos/u_10.1985.25Mar2020.nc', + 'input_atmos/u_10.1986.25Mar2020.nc', + 'input_atmos/u_10.1987.25Mar2020.nc', + 'input_atmos/u_10.1988.25Mar2020.nc', + 'input_atmos/u_10.1989.25Mar2020.nc', + 'input_atmos/u_10.1990.25Mar2020.nc', + 'input_atmos/u_10.1991.25Mar2020.nc', + 'input_atmos/u_10.1992.25Mar2020.nc', + 'input_atmos/u_10.1993.25Mar2020.nc', + 'input_atmos/u_10.1994.25Mar2020.nc', + 'input_atmos/u_10.1995.25Mar2020.nc', + 'input_atmos/u_10.1996.25Mar2020.nc', + 'input_atmos/u_10.1997.25Mar2020.nc', + 'input_atmos/u_10.1998.25Mar2020.nc', + 'input_atmos/u_10.1999.25Mar2020.nc', + 'input_atmos/u_10.2000.25Mar2020.nc', + 'input_atmos/u_10.2001.25Mar2020.nc', + 'input_atmos/u_10.2002.25Mar2020.nc', + 'input_atmos/u_10.2003.25Mar2020.nc', + 'input_atmos/u_10.2004.25Mar2020.nc', + 'input_atmos/u_10.2005.25Mar2020.nc', + 'input_atmos/u_10.2006.25Mar2020.nc', + 'input_atmos/u_10.2007.25Mar2020.nc', + 'input_atmos/u_10.2008.25Mar2020.nc', + 'input_atmos/u_10.2009.25Mar2020.nc', + 'input_atmos/u_10.2010.25Mar2020.nc', + 'input_atmos/u_10.2011.25Mar2020.nc', + 'input_atmos/u_10.2012.25Mar2020.nc', + 'input_atmos/u_10.2013.25Mar2020.nc', + 'input_atmos/u_10.2014.25Mar2020.nc', + 'input_atmos/u_10.2015.25Mar2020.nc', + 'input_atmos/u_10.2016.25Mar2020.nc', + 'input_atmos/u_10.2017.25Mar2020.nc', + 'input_atmos/u_10.2018.25Mar2020.nc', + 'input_atmos/u_10.2019.25Mar2020.nc', + 'input_atmos/u_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'uas_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'uas' +inputDict['A3hrPt'][key]['outputUnits'] = 'm s-1' +inputDict['A3hrPt'][key]['positive'] = '' +key = 'v_10' +inputDict['A3hrPt'][key] = {} +inputDict['A3hrPt'][key]['fileList'] = [ + 'input_atmos/v_10.1958.25Mar2020.nc', + 'input_atmos/v_10.1959.25Mar2020.nc', + 'input_atmos/v_10.1960.25Mar2020.nc', + 'input_atmos/v_10.1961.25Mar2020.nc', + 'input_atmos/v_10.1962.25Mar2020.nc', + 'input_atmos/v_10.1963.25Mar2020.nc', + 'input_atmos/v_10.1964.25Mar2020.nc', + 'input_atmos/v_10.1965.25Mar2020.nc', + 'input_atmos/v_10.1966.25Mar2020.nc', + 'input_atmos/v_10.1967.25Mar2020.nc', + 'input_atmos/v_10.1968.25Mar2020.nc', + 'input_atmos/v_10.1969.25Mar2020.nc', + 'input_atmos/v_10.1970.25Mar2020.nc', + 'input_atmos/v_10.1971.25Mar2020.nc', + 'input_atmos/v_10.1972.25Mar2020.nc', + 'input_atmos/v_10.1973.25Mar2020.nc', + 'input_atmos/v_10.1974.25Mar2020.nc', + 'input_atmos/v_10.1975.25Mar2020.nc', + 'input_atmos/v_10.1976.25Mar2020.nc', + 'input_atmos/v_10.1977.25Mar2020.nc', + 'input_atmos/v_10.1978.25Mar2020.nc', + 'input_atmos/v_10.1979.25Mar2020.nc', + 'input_atmos/v_10.1980.25Mar2020.nc', + 'input_atmos/v_10.1981.25Mar2020.nc', + 'input_atmos/v_10.1982.25Mar2020.nc', + 'input_atmos/v_10.1983.25Mar2020.nc', + 'input_atmos/v_10.1984.25Mar2020.nc', + 'input_atmos/v_10.1985.25Mar2020.nc', + 'input_atmos/v_10.1986.25Mar2020.nc', + 'input_atmos/v_10.1987.25Mar2020.nc', + 'input_atmos/v_10.1988.25Mar2020.nc', + 'input_atmos/v_10.1989.25Mar2020.nc', + 'input_atmos/v_10.1990.25Mar2020.nc', + 'input_atmos/v_10.1991.25Mar2020.nc', + 'input_atmos/v_10.1992.25Mar2020.nc', + 'input_atmos/v_10.1993.25Mar2020.nc', + 'input_atmos/v_10.1994.25Mar2020.nc', + 'input_atmos/v_10.1995.25Mar2020.nc', + 'input_atmos/v_10.1996.25Mar2020.nc', + 'input_atmos/v_10.1997.25Mar2020.nc', + 'input_atmos/v_10.1998.25Mar2020.nc', + 'input_atmos/v_10.1999.25Mar2020.nc', + 'input_atmos/v_10.2000.25Mar2020.nc', + 'input_atmos/v_10.2001.25Mar2020.nc', + 'input_atmos/v_10.2002.25Mar2020.nc', + 'input_atmos/v_10.2003.25Mar2020.nc', + 'input_atmos/v_10.2004.25Mar2020.nc', + 'input_atmos/v_10.2005.25Mar2020.nc', + 'input_atmos/v_10.2006.25Mar2020.nc', + 'input_atmos/v_10.2007.25Mar2020.nc', + 'input_atmos/v_10.2008.25Mar2020.nc', + 'input_atmos/v_10.2009.25Mar2020.nc', + 'input_atmos/v_10.2010.25Mar2020.nc', + 'input_atmos/v_10.2011.25Mar2020.nc', + 'input_atmos/v_10.2012.25Mar2020.nc', + 'input_atmos/v_10.2013.25Mar2020.nc', + 'input_atmos/v_10.2014.25Mar2020.nc', + 'input_atmos/v_10.2015.25Mar2020.nc', + 'input_atmos/v_10.2016.25Mar2020.nc', + 'input_atmos/v_10.2017.25Mar2020.nc', + 'input_atmos/v_10.2018.25Mar2020.nc', + 'input_atmos/v_10.2019.25Mar2020.nc', + 'input_atmos/v_10.2020.24jul2020.nc' + ] +inputDict['A3hrPt'][key]['inputVarName'] = 'vas_10m' +inputDict['A3hrPt'][key]['outputVarName'] = 'vas' +inputDict['A3hrPt'][key]['outputUnits'] = 'm s-1' +inputDict['A3hrPt'][key]['positive'] = '' +inputDict['LIday'] = {} +key = 'licalvf' +inputDict['LIday'][key] = {} +inputDict['LIday'][key]['fileList'] = [ + 'input_atmos/solid_runoff.1958.16Feb2019.nc', + 'input_atmos/solid_runoff.1959.16Feb2019.nc', + 'input_atmos/solid_runoff.1960.16Feb2019.nc', + 'input_atmos/solid_runoff.1961.16Feb2019.nc', + 'input_atmos/solid_runoff.1962.16Feb2019.nc', + 'input_atmos/solid_runoff.1963.16Feb2019.nc', + 'input_atmos/solid_runoff.1964.16Feb2019.nc', + 'input_atmos/solid_runoff.1965.16Feb2019.nc', + 'input_atmos/solid_runoff.1966.16Feb2019.nc', + 'input_atmos/solid_runoff.1967.16Feb2019.nc', + 'input_atmos/solid_runoff.1968.16Feb2019.nc', + 'input_atmos/solid_runoff.1969.16Feb2019.nc', + 'input_atmos/solid_runoff.1970.16Feb2019.nc', + 'input_atmos/solid_runoff.1971.16Feb2019.nc', + 'input_atmos/solid_runoff.1972.16Feb2019.nc', + 'input_atmos/solid_runoff.1973.16Feb2019.nc', + 'input_atmos/solid_runoff.1974.16Feb2019.nc', + 'input_atmos/solid_runoff.1975.16Feb2019.nc', + 'input_atmos/solid_runoff.1976.16Feb2019.nc', + 'input_atmos/solid_runoff.1977.16Feb2019.nc', + 'input_atmos/solid_runoff.1978.16Feb2019.nc', + 'input_atmos/solid_runoff.1979.16Feb2019.nc', + 'input_atmos/solid_runoff.1980.16Feb2019.nc', + 'input_atmos/solid_runoff.1981.16Feb2019.nc', + 'input_atmos/solid_runoff.1982.16Feb2019.nc', + 'input_atmos/solid_runoff.1983.16Feb2019.nc', + 'input_atmos/solid_runoff.1984.16Feb2019.nc', + 'input_atmos/solid_runoff.1985.16Feb2019.nc', + 'input_atmos/solid_runoff.1986.16Feb2019.nc', + 'input_atmos/solid_runoff.1987.16Feb2019.nc', + 'input_atmos/solid_runoff.1988.16Feb2019.nc', + 'input_atmos/solid_runoff.1989.16Feb2019.nc', + 'input_atmos/solid_runoff.1990.16Feb2019.nc', + 'input_atmos/solid_runoff.1991.16Feb2019.nc', + 'input_atmos/solid_runoff.1992.16Feb2019.nc', + 'input_atmos/solid_runoff.1993.16Feb2019.nc', + 'input_atmos/solid_runoff.1994.16Feb2019.nc', + 'input_atmos/solid_runoff.1995.16Feb2019.nc', + 'input_atmos/solid_runoff.1996.16Feb2019.nc', + 'input_atmos/solid_runoff.1997.16Feb2019.nc', + 'input_atmos/solid_runoff.1998.16Feb2019.nc', + 'input_atmos/solid_runoff.1999.16Feb2019.nc', + 'input_atmos/solid_runoff.2000.16Feb2019.nc', + 'input_atmos/solid_runoff.2001.16Feb2019.nc', + 'input_atmos/solid_runoff.2002.16Feb2019.nc', + 'input_atmos/solid_runoff.2003.16Feb2019.nc', + 'input_atmos/solid_runoff.2004.16Feb2019.nc', + 'input_atmos/solid_runoff.2005.16Feb2019.nc', + 'input_atmos/solid_runoff.2006.16Feb2019.nc', + 'input_atmos/solid_runoff.2007.16Feb2019.nc', + 'input_atmos/solid_runoff.2008.16Feb2019.nc', + 'input_atmos/solid_runoff.2009.16Feb2019.nc', + 'input_atmos/solid_runoff.2010.16Feb2019.nc', + 'input_atmos/solid_runoff.2011.16Feb2019.nc', + 'input_atmos/solid_runoff.2012.16Feb2019.nc', + 'input_atmos/solid_runoff.2013.16Feb2019.nc', + 'input_atmos/solid_runoff.2014.16Feb2019.nc', + 'input_atmos/solid_runoff.2015.16Feb2019.nc', + 'input_atmos/solid_runoff.2016.16Feb2019.nc', + 'input_atmos/solid_runoff.2017.16Feb2019.nc', + 'input_atmos/solid_runoff.2018.16Feb2019.nc', + 'input_atmos/solid_runoff.2019.16Jan2020.nc', + 'input_atmos/solid_runoff.2020.24jul2020.nc' + ] +inputDict['LIday'][key]['inputVarName'] = 'licalvf' +inputDict['LIday'][key]['outputVarName'] = 'licalvf' +inputDict['LIday'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['LIday'][key]['positive'] = '' +inputDict['Lday'] = {} +key = 'friver' +inputDict['Lday'][key] = {} +inputDict['Lday'][key]['fileList'] = [ + 'input_atmos/liquid_runoff.1958.16Feb2019.nc', + 'input_atmos/liquid_runoff.1959.16Feb2019.nc', + 'input_atmos/liquid_runoff.1960.16Feb2019.nc', + 'input_atmos/liquid_runoff.1961.16Feb2019.nc', + 'input_atmos/liquid_runoff.1962.16Feb2019.nc', + 'input_atmos/liquid_runoff.1963.16Feb2019.nc', + 'input_atmos/liquid_runoff.1964.16Feb2019.nc', + 'input_atmos/liquid_runoff.1965.16Feb2019.nc', + 'input_atmos/liquid_runoff.1966.16Feb2019.nc', + 'input_atmos/liquid_runoff.1967.16Feb2019.nc', + 'input_atmos/liquid_runoff.1968.16Feb2019.nc', + 'input_atmos/liquid_runoff.1969.16Feb2019.nc', + 'input_atmos/liquid_runoff.1970.16Feb2019.nc', + 'input_atmos/liquid_runoff.1971.16Feb2019.nc', + 'input_atmos/liquid_runoff.1972.16Feb2019.nc', + 'input_atmos/liquid_runoff.1973.16Feb2019.nc', + 'input_atmos/liquid_runoff.1974.16Feb2019.nc', + 'input_atmos/liquid_runoff.1975.16Feb2019.nc', + 'input_atmos/liquid_runoff.1976.16Feb2019.nc', + 'input_atmos/liquid_runoff.1977.16Feb2019.nc', + 'input_atmos/liquid_runoff.1978.16Feb2019.nc', + 'input_atmos/liquid_runoff.1979.16Feb2019.nc', + 'input_atmos/liquid_runoff.1980.16Feb2019.nc', + 'input_atmos/liquid_runoff.1981.16Feb2019.nc', + 'input_atmos/liquid_runoff.1982.16Feb2019.nc', + 'input_atmos/liquid_runoff.1983.16Feb2019.nc', + 'input_atmos/liquid_runoff.1984.16Feb2019.nc', + 'input_atmos/liquid_runoff.1985.16Feb2019.nc', + 'input_atmos/liquid_runoff.1986.16Feb2019.nc', + 'input_atmos/liquid_runoff.1987.16Feb2019.nc', + 'input_atmos/liquid_runoff.1988.16Feb2019.nc', + 'input_atmos/liquid_runoff.1989.16Feb2019.nc', + 'input_atmos/liquid_runoff.1990.16Feb2019.nc', + 'input_atmos/liquid_runoff.1991.16Feb2019.nc', + 'input_atmos/liquid_runoff.1992.16Feb2019.nc', + 'input_atmos/liquid_runoff.1993.16Feb2019.nc', + 'input_atmos/liquid_runoff.1994.16Feb2019.nc', + 'input_atmos/liquid_runoff.1995.16Feb2019.nc', + 'input_atmos/liquid_runoff.1996.16Feb2019.nc', + 'input_atmos/liquid_runoff.1997.16Feb2019.nc', + 'input_atmos/liquid_runoff.1998.16Feb2019.nc', + 'input_atmos/liquid_runoff.1999.16Feb2019.nc', + 'input_atmos/liquid_runoff.2000.16Feb2019.nc', + 'input_atmos/liquid_runoff.2001.16Feb2019.nc', + 'input_atmos/liquid_runoff.2002.16Feb2019.nc', + 'input_atmos/liquid_runoff.2003.16Feb2019.nc', + 'input_atmos/liquid_runoff.2004.16Feb2019.nc', + 'input_atmos/liquid_runoff.2005.16Feb2019.nc', + 'input_atmos/liquid_runoff.2006.16Feb2019.nc', + 'input_atmos/liquid_runoff.2007.16Feb2019.nc', + 'input_atmos/liquid_runoff.2008.16Feb2019.nc', + 'input_atmos/liquid_runoff.2009.16Feb2019.nc', + 'input_atmos/liquid_runoff.2010.16Feb2019.nc', + 'input_atmos/liquid_runoff.2011.16Feb2019.nc', + 'input_atmos/liquid_runoff.2012.16Feb2019.nc', + 'input_atmos/liquid_runoff.2013.16Feb2019.nc', + 'input_atmos/liquid_runoff.2014.16Feb2019.nc', + 'input_atmos/liquid_runoff.2015.16Feb2019.nc', + 'input_atmos/liquid_runoff.2016.16Feb2019.nc', + 'input_atmos/liquid_runoff.2017.16Feb2019.nc', + 'input_atmos/liquid_runoff.2018.16Feb2019.nc', + 'input_atmos/liquid_runoff.2019.16Jan2020.nc', + 'input_atmos/liquid_runoff.2020.24jul2020.nc' + ] +inputDict['Lday'][key]['inputVarName'] = 'friver' +inputDict['Lday'][key]['outputVarName'] = 'friver' +inputDict['Lday'][key]['outputUnits'] = 'kg m-2 s-1' +inputDict['Lday'][key]['positive'] = '' +inputDict['Oday'] = {} +key = 'tos' +inputDict['Oday'][key] = {} +inputDict['Oday'][key]['fileList'] = [ + 'input_suppl/sst.COBESST.1958.20Mar2018.nc', + 'input_suppl/sst.COBESST.1959.20Mar2018.nc', + 'input_suppl/sst.COBESST.1960.20Mar2018.nc', + 'input_suppl/sst.COBESST.1961.20Mar2018.nc', + 'input_suppl/sst.COBESST.1962.20Mar2018.nc', + 'input_suppl/sst.COBESST.1963.20Mar2018.nc', + 'input_suppl/sst.COBESST.1964.20Mar2018.nc', + 'input_suppl/sst.COBESST.1965.20Mar2018.nc', + 'input_suppl/sst.COBESST.1966.20Mar2018.nc', + 'input_suppl/sst.COBESST.1967.20Mar2018.nc', + 'input_suppl/sst.COBESST.1968.20Mar2018.nc', + 'input_suppl/sst.COBESST.1969.20Mar2018.nc', + 'input_suppl/sst.COBESST.1970.20Mar2018.nc', + 'input_suppl/sst.COBESST.1971.20Mar2018.nc', + 'input_suppl/sst.COBESST.1972.20Mar2018.nc', + 'input_suppl/sst.COBESST.1973.20Mar2018.nc', + 'input_suppl/sst.COBESST.1974.20Mar2018.nc', + 'input_suppl/sst.COBESST.1975.20Mar2018.nc', + 'input_suppl/sst.COBESST.1976.20Mar2018.nc', + 'input_suppl/sst.COBESST.1977.20Mar2018.nc', + 'input_suppl/sst.COBESST.1978.20Mar2018.nc', + 'input_suppl/sst.COBESST.1979.20Mar2018.nc', + 'input_suppl/sst.COBESST.1980.20Mar2018.nc', + 'input_suppl/sst.COBESST.1981.20Mar2018.nc', + 'input_suppl/sst.COBESST.1982.20Mar2018.nc', + 'input_suppl/sst.COBESST.1983.20Mar2018.nc', + 'input_suppl/sst.COBESST.1984.20Mar2018.nc', + 'input_suppl/sst.COBESST.1985.20Mar2018.nc', + 'input_suppl/sst.COBESST.1986.20Mar2018.nc', + 'input_suppl/sst.COBESST.1987.20Mar2018.nc', + 'input_suppl/sst.COBESST.1988.20Mar2018.nc', + 'input_suppl/sst.COBESST.1989.20Mar2018.nc', + 'input_suppl/sst.COBESST.1990.20Mar2018.nc', + 'input_suppl/sst.COBESST.1991.20Mar2018.nc', + 'input_suppl/sst.COBESST.1992.20Mar2018.nc', + 'input_suppl/sst.COBESST.1993.20Mar2018.nc', + 'input_suppl/sst.COBESST.1994.20Mar2018.nc', + 'input_suppl/sst.COBESST.1995.20Mar2018.nc', + 'input_suppl/sst.COBESST.1996.20Mar2018.nc', + 'input_suppl/sst.COBESST.1997.20Mar2018.nc', + 'input_suppl/sst.COBESST.1998.20Mar2018.nc', + 'input_suppl/sst.COBESST.1999.20Mar2018.nc', + 'input_suppl/sst.COBESST.2000.20Mar2018.nc', + 'input_suppl/sst.COBESST.2001.20Mar2018.nc', + 'input_suppl/sst.COBESST.2002.20Mar2018.nc', + 'input_suppl/sst.COBESST.2003.20Mar2018.nc', + 'input_suppl/sst.COBESST.2004.20Mar2018.nc', + 'input_suppl/sst.COBESST.2005.20Mar2018.nc', + 'input_suppl/sst.COBESST.2006.20Mar2018.nc', + 'input_suppl/sst.COBESST.2007.20Mar2018.nc', + 'input_suppl/sst.COBESST.2008.20Mar2018.nc', + 'input_suppl/sst.COBESST.2009.20Mar2018.nc', + 'input_suppl/sst.COBESST.2010.20Mar2018.nc', + 'input_suppl/sst.COBESST.2011.20Mar2018.nc', + 'input_suppl/sst.COBESST.2012.20Mar2018.nc', + 'input_suppl/sst.COBESST.2013.20Mar2018.nc', + 'input_suppl/sst.COBESST.2014.20Mar2018.nc', + 'input_suppl/sst.COBESST.2015.20Mar2018.nc', + 'input_suppl/sst.COBESST.2016.20Mar2018.nc', + 'input_suppl/sst.COBESST.2017.20Mar2018.nc', + 'input_suppl/sst.COBESST.2018.10Jan2019.nc', + 'input_suppl/sst.COBESST.2019.15Jan2020.nc', + 'input_suppl/sst.COBESST.2020.24jul2020.nc' + ] +inputDict['Oday'][key]['inputVarName'] = 'tos' +inputDict['Oday'][key]['outputVarName'] = 'tos' +inputDict['Oday'][key]['outputUnits'] = 'degC' +inputDict['Oday'][key]['positive'] = '' +inputDict['OmonC'] = {} +key = 's_u10a' +inputDict['OmonC'][key] = {} +inputDict['OmonC'][key]['fileList'] = [ + 'input_clim/woa13_decav_s_0-10m.mon_01v2_filled.nc' + ] +inputDict['OmonC'][key]['inputVarName'] = 's_u10a' +inputDict['OmonC'][key]['outputVarName'] = 'sos' +inputDict['OmonC'][key]['outputUnits'] = '0.001' +inputDict['OmonC'][key]['positive'] = '' +inputDict['OyrC'] = {} +key = 'uo' +inputDict['OyrC'][key] = {} +inputDict['OyrC'][key]['fileList'] = [ + 'input_clim/uosurf_3d_nov1999-oct2009.nc' + ] +inputDict['OyrC'][key]['inputVarName'] = 'uo' +inputDict['OyrC'][key]['outputVarName'] = 'uos' +inputDict['OyrC'][key]['outputUnits'] = 'm s-1' +inputDict['OyrC'][key]['positive'] = '' +key = 'vo' +inputDict['OyrC'][key] = {} +inputDict['OyrC'][key]['fileList'] = [ + 'input_clim/vosurf_3d_nov1999-oct2009.nc' + ] +inputDict['OyrC'][key]['inputVarName'] = 'vo' +inputDict['OyrC'][key]['outputVarName'] = 'vos' +inputDict['OyrC'][key]['outputUnits'] = 'm s-1' +inputDict['OyrC'][key]['positive'] = '' +inputDict['SI3hrPt'] = {} +key = 'siconca' +inputDict['SI3hrPt'][key] = {} +inputDict['SI3hrPt'][key]['fileList'] = [ + 'input_suppl/ice.1958.20Mar2018.nc', + 'input_suppl/ice.1959.20Mar2018.nc', + 'input_suppl/ice.1960.20Mar2018.nc', + 'input_suppl/ice.1961.20Mar2018.nc', + 'input_suppl/ice.1962.20Mar2018.nc', + 'input_suppl/ice.1963.20Mar2018.nc', + 'input_suppl/ice.1964.20Mar2018.nc', + 'input_suppl/ice.1965.20Mar2018.nc', + 'input_suppl/ice.1966.20Mar2018.nc', + 'input_suppl/ice.1967.20Mar2018.nc', + 'input_suppl/ice.1968.20Mar2018.nc', + 'input_suppl/ice.1969.20Mar2018.nc', + 'input_suppl/ice.1970.20Mar2018.nc', + 'input_suppl/ice.1971.20Mar2018.nc', + 'input_suppl/ice.1972.20Mar2018.nc', + 'input_suppl/ice.1973.20Mar2018.nc', + 'input_suppl/ice.1974.20Mar2018.nc', + 'input_suppl/ice.1975.20Mar2018.nc', + 'input_suppl/ice.1976.20Mar2018.nc', + 'input_suppl/ice.1977.20Mar2018.nc', + 'input_suppl/ice.1978.20Mar2018.nc', + 'input_suppl/ice.1979.20Mar2018.nc', + 'input_suppl/ice.1980.20Mar2018.nc', + 'input_suppl/ice.1981.20Mar2018.nc', + 'input_suppl/ice.1982.20Mar2018.nc', + 'input_suppl/ice.1983.20Mar2018.nc', + 'input_suppl/ice.1984.20Mar2018.nc', + 'input_suppl/ice.1985.20Mar2018.nc', + 'input_suppl/ice.1986.20Mar2018.nc', + 'input_suppl/ice.1987.20Mar2018.nc', + 'input_suppl/ice.1988.20Mar2018.nc', + 'input_suppl/ice.1989.20Mar2018.nc', + 'input_suppl/ice.1990.20Mar2018.nc', + 'input_suppl/ice.1991.20Mar2018.nc', + 'input_suppl/ice.1992.20Mar2018.nc', + 'input_suppl/ice.1993.20Mar2018.nc', + 'input_suppl/ice.1994.20Mar2018.nc', + 'input_suppl/ice.1995.20Mar2018.nc', + 'input_suppl/ice.1996.20Mar2018.nc', + 'input_suppl/ice.1997.20Mar2018.nc', + 'input_suppl/ice.1998.20Mar2018.nc', + 'input_suppl/ice.1999.20Mar2018.nc', + 'input_suppl/ice.2000.20Mar2018.nc', + 'input_suppl/ice.2001.20Mar2018.nc', + 'input_suppl/ice.2002.20Mar2018.nc', + 'input_suppl/ice.2003.20Mar2018.nc', + 'input_suppl/ice.2004.20Mar2018.nc', + 'input_suppl/ice.2005.20Mar2018.nc', + 'input_suppl/ice.2006.20Mar2018.nc', + 'input_suppl/ice.2007.20Mar2018.nc', + 'input_suppl/ice.2008.20Mar2018.nc', + 'input_suppl/ice.2009.20Mar2018.nc', + 'input_suppl/ice.2010.20Mar2018.nc', + 'input_suppl/ice.2011.20Mar2018.nc', + 'input_suppl/ice.2012.20Mar2018.nc', + 'input_suppl/ice.2013.20Mar2018.nc', + 'input_suppl/ice.2014.20Mar2018.nc', + 'input_suppl/ice.2015.20Mar2018.nc', + 'input_suppl/ice.2016.20Mar2018.nc', + 'input_suppl/ice.2017.20Mar2018.nc', + 'input_suppl/ice.2018.11Jan2019.nc', + 'input_suppl/ice.2019.16Jan2020.nc', + 'input_suppl/ice.2020.24jul2020.nc' + ] +inputDict['SI3hrPt'][key]['inputVarName'] = 'siconca' +inputDict['SI3hrPt'][key]['outputVarName'] = 'siconca' +inputDict['SI3hrPt'][key]['outputUnits'] = '%' +inputDict['SI3hrPt'][key]['positive'] = '' +inputDict['SIday'] = {} +key = 'siconco' +inputDict['SIday'][key] = {} +inputDict['SIday'][key]['fileList'] = [ + 'input_suppl/ice.COBESST.1958.20Mar2018.nc', + 'input_suppl/ice.COBESST.1959.20Mar2018.nc', + 'input_suppl/ice.COBESST.1960.20Mar2018.nc', + 'input_suppl/ice.COBESST.1961.20Mar2018.nc', + 'input_suppl/ice.COBESST.1962.20Mar2018.nc', + 'input_suppl/ice.COBESST.1963.20Mar2018.nc', + 'input_suppl/ice.COBESST.1964.20Mar2018.nc', + 'input_suppl/ice.COBESST.1965.20Mar2018.nc', + 'input_suppl/ice.COBESST.1966.20Mar2018.nc', + 'input_suppl/ice.COBESST.1967.20Mar2018.nc', + 'input_suppl/ice.COBESST.1968.20Mar2018.nc', + 'input_suppl/ice.COBESST.1969.20Mar2018.nc', + 'input_suppl/ice.COBESST.1970.20Mar2018.nc', + 'input_suppl/ice.COBESST.1971.20Mar2018.nc', + 'input_suppl/ice.COBESST.1972.20Mar2018.nc', + 'input_suppl/ice.COBESST.1973.20Mar2018.nc', + 'input_suppl/ice.COBESST.1974.20Mar2018.nc', + 'input_suppl/ice.COBESST.1975.20Mar2018.nc', + 'input_suppl/ice.COBESST.1976.20Mar2018.nc', + 'input_suppl/ice.COBESST.1977.20Mar2018.nc', + 'input_suppl/ice.COBESST.1978.20Mar2018.nc', + 'input_suppl/ice.COBESST.1979.20Mar2018.nc', + 'input_suppl/ice.COBESST.1980.20Mar2018.nc', + 'input_suppl/ice.COBESST.1981.20Mar2018.nc', + 'input_suppl/ice.COBESST.1982.20Mar2018.nc', + 'input_suppl/ice.COBESST.1983.20Mar2018.nc', + 'input_suppl/ice.COBESST.1984.20Mar2018.nc', + 'input_suppl/ice.COBESST.1985.20Mar2018.nc', + 'input_suppl/ice.COBESST.1986.20Mar2018.nc', + 'input_suppl/ice.COBESST.1987.20Mar2018.nc', + 'input_suppl/ice.COBESST.1988.20Mar2018.nc', + 'input_suppl/ice.COBESST.1989.20Mar2018.nc', + 'input_suppl/ice.COBESST.1990.20Mar2018.nc', + 'input_suppl/ice.COBESST.1991.20Mar2018.nc', + 'input_suppl/ice.COBESST.1992.20Mar2018.nc', + 'input_suppl/ice.COBESST.1993.20Mar2018.nc', + 'input_suppl/ice.COBESST.1994.20Mar2018.nc', + 'input_suppl/ice.COBESST.1995.20Mar2018.nc', + 'input_suppl/ice.COBESST.1996.20Mar2018.nc', + 'input_suppl/ice.COBESST.1997.20Mar2018.nc', + 'input_suppl/ice.COBESST.1998.20Mar2018.nc', + 'input_suppl/ice.COBESST.1999.20Mar2018.nc', + 'input_suppl/ice.COBESST.2000.20Mar2018.nc', + 'input_suppl/ice.COBESST.2001.20Mar2018.nc', + 'input_suppl/ice.COBESST.2002.20Mar2018.nc', + 'input_suppl/ice.COBESST.2003.20Mar2018.nc', + 'input_suppl/ice.COBESST.2004.20Mar2018.nc', + 'input_suppl/ice.COBESST.2005.20Mar2018.nc', + 'input_suppl/ice.COBESST.2006.20Mar2018.nc', + 'input_suppl/ice.COBESST.2007.20Mar2018.nc', + 'input_suppl/ice.COBESST.2008.20Mar2018.nc', + 'input_suppl/ice.COBESST.2009.20Mar2018.nc', + 'input_suppl/ice.COBESST.2010.20Mar2018.nc', + 'input_suppl/ice.COBESST.2011.20Mar2018.nc', + 'input_suppl/ice.COBESST.2012.20Mar2018.nc', + 'input_suppl/ice.COBESST.2013.20Mar2018.nc', + 'input_suppl/ice.COBESST.2014.20Mar2018.nc', + 'input_suppl/ice.COBESST.2015.20Mar2018.nc', + 'input_suppl/ice.COBESST.2016.20Mar2018.nc', + 'input_suppl/ice.COBESST.2017.20Mar2018.nc', + 'input_suppl/ice.COBESST.2018.10Jan2019.nc', + 'input_suppl/ice.COBESST.2019.15Jan2020.nc', + 'input_suppl/ice.COBESST.2020.24jul2020.nc' + ] +inputDict['SIday'][key]['inputVarName'] = 'siconco' +inputDict['SIday'][key]['outputVarName'] = 'siconc' +inputDict['SIday'][key]['outputUnits'] = '%' +inputDict['SIday'][key]['positive'] = '' +# fixed in time +inputDict['Afx'] = {} +key = 'areacello' +inputDict['Afx'][key] = {} +inputDict['Afx'][key]['fileList'] = [ + 'input_fx/jra55_cell_area.10Apr2018.nc' + ] +inputDict['Afx'][key]['inputVarName'] = 'areacello' +inputDict['Afx'][key]['outputVarName'] = 'areacella' +inputDict['Afx'][key]['outputUnits'] = 'm2' +inputDict['Afx'][key]['positive'] = '' +key = 'sftof' +inputDict['Afx'][key] = {} +inputDict['Afx'][key]['fileList'] = [ + 'input_fx/jra55_mask_sea.10Apr2018.nc' + ] +inputDict['Afx'][key]['inputVarName'] = 'sftof' +inputDict['Afx'][key]['outputVarName'] = 'sftof' +inputDict['Afx'][key]['outputUnits'] = '1' +inputDict['Afx'][key]['positive'] = '' +inputDict['Ofx'] = {} +key = 'areacellg' +inputDict['Ofx'][key] = {} +inputDict['Ofx'][key]['fileList'] = [ + 'input_fx/runoff_cell_area.10Apr2018.nc' + ] +inputDict['Ofx'][key]['inputVarName'] = 'areacellg' +inputDict['Ofx'][key]['outputVarName'] = 'areacello' +inputDict['Ofx'][key]['outputUnits'] = 'm2' +inputDict['Ofx'][key]['positive'] = '' + +#%% Loop through entries and process file lists +for key in inputDict.keys(): + # User provided input + cmorTable = ''.join(['Tables/input4MIPs_',key,'.json']) ; # Aday,Amon,Lmon,Omon,SImon,fx - Load target table, axis info (coordinates, grid*) and CVs + cmorJson = json.load(open(cmorTable)) + inputJson = 'mriJRA55-do-input.json' ; # Update contents of this file to set your global_attributes + newJson = json.load(open(inputJson)) + for var in inputDict[key].keys(): + outVar = inputDict[key][var]['outputVarName'] + # Update frequency based on variable and write output to CMOR input file + newJson['frequency'] = cmorJson['variable_entry'][outVar]['frequency'] + + if var in ['friver','licalvf','areacellg','s_u10a']: + newJson['grid'] = '0.25x0.25 degree latitude x longitude' + newJson['nominal_resolution'] = '25 km' + newJson['grid_label'] = 'gr' + elif var in ['tos','siconco']: + newJson['grid'] = '1x1 degree latitude x longitude' + newJson['nominal_resolution'] = '100 km' + newJson['grid_label'] = 'gn' + elif var in ['uo','vo']: + newJson['grid'] = 'data regridded to the normal atmosphere TL319 gaussian grid (320x640 latxlon) from 0.25x0.25 degree latitude x longitude' + newJson['nominal_resolution'] = '50 km' + newJson['grid_label'] = 'gr' + else: + newJson['grid'] = 'data regridded to the normal atmosphere TL319 gaussian grid (320x640 latxlon) from a reduced TL319 gaussian grid' + newJson['nominal_resolution'] = '50 km' + newJson['grid_label'] = 'gr' + + # areacello -> areacella, areacellg -> areacello + if var in ['friver','licalvf','s_u10a']: + newJson['cell_measures'] = 'area: areacello' + elif var in ['tos','siconco']: + newJson['cell_measures'] = '' + elif var in ['areacello','areacellg']: + newJson['cell_measures'] = '' + else: + newJson['cell_measures'] = 'area: areacella' + + #json.dump(newJson,open('tmp.json','w'),ensure_ascii=True,encoding='utf-8',sort_keys=True) + json.dump(newJson,open('tmp.json','w'),ensure_ascii=True,sort_keys=True) + inputVarName = inputDict[key][var]['inputVarName'] + outputVarName = inputDict[key][var]['outputVarName'] + outputUnits = inputDict[key][var]['outputUnits'] + for count,filePath in enumerate(inputDict[key][var]['fileList']): + print ('key,var:',key,var) + print ('filePath:',filePath) + print ('cmorTable:',cmorTable) + print ('inputVarName:',inputVarName) + print ('outputVarName:',outputVarName) + print ('outputUnits:',outputUnits) + # Open and read input netcdf file + f = cdm.open(filePath) + print ('Source data read start..') + d = f(inputVarName) ; # Or use temporal subset for testing below + #d = f(inputVarName,time=slice(0,5)) + print ('Source data read end..') + # Reset missing value + #d.setMissing(1e20) ; # This should also set fill_value, and suppress CMOR variable history being written + # Get axes + lat = d.getLatitude() + lon = d.getLongitude() + if var in ['uo','vo']: + lev = d.getLevel() + time = d.getTime() ; # Assumes variable is named 'time', for the demo file this is named 'months' + #time = d.getAxis(0) ; # Rather use a file dimension-based load + + #%% Initialize and run CMOR + print ('Start CMORizing..') + # For more information see https://cmor.llnl.gov/mydoc_cmor3_api/ + cmor.setup(inpath='./',netcdf_file_action=cmor.CMOR_REPLACE_4) #,logfile='cmorLog.txt') + cmor.dataset_json('tmp.json') + cmor.load_table(cmorTable) + #cmor.set_cur_dataset_attribute('history',f.history) ; # Force input file attribute as history + # Create axes based on variable + if var in ['q_10','t_10']: + # Reset height2m coordinate value to 10m + heightAx = {'table_entry': 'height2m', + 'units': 'm', + 'coord_vals': cdm.createAxis([10.],id='height') + } + elif var in ['u_10','v_10']: + # Use height10m coordinate entry + heightAx = {'table_entry': 'height10m', + 'units': 'm', + 'coord_vals': cdm.createAxis([10.],id='height') + } + else: + # Use height2m default value + heightAx = {'table_entry': 'height2m', + 'units': 'm', + 'coord_vals': cdm.createAxis([2.],id='height') + } + # Create time based on table + if key == 'A3hrPt': + timeAx = {'table_entry': 'time1', + 'units': time.units + } + elif key == 'SI3hrPt': + timeAx = {'table_entry': 'time1', + 'units': time.units + } + elif key == 'OmonC': + # Create climatological time axis for the WOA13 (1955-2012) temporal range + times = [] ; times_bnds = [] + for count,months in enumerate(range(1,13)): + #print count,months + if months in [1,3,5,7,8,10,12]: + monthendday = 31 + hrs = 12 + elif months in [4,6,9,11]: + monthendday = 30 + hrs = 0 + elif isleap(int(1984)): + monthendday = 29 + hrs = 12 + else: + monthendday = 28 + hrs = 0 + times.append(cdt.componenttime(1984,months,np.int(monthendday/2.),hrs).torel('days since 1955-1-1').value) + # WOA13v2 extends from 1955 to 2012 +# times_bnds.append([cdt.componenttime(1955,months,1,0,0,0).torel('days since 1955-1-1'), +# cdt.componenttime(2012,months,monthendday,12,59,59).torel('days since 1955-1-1')]) + if months < 12: + times_bnds.append([cdt.componenttime(1955,months,1,0,0,0).torel('days since 1955-1-1').value, + cdt.componenttime(2012,months+1,1,0,0,0).torel('days since 1955-1-1').value]) + else: + times_bnds.append([cdt.componenttime(1955,months,1,0,0,0).torel('days since 1955-1-1').value, + cdt.componenttime(2013,1,1,0,0,0).torel('days since 1955-1-1').value]) + time = cdm.createAxis(times,np.array(times_bnds),id='time') + time.units = 'days since 1955-01-01 0.0.0' + timeAx = {'table_entry': 'time2', + 'units': time.units, + 'coord_vals': time + } + elif key == 'OyrC': + if var in ['uo','vo']: + # Create climatological time axis for the GlobCurrent (Nov1999-Oct2009) temporal range + times = [] ; times_bnds = [] + times.append(cdt.componenttime(2004,10,31,12,0,0).torel('days since 1999-11-1').value) + times_bnds.append([cdt.componenttime(1999,11,1,0,0,0).torel('days since 1999-11-1').value, + cdt.componenttime(2009,11,1,0,0,0).torel('days since 1999-11-1').value]) + time = cdm.createAxis(times,np.array(times_bnds),id='time') + time.units = 'days since 1999-11-01 0.0.0' + print (times[0]) + print (times_bnds[0]) + print (time) + timeAx = {'table_entry': 'time2', + 'units': time.units, + 'coord_vals': time + } + elif key == 'LIyrC': + if var in ['licalvf']: + # Create climatological time axis for the Depoorter et al. (2013) (Jan2007-Dec2007) temporal range + times = [] ; times_bnds = [] + times.append(cdt.componenttime(2007,7,2,12,0,0).torel('days since 2007-1-1').value) + times_bnds.append([cdt.componenttime(2007,1,1,0,0,0).torel('days since 2007-1-1').value, + cdt.componenttime(2008,1,1,0,0,0).torel('days since 2007-1-1').value]) + time = cdm.createAxis(times,np.array(times_bnds),id='time') + time.units = 'days since 2007-01-01 0.0.0' + print (times[0]) + print (times_bnds[0]) + print (time) + timeAx = {'table_entry': 'time2', + 'units': time.units, + 'coord_vals': time + } + else: + # Use default time entry + timeAx = {'table_entry': 'time', + 'units': time.units + } + # Now set axes list based on variable + if var in ['q_10','t_10','u_10','v_10']: + # 4D variable - 4 axes + axes = [ timeAx, + heightAx, + {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + elif var in ['uo','vo']: + # 4D variable - 4 axes +# axes = [ timeAx, +# {'table_entry': 'depth_coord', +# 'units': 'm', +# 'coord_vals': lev[:], +# 'cell_bounds': lev.getBounds() +# }, +# {'table_entry': 'latitude', +# 'units': 'degrees_north', +# 'coord_vals': lat[:], +# 'cell_bounds': lat.getBounds() +# }, +# {'table_entry': 'longitude', +# 'units': 'degrees_east', +# 'coord_vals': lon[:], +# 'cell_bounds': lon.getBounds() +# }, +# ] + # 3D variable - 3 axes + axes = [ timeAx, + {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + elif var in ['areacello','sftof','areacellg']: + # 2D variable - 2 axes + axes = [ {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + else: + # 3D variable - 3 axes + axes = [ timeAx, + {'table_entry': 'latitude', + 'units': 'degrees_north', + 'coord_vals': lat[:], + 'cell_bounds': lat.getBounds() + }, + {'table_entry': 'longitude', + 'units': 'degrees_east', + 'coord_vals': lon[:], + 'cell_bounds': lon.getBounds() + }, + ] + axisIds = list() ; # Create list of axes and build these for each variable from axis components above + for axis in axes: + axisId = cmor.axis(**axis) + axisIds.append(axisId) + + # For use in debugging + #print 'axes:',axes + #print 'd.shape:',d.shape + #print 'outputVarName:',outputVarName + #print 'd.units:',d.units + #print 'd.missing:',d.missing + #pdb.set_trace() ; # Debug statement + + # Setup units and create variable to write using cmor - see https://cmor.llnl.gov/mydoc_cmor3_api/#cmor_set_variable_attribute + d.units = outputUnits + if inputDict[key][var]['positive'] == 'down': + varid = cmor.variable(outputVarName,d.units,axisIds,missing_value=d.missing,positive='down') + elif var in ['friver']: + varid = cmor.variable(outputVarName,d.units,axisIds,missing_value=d.missing,comment='computed as the river flux of liquid water into the ocean divided by the area of the ocean portion of the grid cell') + else: + varid = cmor.variable(outputVarName,d.units,axisIds,missing_value=d.missing) ; # This is not trapping the correct missing_value + values = np.array(d[:],np.float32) + + # Append valid_min and valid_max to variable before writing - see https://cmor.llnl.gov/mydoc_cmor3_api/#cmor_set_variable_attribute + #cmor.set_variable_attribute(varid,'valid_min','f',2.0) + #cmor.set_variable_attribute(varid,'valid_max','f',3.0) + if var in ['friver','licalvf']: + cmor.set_variable_attribute(varid,'cell_measures','c','area: areacello') + if var in ['uo','vo']: + cmor.set_variable_attribute(varid,'cell_measures','c','area: areacella') + if var in ['tos','siconco']: + cmor.set_variable_attribute(varid,'cell_measures','c','') + + # Prepare variable for writing, then write and close file - see https://cmor.llnl.gov/mydoc_cmor3_api/#cmor_set_variable_attribute + cmor.set_deflate(varid,1,1,1) ; # shuffle=1,deflate=1,deflate_level=1 - Deflate options compress file data + print ('Start CMOR write..') + if key == 'OmonC': + cmor.write(varid,values) ; # Write variable with time axis + elif key == 'OyrC': + cmor.write(varid,values) ; # Write variable with time axis + elif key == 'LIyrC': + cmor.write(varid,values) ; # Write variable with time axis + elif key == 'Ofx': + cmor.write(varid,values) ; # Write variable without time axis + elif key == 'Afx': + cmor.write(varid,values) ; # Write variable without time axis + elif key == 'LIfx': + cmor.write(varid,values) ; # Write variable without time axis + else: + cmor.write(varid,values,time_vals=time,time_bnds=time.getBounds()) ; # Write variable with time axis + print ('End CMOR write..') + # Alteratively write in append mode + #for i in range(0,len(time),10): + # print i + # cmor.write(varid,values[i*10:(i+1)*10],time_vals=time[i*10:(i+1)*10],time_bnds=time.getBounds()[i*10:(i+1)*10]) ; # Write variable with time axis + f.close() + cmor.close() + # Cleanup + os.remove('tmp.json') diff --git a/input4MIPs_source_id.json b/input4MIPs_source_id.json index 03f8a2f..3bd7df6 100644 --- a/input4MIPs_source_id.json +++ b/input4MIPs_source_id.json @@ -512,11 +512,8 @@ "contact":"Hiroyuki Tsujino (htsujino@mri-jma.go.jp)", "dataset_category":"atmosphericState", "further_info_url":"http://climate.mri-jma.go.jp/~htsujino/jra55do.html", - "grid":"1x1 degree longitude x latitude", - "grid_label":"gn", "institution":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan", "institution_id":"MRI", - "nominal_resolution":"1x1 degree", "product":"reanalysis", "references":"Tsujino et al., 2018: JRA-55 based surface dataset for driving ocean-sea-ice models (JRA55-do), Ocean Modelling, 130(1), pp 79-139. https://doi.org/10.1016/j.ocemod.2018.07.002", "region":[ diff --git a/src/writeJson.py b/src/writeJson.py index eaced1f..32dfb4d 100755 --- a/src/writeJson.py +++ b/src/writeJson.py @@ -819,12 +819,9 @@ source_id[key]['comment'] = 'Based on JRA-55 reanalysis (1958-01 to 2020-07)' source_id[key]['contact'] = 'Hiroyuki Tsujino (htsujino@mri-jma.go.jp)' source_id[key]['dataset_category'] = 'atmosphericState' -source_id[key]['grid'] = '1x1 degree longitude x latitude' -source_id[key]['grid_label'] = 'gn' source_id[key]['further_info_url'] = 'http://climate.mri-jma.go.jp/~htsujino/jra55do.html' source_id[key]['institution_id'] = 'MRI' source_id[key]['institution'] = 'Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan' -source_id[key]['nominal_resolution'] = '1x1 degree' source_id[key]['product'] = 'reanalysis' source_id[key]['references'] = ' '.join(['Tsujino et al., 2018: JRA-55 based surface dataset for', 'driving ocean-sea-ice models (JRA55-do), Ocean Modelling,', @@ -1104,6 +1101,29 @@ sourcePath = os.path.join('..','..','..','Tables',fileName) shutil.copy(sourcePath,'.') +#%% Generate MRI-JMA-JRA55-do-1-5-0 demo directory +demoPath = os.path.join(homePath,'demo') +os.chdir(demoPath) +#print 'MRI-JMA-JRA55-do-1-5-0 demo:',os.getcwd() +demoPath = os.path.join(demoPath,'MRI-JMA-JRA55-do-1-5-0') +outPath = os.path.join(demoPath,'Tables') +# First purge existing +if os.path.exists(outPath): + shutil.rmtree(outPath) ; # Purge all existing + os.makedirs(outPath) +else: + os.makedirs(outPath) +os.chdir(outPath) + +# Now fill Tables subdir with required files +cvTables = ['Afx', 'A3hr', 'A3hrPt', 'CV', 'Lday', 'LIday', 'LIyrC', 'Oday', + 'OmonC', 'OyrC', 'SI3hrPt', 'SIday', 'coordinate', 'formula_terms'] +#print 'MRI-JMA-JRA55-do-1-5-0 demo:',os.getcwd() +for count,tableId in enumerate(cvTables): + fileName = ''.join(['input4MIPs_',tableId,'.json']) + sourcePath = os.path.join('..','..','..','Tables',fileName) + shutil.copy(sourcePath,'.') + #%% Incorporate JSON versioning info - see https://docs.google.com/document/d/1pU9IiJvPJwRvIgVaSDdJ4O0Jeorv_2ekEtted34K9cA/edit#heading=h.w4kchhc266o3 os.chdir('../..')