PCMDI / cmor

Climate Model Output Rewriter
BSD 3-Clause "New" or "Revised" License
53 stars 32 forks source link

E1hrClimMon prepare error #501

Closed aradhakrishnanGFDL closed 5 years ago

aradhakrishnanGFDL commented 5 years ago

Hello,

At GFDL, we are preparing to publish fields in E1hrClimMon table and we are running into the following issue for which your advice is appreciated. (note: We do not use CMOR, but we have a CMOR analog that adheres to the standards. )

[testdir]/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r1i1p1f1/E1hrClimMon/rlut/gr1/v20190607/rlut_E1hrClimMon_GFDL-ESM4_historical_r1i1p1f1_gr1_200501010000-201412010000-clim.nc

!!!!!!!!!!!!!!!!!!!!!!!!!
!
! Error: Your filename 
! "rlut_E1hrClimMon_GFDL-ESM4_historical_r1i1p1f1_gr1_200501010000-201412010000-clim.nc" 
! does not match the CMIP6 requirement.
! 
! Your output filename should be: 
! "rlut_E1hrClimMon_GFDL-ESM4_historical_r1i1p1f1_gr1_185001010000-185001010000-clim.nc"
! 
! and should follow this template: 
!"<variable_id><table><source_id><experiment_id><member_id><grid_label>"
! 
! See your Control Vocabulary file.(/home/fms/local/opt/fre-publish/test/lib/prepare/cmip6-cmor-tables/Tables/CMIP6_CV.json)

netcdf header

