Skip to content

Dataset problem: CORDEX missing bounds #1673

@thomascrocker

Description

@thomascrocker

Describe the dataset issue
PR #184 (from 3 years ago) attempts to resolve a number of seperate issues with CORDEX models, as a result it's a fairly big PR and merging isn't straightforward. Instead, as suggested here #184 (comment) I'm creating issues addressing some of the problems individually which should be a more appropriate approach to fixing them. (Via smaller more focused PRs)

This first one addresses the fact that many of the CORDEX models on ESGF are missing bounds data on either one or both of their native grid coordinates or multidimensional regular latitude and longitude coordinates.
This lack of bounds means that regridding is not possible. It also means that calculating area weighted statistics is not possible without an appropriate areacella fx file. However, even if these are present, using them in ESMValTool is non-trivial unless #1081 is resolved, perhaps via #1082

  • Data file has been changed by you in any way (if you answer yes the issue will be void and closed, we are not
    supporting custom-made datasets that present problems, it is your resposability to fix those problems): NO

  • Project (CMIP5/CMIP6/OBS/obs4MIPs/etc): CORDEX

  • Full dataset description (fill out as many as you know, please):
    tas: {institute: SMHI, driver: MOHC-HadGEM2-ES, dataset: RCA4, project: CORDEX, ensemble: r1i1p1, mip: mon, rcm_version: v1, domain: EUR-11}
    Note that this is only one model that has this issue. However, there are multiple CORDEX data files on ESGF from a variety of different models / domains that have this issue. As such I'm not sure if the most appropriate fix is individual CMOR modules for each of the modules that uses duplicate code, it might be good to introduce a standard check / fix for this issue for all files from the CORDEX project (as PR Add general CORDEX coordinate boundary fix #184 attempts to do)

  • Problems encountered (please describe what the actual problems are: e.g. wrong standard name, issue with dimensions):
    Regridding fails due to missing bounds. Area weighted statistics not possible without FX files.

  • Pointer to existing copy of data on ESGF node (it would be very useful if you could provide a physical
    fullpath to the file(s) that are causing the problem, e.g. on CEDA Jasmin or DKRZ):
    E.g. From ESGF:
    http://esg-dn1.nsc.liu.se/thredds/fileServer/esg_dataroot1/cordexdata/cordex/output/EUR-11/SMHI/MOHC-HadGEM2-ES/historical/r1i1p1/SMHI-RCA4/v1/mon/tas/v20131026/tas_EUR-11_MOHC-HadGEM2-ES_historical_r1i1p1_SMHI-RCA4_v1_mon_200101-200512.nc

  • Other notes and mentions:
    @sloosvel @nhsavage

See example simple recipe for regridding:

documentation:
  title: Demo recipe 

  description:
    What if I want to regrid a regional model file?

  authors:
    - predoi_valeriu

datasets:
# Rotated pole model
- {institute: SMHI, driver: MOHC-HadGEM2-ES, dataset: RCA4, project: CORDEX, ensemble: r1i1p1, mip: mon, rcm_version: v1, domain: EUR-11}

preprocessors:
  preproc:
    regrid:
      target_grid:
        start_latitude: 50
        end_latitude: 60
        start_longitude: 0
        end_longitude: 10
        step_latitude: 1
        step_longitude: 1
      scheme: linear

diagnostics:
  temp:
    description: Regrid some data
    variables:
      tas:
        start_year: 1981
        end_year: 2000
        exp: historical
        preprocessor: preproc
    scripts: null

Results in error due to lack of bounds:

