NCAS-CMS / canari-data

Documents and code for canari data management
2 stars 1 forks source link

CICE/NEMO cell_methods #24

Open grenville opened 2 years ago

grenville commented 2 years ago

how do we handle CICE and NEMO area cell_methods -- neither model writes them

grenville commented 2 years ago

(as far as I have looked, CMIP6 atmos data do not have explicit area: cell methods (with the exception of some obscure data in co2Clim and other Clims, and zonal data) - I propose to simply hand edit atmos xml to handle the 6 zonal fields we have (30, [310-316])

grenville commented 2 years ago

Omon has 292 fields

219 with "cell_methods": "area: mean where sea 29 with cell_methods": "area: mean where sea depth: sum where sea 15 with "cell_methods": "longitude: sum (comment: basin sum [along zig-zag grid path]) depth: sum 8 with "cell_methods": "area: mean where ice_free_sea over sea

plus a few without area cell_methods

186 of these are in ocnBgchem so of no interest to us.

Probably not a big job to add these area cell_methods to nemo xml

grenville commented 2 years ago

CICE output does not include standard names -- got what the MO used for their CMIP & added through the modify metadata task. Can add areas cell methods the same way, plus ocean area cell methods. (I don't know how to add the NEMO cell methods by modifying the xml)

davidhassell commented 2 years ago

as far as I have looked, CMIP6 atmos data do not have explicit area: cell methods

Apologies if I've misunderstood, but that surprised me, given that the data are area means, it would be wrong since the metadata would not correctly describe the data. By not specifying "area: mean", a default cell method of either "area: sum" or "area: point" is assumed, which one depends on whether the quantity depends on the cell size ("extensive", like an accumulation) or does not ("intensive", like a rate). See paragraphs four and five of section 7.3.

I checked a random CMIP6 file, and it did have an area cell method:

netcdf tasmax_day_CNRM-CM6-1_historical_r1i1p1f2_gr_18500101-18500131 {
<snip>
    float tasmax(time, lat, lon) ;
        tasmax:online_operation = "maximum" ;
        tasmax:cell_methods = "area: mean time: maximum" ;
        tasmax:interval_operation = "900 s" ;
        tasmax:interval_write = "1 d" ;
        tasmax:_FillValue = 1.e+20f ;
        tasmax:missing_value = 1.e+20f ;
        tasmax:coordinates = "" ;
        tasmax:standard_name = "air_temperature" ;
        tasmax:description = "maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute \"time: max\")" ;
        tasmax:long_name = "Daily Maximum Near-Surface Air Temperature" ;
        tasmax:history = "none" ;
        tasmax:units = "K" ;
        tasmax:cell_measures = "area: areacella" ;
grenville commented 2 years ago

there were a couple of exceptions - tasmax is one, but not so for tas

float tas(time, lat, lon) ;
        tas:standard_name = "air_temperature" ;
        tas:long_name = "Near-Surface Air Temperature" ;
        tas:comment = "near-surface (usually, 2 meter) air temperature" ;
        tas:units = "K" ;
        tas:original_name = "mo: (stash: m01s03i236, lbproc: 128)" ;
        tas:cell_methods = "area: time: mean" ;
        tas:cell_measures = "area: areacella" ;
        tas:history = "2020-05-12T13:01:29Z altered by CMOR: Treated scalar dimension: \'height\'." ;
        tas:coordinates = "height" ;
        tas:missing_value = 1.e+20f ;
grenville commented 2 years ago

unless tas:cell_methods = "area: time: mean" ; implies area and time are both means?

davidhassell commented 2 years ago

That it does.

grenville commented 2 years ago

added area:mean to atmos fields added longitude:mean to (30, [310-316]) fixed CICE standard names and cell_methods where known

grenville commented 1 year ago

added longitude:mean to (30, [310-316]) - back this out, it's probably wrong. the sec 30 stash referred to above are things like

(xy)-(x)(y), where (x) is the zonal mean of x.