netcdf rlut_E1hrClimMon_GFDL-ESM4_historical_r1i1p1f1_gr1_200501010000-201412010000-clim { dimensions: bnds = 2 ; lat = 180 ; lon = 288 ; time = UNLIMITED ; // (120 currently) time_of_day_24 = 24 ; time_of_day_edges_24 = 25 ; variables: double bnds(bnds) ; bnds:long_name = "vertex number" ; double lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; lat:axis = "Y" ; lat:bounds = "lat_bnds" ; lat:standard_name = "latitude" ; lat:cell_methods = "time: point" ; double lat_bnds(lat, bnds) ; lat_bnds:long_name = "latitude bounds" ; lat_bnds:units = "degrees_north" ; lat_bnds:axis = "Y" ; double lon(lon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; lon:axis = "X" ; lon:bounds = "lon_bnds" ; lon:standard_name = "longitude" ; lon:cell_methods = "time: point" ; double lon_bnds(lon, bnds) ; lon_bnds:long_name = "longitude bounds" ; lon_bnds:units = "degrees_east" ; lon_bnds:axis = "X" ; float rlut(time, time_of_day_24, lat, lon) ; rlut:long_name = "TOA Outgoing Longwave Radiation" ; rlut:units = "W m-2" ; rlut:missing_value = 1.e+20f ; rlut:_FillValue = 1.e+20f ; rlut:cell_methods = "area: mean time: mean within days time: mean over days" ; rlut:cell_measures = "area: areacella" ; rlut:standard_name = "toa_outgoing_longwave_flux" ; rlut:interp_method = "conserve_order2" ; rlut:original_name = "rlut" ; double time(time) ; time:long_name = "time" ; time:units = "days since 1850-01-01 00:00:00" ; time:axis = "T" ; time:calendar_type = "noleap" ; time:calendar = "noleap" ; time:bounds = "time3_bnds" ; time:standard_name = "time" ; time:description = "Mean Diurnal Cycle" ; double time_bnds(time, bnds) ; time_bnds:long_name = "time axis boundaries" ; time_bnds:units = "days since 1850-01-01 00:00:00" ; time_bnds:missing_value = 1.e+20 ; time_bnds:_FillValue = 1.e+20 ; double time_of_day_24(time_of_day_24) ; time_of_day_24:long_name = "time of day" ; time_of_day_24:units = "hours since 1850-01-01 00:00:00" ; time_of_day_24:edges = "time_of_day_edges_24" ; double time_of_day_edges_24(time_of_day_edges_24) ; time_of_day_edges_24:long_name = "time of day edges" ; time_of_day_edges_24:units = "hours since 1850-01-01 00:00:00" ;

// global attributes: :external_variables = "areacella" ; :history = "File was processed by fremetar (GFDL analog of CMOR). TripleID: [exper_id_9y3pVZNo6k,realiz_id_pMwNqyCTLq,run_id_G25cT0smqu]" ; :table_id = "E1hrClimMon" ; :activity_id = "CMIP" ; :branch_method = "standard" ; :branch_time_in_child = 0. ; :branch_time_in_parent = 36500. ; :comment = "" ; :contact = "gfdl.climate.model.info@noaa.gov" ; :Conventions = "CF-1.7 CMIP-6.0 UGRID-1.0" ; :creation_date = "2019-06-07T15:47:58Z" ; :data_specs_version = "01.00.27" ; :experiment = "all-forcing simulation of the recent past" ; :experiment_id = "historical" ; :forcing_index = 1 ; :frequency = "1hrCM" ; :further_info_url = "https://furtherinfo.es-doc.org/CMIP6.NOAA-GFDL.GFDL-ESM4.historical.none.r1i1p1f1" ; :grid = "atmos data regridded from Cubed-sphere (c96) to 180,288; interpolation method: conserve_order2" ; :grid_label = "gr1" ; :initialization_index = 1 ; :institution = "National Oceanic and Atmospheric Administration, Geophysical Fluid Dynamics Laboratory, Princeton, NJ 08540, USA" ; :institution_id = "NOAA-GFDL" ; :license = "CMIP6 model data produced by NOAA-GFDL is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (https://creativecommons.org/licenses/). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 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 = "CMIP6" ; :nominal_resolution = "100 km" ; :parent_activity_id = "CMIP" ; :parent_experiment_id = "piControl" ; :parent_mip_era = "CMIP6" ; :parent_source_id = "GFDL-ESM4" ; :parent_time_units = "days since 0001-1-1" ; :parent_variant_label = "r1i1p1f1" ; :physics_index = 1 ; :product = "model-output" ; :realization_index = 1 ; :realm = "atmos" ; :source = "GFDL-ESM4 (2018):\n", "atmos: GFDL-AM4.1 (Cubed-sphere (c96) - 1 degree nominal horizontal resolution; 360 x 180 longitude/latitude; 49 levels; top level 1 Pa)\n", "ocean: GFDL-OM4p5 (GFDL-MOM6, tripolar - nominal 0.5 deg; 720 x 576 longitude/latitude; 75 levels; top grid cell 0-2 m)\n", "seaIce: GFDL-SIM4p5 (GFDL-SIS2.0, tripolar - nominal 0.5 deg; 720 x 576 longitude/latitude; 5 layers; 5 thickness categories)\n", "land: GFDL-LM4.1\n", "aerosol: interactive\n", "atmosChem: GFDL-ATMCHEM4.1 (full atmospheric chemistry)\n", "ocnBgchem: GFDL-COBALTv2\n", "landIce: GFDL-LM4.1\n", "(GFDL ID: 2019_0092)" ; :source_id = "GFDL-ESM4" ; :source_type = "AOGCM AER CHEM BGC" ; :sub_experiment = "none" ; :sub_experiment_id = "none" ; :title = "NOAA GFDL GFDL-ESM4 model output prepared for CMIP6 all-forcing simulation of the recent past" ; :tracking_id = "hdl:21.14100/f28d9f2e-7f83-499d-9131-7e46829b072b" ; :variable_id = "rlut" ; :variant_info = "N/A" ; :references = "see further_info_url attribute" ; :variant_label = "r1i1p1f1" ; }

time = 56590.5, 56620,..60179, 60209.5 ; time_of_day_24 = 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.

What might we be missing? When I open the dataset in ferret, it does show the time period as specified in the file name.

Thanks,

taylor13 commented 5 years ago

The data request indicates that rlt in E1hrClimMon should be a function of (longitude, latitude, time3) where time3 is a climatological time-axis named "time" in the netcdf file. Also, cell_methods = "area: mean time: mean within days time: mean over days", which I think implies "time" is the only axis. Your single time axis should be:

double time(time) ; time:standard_name = "time" ; time:units = "days since 1850-01-01 00:00:00" ; time:axis = "T" ; time:long_name = "time" ; time:calendar = "noleap" ; time:climatology = "time_bnds" ;

Note that there should be no "bounds" attribute. The value of the bounds for each month should be defined consistent with the following example (from just a single month):

time_bnds="1997-4-1 0:00", "1997-4-30 1:00", "1997-4-1 1:00", "1997-4-30 2:00", ... "1997-4-1 23:00", "1997-5-1 0:00" ;

You will need to express these as "days since ...".

taylor13 commented 5 years ago

@aradhakrishnanGFDL Is it o.k. to close this issue?

taylor13 commented 5 years ago

Yes, I think so.