File "/opt/scitools/conda/environments/esmvaltool-2.5.0/lib/python3.9/site-packages/esmvalcore/preprocessor/_regrid_esmpy.py", line 112, in is_lon_circular
    seam = (lon.bounds[1:-1, -1, (1, 2)]
TypeError: 'NoneType' object is not subscriptable

ncdump:

$ ncdump -h /project/champ/data/cordex/output/EUR-11/SMHI/MOHC-HadGEM2-ES/historical/r1i1p1/RCA4/v1/mon/tas/v20131026/tas_EUR-11_MOHC-HadGEM2-ES_historical_r1i1p1_SMHI-RCA4_v1_mon_200101-200512.nc
netcdf tas_EUR-11_MOHC-HadGEM2-ES_historical_r1i1p1_SMHI-RCA4_v1_mon_200101-200512 {
dimensions:
	time = UNLIMITED ; // (60 currently)
	bnds = 2 ;
	rlon = 424 ;
	rlat = 412 ;
variables:
	double time(time) ;
		time:axis = "T" ;
		time:bounds = "time_bnds" ;
		time:calendar = "360_day" ;
		time:long_name = "time" ;
		time:standard_name = "time" ;
		time:units = "days since 1949-12-01 00:00:00" ;
	double lon(rlat, rlon) ;
		lon:standard_name = "longitude" ;
		lon:long_name = "longitude" ;
		lon:units = "degrees_east" ;
	double lat(rlat, rlon) ;
		lat:standard_name = "latitude" ;
		lat:long_name = "latitude" ;
		lat:units = "degrees_north" ;
	double time_bnds(time, bnds) ;
		time_bnds:units = "days since 1949-12-01 00:00:00" ;
		time_bnds:calendar = "360_day" ;
	float tas(time, rlat, rlon) ;
		tas:standard_name = "air_temperature" ;
		tas:long_name = "Near-Surface Air Temperature" ;
		tas:units = "K" ;
		tas:coordinates = "lon lat height" ;
		tas:_FillValue = 1.e+20f ;
		tas:missing_value = 1.e+20f ;
		tas:cell_methods = "time: mean" ;
		tas:grid_mapping = "rotated_pole" ;
	double rlon(rlon) ;
		rlon:standard_name = "grid_longitude" ;
		rlon:long_name = "longitude in rotated pole grid" ;
		rlon:units = "degrees" ;
		rlon:axis = "X" ;
	double rlat(rlat) ;
		rlat:standard_name = "grid_latitude" ;
		rlat:long_name = "latitude in rotated pole grid" ;
		rlat:units = "degrees" ;
		rlat:axis = "Y" ;
	char rotated_pole ;
		rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
		rotated_pole:grid_north_pole_latitude = 39.25 ;
		rotated_pole:grid_north_pole_longitude = -162. ;
	double height ;
		height:axis = "Z" ;
		height:long_name = "height" ;
		height:positive = "up" ;
		height:standard_name = "height" ;
		height:units = "m" ;

// global attributes:
		:Conventions = "CF-1.4" ;
		:institution = "Swedish Meteorological and Hydrological Institute, Rossby Centre" ;
		:contact = "rossby.cordex@smhi.se" ;
		:creation_date = "2013-07-03-T19:58:14Z" ;
		:experiment = "historical" ;
		:experiment_id = "historical" ;
		:driving_experiment = "MOHC-HadGEM2-ES, historical, r1i1p1" ;
		:driving_model_id = "MOHC-HadGEM2-ES" ;
		:driving_model_ensemble_member = "r1i1p1" ;
		:driving_experiment_name = "historical" ;
		:frequency = "mon" ;
		:institute_id = "SMHI" ;
		:model_id = "SMHI-RCA4" ;
		:rcm_version_id = "v1" ;
		:project_id = "CORDEX" ;
		:CORDEX_domain = "EUR-11" ;
		:product = "output" ;
		:references = "http://www.smhi.se/en/Research/Research-departments/climate-research-rossby-centre" ;
		:tracking_id = "246cfe5b-078e-46e9-8526-f64413c381c3" ;
		:rossby_comment = "201131: CORDEX Europe 0.11 deg | RCA4 v1 | MOHC-HadGEM2-ES | r1i1p1 | historical | L40" ;
		:rossby_run_id = "201131" ;
		:rossby_grib_path = "/nobackup/rossby15/rossby/joint_exp/cordex/201131/raw/" ;
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions