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..077b168 --- /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":"08 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..94221ac --- /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":"08 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..adce169 --- /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":"08 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_Ayr.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Ayr.json new file mode 100644 index 0000000..ef5c25e --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Ayr.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":"alevel alevhalf", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"atmos atmosChem", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_Ayr" + }, + "variable_entry":{ + "evspsbl":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"Evaporation at surface (also known as evapotranspiration): flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)", + "dimensions":"longitude latitude time", + "frequency":"yr", + "long_name":"Evaporation Including Sublimation and Transpiration", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"evspsbl", + "positive":"", + "standard_name":"water_evapotranspiration_flux", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + }, + "pr":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"includes both liquid and solid phases", + "dimensions":"longitude latitude time", + "frequency":"yr", + "long_name":"Precipitation", + "modeling_realm":"atmos", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"pr", + "positive":"", + "standard_name":"precipitation_flux", + "type":"real", + "units":"kg m-2 s-1", + "valid_max":"", + "valid_min":"" + }, + "ts":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"Temperature of the lower boundary of the atmosphere", + "dimensions":"longitude latitude time", + "frequency":"yr", + "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":"" + } + } +} \ 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..8ee652d --- /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" + } + } + } +} 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..202ac38 --- /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":"08 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_LIfx.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIfx.json new file mode 100644 index 0000000..3befdb7 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIfx.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"", + "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":"landIce", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_LIfx" + }, + "variable_entry":{ + "areacellg":{ + "cell_measures":"", + "cell_methods":"area: sum", + "comment":"Area of the target grid (not the interpolated area of the source grid)", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"Grid-Cell Area for Ice Sheet Variables", + "modeling_realm":"landIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"areacellg", + "positive":"", + "standard_name":"cell_area", + "type":"real", + "units":"m2", + "valid_max":"", + "valid_min":"" + } + } +} \ No newline at end of file diff --git a/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyr.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyr.json new file mode 100644 index 0000000..683d9be --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyr.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":"landIce land", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_LIyr" + }, + "variable_entry":{ + "sftflf":{ + "cell_measures":"area: areacella", + "cell_methods":"area: time: mean", + "comment":"Percentage of grid cell covered by floating ice shelf, the component of the ice sheet that is flowing over sea water", + "dimensions":"longitude latitude time", + "frequency":"yr", + "long_name":"Floating Ice Shelf Area Percentage", + "modeling_realm":"landIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"sftflf", + "positive":"", + "standard_name":"floating_ice_shelf_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_LIyrAnt.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrAnt.json new file mode 100644 index 0000000..e387c52 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrAnt.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"365.00", + "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":"landIce", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_LIyrAnt" + }, + "variable_entry":{ + "acabf":{ + "cell_measures":"area: areacellg", + "cell_methods":"area: time: mean where ice_sheet", + "comment":"Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", + "dimensions":"xant yant time", + "frequency":"yr", + "long_name":"Surface Mass Balance Flux", + "modeling_realm":"landIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"acabf", + "positive":"", + "standard_name":"land_ice_surface_specific_mass_balance_flux", + "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..a59958f --- /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":"08 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_LIyrGre.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrGre.json new file mode 100644 index 0000000..3a7e0ac --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_LIyrGre.json @@ -0,0 +1,36 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "approx_interval":"365.00", + "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":"landIce", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_LIyrGre" + }, + "variable_entry":{ + "acabf":{ + "cell_measures":"area: areacellg", + "cell_methods":"area: time: mean where ice_sheet", + "comment":"Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", + "dimensions":"xgre ygre time", + "frequency":"yr", + "long_name":"Surface Mass Balance Flux", + "modeling_realm":"landIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"acabf", + "positive":"", + "standard_name":"land_ice_surface_specific_mass_balance_flux", + "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..88f9276 --- /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":"08 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_Lyr.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Lyr.json new file mode 100644 index 0000000..a4a147f --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Lyr.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":"08 September 2020", + "table_id":"Table input4MIPs_Lyr" + }, + "variable_entry":{ + "mrros":{ + "cell_measures":"area: areacella", + "cell_methods":"area: mean where land time: mean", + "comment":"The total surface run off leaving the land portion of the grid cell (excluding drainage through the base of the soil model)", + "dimensions":"longitude latitude time", + "frequency":"yr", + "long_name":"Surface Runoff", + "modeling_realm":"land", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"mrros", + "positive":"", + "standard_name":"surface_runoff_flux", + "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..22dfeff --- /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":"08 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_Ofx.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Ofx.json new file mode 100644 index 0000000..946e598 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Ofx.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":"olevel", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"ocean", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_Ofx" + }, + "variable_entry":{ + "areacello":{ + "cell_measures":"", + "cell_methods":"area: sum", + "comment":"Horizontal area of ocean grid cells", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"Grid-Cell Area for Ocean Variables", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"areacello", + "positive":"", + "standard_name":"cell_area", + "type":"real", + "units":"m2", + "valid_max":"", + "valid_min":"" + }, + "sftof":{ + "cell_measures":"area: areacello", + "cell_methods":"area: mean", + "comment":"Percentage of horizontal area occupied by ocean", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"Sea Area Percentage", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"sftof", + "positive":"", + "standard_name":"sea_area_fraction", + "type":"real", + "units":"%", + "valid_max":"", + "valid_min":"" + }, + "ugrido":{ + "cell_measures":"--UGRID", + "cell_methods":"", + "comment":"Ony required for models with unstructured grids: this label should be used for a file containing information about the grid structure, following the UGRID convention.", + "dimensions":"longitude latitude", + "frequency":"fx", + "long_name":"UGRID Grid Specification", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"ugrido", + "positive":"", + "standard_name":"longitude", + "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_Omon.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Omon.json new file mode 100644 index 0000000..f57b5f1 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Omon.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":"08 September 2020", + "table_id":"Table input4MIPs_Omon" + }, + "variable_entry":{ + "tos":{ + "cell_measures":"area: areacello", + "cell_methods":"time: mean", + "comment":"", + "dimensions":"longitude latitude time", + "frequency":"mon", + "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":"" + }, + "tosbcs":{ + "cell_measures":"area: areacello", + "cell_methods":"time: point", + "comment":"", + "dimensions":"longitude latitude time1", + "frequency":"mon", + "long_name":"Constructed mid-month Sea Surface Temperature", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"tosbcs", + "positive":"", + "standard_name":"sea_surface_temperature", + "type":"real", + "units":"degC", + "valid_max":"65", + "valid_min":"-25" + }, + "volcello":{ + "cell_measures":"area: areacello volume: volcello", + "cell_methods":"area: sum where sea time: mean", + "comment":"grid-cell volume ca. 2000.", + "dimensions":"longitude latitude olevel time", + "frequency":"mon", + "long_name":"Ocean Grid-Cell Volume", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"volcello", + "positive":"", + "standard_name":"ocean_volume", + "type":"real", + "units":"m3", + "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..fca4242 --- /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":"08 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_Oyr.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Oyr.json new file mode 100644 index 0000000..a317fe1 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_Oyr.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":"08 September 2020", + "table_id":"Table input4MIPs_Oyr" + }, + "variable_entry":{ + "so":{ + "cell_measures":"area: areacello volume: volcello", + "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 time", + "frequency":"yr", + "long_name":"Sea Water Salinity", + "modeling_realm":"ocean", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"so", + "positive":"", + "standard_name":"sea_water_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..03d64f6 --- /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":"08 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..107f0bf --- /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":"08 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..05f861d --- /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":"08 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_SImon.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SImon.json new file mode 100644 index 0000000..b34ef50 --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_SImon.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":"", + "int_missing_value":"-999", + "mip_era":"CMIP6", + "missing_value":"1e20", + "product":"input4MIPs", + "realm":"seaIce", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_SImon" + }, + "variable_entry":{ + "siconc":{ + "cell_measures":"area: areacello", + "cell_methods":"area: time: mean", + "comment":"Percentage of grid cell covered by sea ice", + "dimensions":"longitude latitude time", + "frequency":"mon", + "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":"" + }, + "siconcbcs":{ + "cell_measures":"area: areacello", + "cell_methods":"time: point", + "comment":"Percentage of grid cell covered by sea ice", + "dimensions":"longitude latitude time1", + "frequency":"mon", + "long_name":"Constructed mid-month Sea-ice area fraction", + "modeling_realm":"seaIce", + "ok_max_mean_abs":"", + "ok_min_mean_abs":"", + "out_name":"siconcbcs", + "positive":"", + "standard_name":"sea_ice_area_fraction", + "type":"real", + "units":"%", + "valid_max":"2000", + "valid_min":"-2000" + } + } +} \ 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/Tables/input4MIPs_grids.json b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_grids.json new file mode 100644 index 0000000..a6e1e8e --- /dev/null +++ b/demo/MRI-JMA-JRA55-do-1-5-0/Tables/input4MIPs_grids.json @@ -0,0 +1,158 @@ +{ + "Header":{ + "Conventions":"CF-1.7 CMIP-6.2", + "cmor_version":"3.5", + "data_specs_version":"01.00.32", + "missing_value":"1e20", + "product":"input4MIPs", + "table_date":"08 September 2020", + "table_id":"Table input4MIPs_grids" + }, + "axis_entry":{ + "grid_latitude":{ + "axis":"Y", + "long_name":"latitude in rotated pole grid", + "out_name":"rlat", + "standard_name":"grid_latitude", + "type":"double", + "units":"degrees" + }, + "grid_longitude":{ + "axis":"X", + "long_name":"longitude in rotated pole grid", + "out_name":"rlon", + "standard_name":"grid_longitude", + "type":"double", + "units":"degrees" + }, + "i_index":{ + "axis":"", + "long_name":"first spatial index for variables stored on an unstructured grid", + "out_name":"i", + "standard_name":"", + "type":"integer", + "units":"1" + }, + "j_index":{ + "axis":"", + "long_name":"second spatial index for variables stored on an unstructured grid", + "out_name":"j", + "standard_name":"", + "type":"integer", + "units":"1" + }, + "k_index":{ + "axis":"", + "long_name":"third spatial index for variables stored on an unstructured grid", + "out_name":"k", + "standard_name":"", + "type":"integer", + "units":"1" + }, + "l_index":{ + "axis":"", + "long_name":"fourth spatial index for variables stored on an unstructured grid", + "out_name":"l", + "standard_name":"", + "type":"integer", + "units":"1" + }, + "m_index":{ + "axis":"", + "long_name":"fifth spatial index for variables stored on an unstructured grid", + "out_name":"m", + "standard_name":"", + "type":"integer", + "units":"1" + }, + "vertices":{ + "axis":"", + "long_name":"", + "out_name":"", + "standard_name":"", + "type":"", + "units":"" + }, + "x":{ + "axis":"X", + "long_name":"x coordinate of projection", + "out_name":"", + "standard_name":"projection_x_coordinate", + "type":"double", + "units":"m" + }, + "x_deg":{ + "axis":"X", + "long_name":"x coordinate of projection", + "out_name":"x", + "standard_name":"projection_x_coordinate", + "type":"double", + "units":"degrees" + }, + "y":{ + "axis":"Y", + "long_name":"y coordinate of projection", + "out_name":"", + "standard_name":"projection_y_coordinate", + "type":"double", + "units":"m" + }, + "y_deg":{ + "axis":"Y", + "long_name":"y coordinate of projection", + "out_name":"y", + "standard_name":"projection_y_coordinate", + "type":"double", + "units":"degrees" + } + }, + "mapping_entry":{ + "sample_user_mapping":{ + "coordinates":"rlon rlat", + "parameter1":"false_easting", + "parameter2":"false_northing" + } + }, + "variable_entry":{ + "latitude":{ + "dimensions":"longitude latitude", + "long_name":"latitude", + "out_name":"latitude", + "standard_name":"latitude", + "type":"double", + "units":"degrees_north", + "valid_max":"90.0", + "valid_min":"-90.0" + }, + "longitude":{ + "dimensions":"longitude latitude", + "long_name":"longitude", + "out_name":"longitude", + "standard_name":"longitude", + "type":"double", + "units":"degrees_east", + "valid_max":"360.0", + "valid_min":"0.0" + }, + "vertices_latitude":{ + "dimensions":"vertices longitude latitude", + "long_name":"", + "out_name":"vertices_latitude", + "standard_name":"", + "type":"double", + "units":"degrees_north", + "valid_max":"90.0", + "valid_min":"-90.0" + }, + "vertices_longitude":{ + "dimensions":"vertices longitude latitude", + "long_name":"", + "out_name":"vertices_longitude", + "standard_name":"", + "type":"double", + "units":"degrees_east", + "valid_max":"360.0", + "valid_min":"0.0" + } + } +} \ 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..c14cd5f --- /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..fcc6cb8 --- /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.16Jan2010.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..57d1504 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":[ @@ -768,4 +765,4 @@ "title":"ISMIP6 (CMIP6) - UKESM1-0-LL-ssp585-1-0 derived data prepared for input4MIPs" } } -} \ No newline at end of file +}