ESMValGroup / ESMValCore

ESMValCore: A community tool for pre-processing data from Earth system models in CMIP and running analysis scripts.
https://www.esmvaltool.org
Apache License 2.0
42 stars 38 forks source link

Dataset problem: CESM2 marine depth units are cm instead of meters (gn grid) #515

Open ledm opened 4 years ago

ledm commented 4 years ago

Describe the dataset issue also see https://github.com/ESMValGroup/ESMValCore/issues/859 (apparent duplicate)

The CMIP6 model CESM2 seems to have all its depth dimension units set to Unit('centimeters') instead of the standard meters. I've seen it in every marine variables that I've looked at in the gn grid. The gr grid seems to be working fine though.

For instance, on jasmin, some files that don't work are:

/badc/cmip6/data/CMIP6/CMIP/NCAR/CESM2/piControl/r1i1p1f1/Omon/thetao/gn/latest/thetao_Omon_CESM2_piControl_r1i1p1f1_gn_070001-079912.nc
/badc/cmip6/data/CMIP6/CMIP/NCAR/CESM2/piControl/r1i1p1f1/Omon/ph/gn/latest/ph_Omon_CESM2_piControl_r1i1p1f1_gn_000101-009912.nc
zklaus commented 4 years ago

Clarification request: Are the values of the depth consistent with the wrong units or not?

ledm commented 4 years ago

It's a strange one. The cube's lev units are wrong, they should be recorded as Unit(m). However, the depth coordinate points appear to be in centimetres, but the bounds appear to be in meters: ie:

 c.coords('lev')
[DimCoord(array([5.00000000e+02, 1.50000000e+03, 2.50000000e+03, 3.50000000e+03,
       4.50000000e+03, 5.50000000e+03, 6.50000000e+03, 7.50000000e+03,
       8.50000000e+03, 9.50000000e+03, 1.05000000e+04, 1.15000000e+04,
       1.25000000e+04, 1.35000000e+04, 1.45000000e+04, 1.55000000e+04,
       1.65098398e+04, 1.75479043e+04, 1.86291270e+04, 1.97660273e+04,
       2.09711387e+04, 2.22578281e+04, 2.36408828e+04, 2.51370156e+04,
       2.67654199e+04, 2.85483652e+04, 3.05119219e+04, 3.26867988e+04,
       3.51093477e+04, 3.78227617e+04, 4.08784648e+04, 4.43377695e+04,
       4.82736719e+04, 5.27728008e+04, 5.79372891e+04, 6.38862617e+04,
       7.07563281e+04, 7.87002500e+04, 8.78825234e+04, 9.84705859e+04,
       1.10620422e+05, 1.24456688e+05, 1.40049719e+05, 1.57394641e+05,
       1.76400328e+05, 1.96894422e+05, 2.18645656e+05, 2.41397156e+05,
       2.64900125e+05, 2.88938469e+05, 3.13340469e+05, 3.37979344e+05,
       3.62767031e+05, 3.87645188e+05, 4.12576812e+05, 4.37539250e+05,
       4.62519031e+05, 4.87508344e+05, 5.12502812e+05, 5.37500000e+05]), bounds=array([[   0.     ,   10.     ],
       [  10.     ,   20.     ],
       [  20.     ,   30.     ],
       [  30.     ,   40.     ],
       [  40.     ,   50.     ],
       [  50.     ,   60.     ],
       [  60.     ,   70.     ],
       [  70.     ,   80.     ],
       [  80.     ,   90.     ],
       [  90.     ,  100.     ],
       [ 100.     ,  110.     ],
       [ 110.     ,  120.     ],
       [ 120.     ,  130.     ],
       [ 130.     ,  140.     ],
       [ 140.     ,  150.     ],
       [ 150.     ,  160.0492 ],
       [ 160.0492 ,  170.28871],
       [ 170.28871,  180.88516],
       [ 180.88516,  191.97578],
       [ 191.97578,  203.68582],
       [ 203.68582,  216.14484],
       [ 216.14484,  229.49356],
       [ 229.49356,  243.8895 ],
       [ 243.8895 ,  259.51218],
       [ 259.51218,  276.56894],
       [ 276.56894,  295.30145],
       [ 295.30145,  315.9936 ],
       [ 315.9936 ,  338.98074],
       [ 338.98074,  364.66055],
       [ 364.66055,  393.50613],
       [ 393.50613,  426.08118],
       [ 426.08118,  463.0572 ],
       [ 463.0572 ,  505.23233],
       [ 505.23233,  553.5505 ],
       [ 553.5505 ,  609.11774],
       [ 609.11774,  673.21295],
       [ 673.21295,  747.2829 ],
       [ 747.2829 ,  832.9139 ],
       [ 832.9139 ,  931.76556],
       [ 931.76556, 1045.455  ],
       [1045.455  , 1175.3855 ],
       [1175.3855 , 1322.532  ],
       [1322.532  , 1487.2219 ],
       [1487.2219 , 1668.9749 ],
       [1668.9749 , 1866.4738 ],
       [1866.4738 , 2077.7002 ],
       [2077.7002 , 2300.214  ],
       [2300.214  , 2531.4863 ],
       [2531.4863 , 2769.193  ],
       [2769.193  , 3011.3948 ],
       [3011.3948 , 3256.599  ],
       [3256.599  , 3503.732  ],
       [3503.732  , 3752.0613 ],
       [3752.0613 , 4001.11   ],
       [4001.11   , 4250.58   ],
       [4250.58   , 4500.291  ],
       [4500.291  , 4750.1367 ],
       [4750.1367 , 5000.0557 ],
       [5000.0557 , 5250.0137 ],
       [5250.0137 , 5499.9863 ]], dtype=float32), standard_name=None, units=Unit('centimeters'), var_name='lev', attributes={'positive': 'down', 'title': 'ocean model level', 'type': 'double'})]

Very strange.

valeriupredoi commented 3 years ago

sister issue https://github.com/ESMValGroup/ESMValCore/issues/859 but not closing this since this one may lead to a model errata and #859 has a good discussion in it, we should close both when we've done the bits