Project

General

Profile

overlapping bounds values cdo -CMOR2

Added by Manoel Junior over 5 years ago

Hi Fabian,

After our last communication we were able to perform the z-axis for SO, Thetao, and all other variables except for the ice variables.

So we tried to convert the ice variables but an overlapping bounds error emerged. Do you know how to deal with it?

Thanks again,
Manoel / Andre

Command line:

cdo -v cmor,OImon,cn=ialb,snd,mt=mapping_table.txt,dr=/dados/oceanmc/dsk005 cgcm2.2_ice_1850.nc
_

mapping_table.txt:

!========= Surface-seaice-month
&parameter cmor_name=ialb name="ALB" units="1" cell_methods="m" project_mip_table="OImon" /
&parameter cmor_name=snd name="HS" units="m" cell_methods="m" project_mip_table="OImon" /
&parameter cmor_name=sic name="sic" units="%" cell_methods="m" project_mip_table="OImon" /
&parameter cmor_name=sit name="sit" units="m" cell_methods="m" project_mip_table="OImon" /

We received the following error message:
_
*C Traceback:)
In function: cmor_check_monotonic
called from: cmor_treat_axis_values
called from: cmor_axis

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! !
! Error: axis longitude (table: OImon) has overlapping bounds values : 79.018171, 80.000002, 79.999998 at index: 160 !
! !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

_*

Bellow is the ncdump -h for the file to be converted to CMOR2 format:

netcdf cgcm2.2_ice_1850 {
dimensions:
xt = 360 ;
yt = 252 ;
ct = 5 ;
time = UNLIMITED ; // (11 currently)
bnds = 2 ;
variables:
double xt(xt) ;
xt:standard_name = "longitude" ;
xt:long_name = "longitude" ;
xt:units = "degrees_east" ;
xt:axis = "X" ;
double yt(yt) ;
yt:standard_name = "latitude" ;
yt:long_name = "latitude" ;
yt:units = "degrees_north" ;
yt:axis = "Y" ;
double ct(ct) ;
ct:long_name = "thickness" ;
ct:units = "meters" ;
ct:axis = "Z" ;
ct:cartesian_axis = "Z" ;
double time(time) ;
time:standard_name = "time" ;
time:long_name = "time" ;
time:bounds = "time_bnds" ;
time:units = "days since 1848-01-01 00:00:00" ;
time:calendar = "standard" ;
time:axis = "T" ;
double time_bnds(time, bnds) ;
float ALB ;
ALB:long_name = "surface albedo" ;
ALB:units = "0-1" ;
ALB:_FillValue = -1.e+34f ;
ALB:missing_value = -1.e+34f ;
ALB:cell_methods = "time: mean" ;
ALB:time_avg_info = "average_T1,average_T2,average_DT" ;
float HI ;
HI:long_name = "ice thickness" ;
HI:units = "m-ice" ;
HI:_FillValue = -1.e+34f ;
HI:missing_value = -1.e+34f ;
HI:cell_methods = "time: mean" ;
HI:time_avg_info = "average_T1,average_T2,average_DT" ;
float HS ;
HS:long_name = "snow thickness" ;
HS:units = "m-snow" ;
HS:_FillValue = -1.e+34f ;
HS:missing_value = -1.e+34f ;
HS:cell_methods = "time: mean" ;
HS:time_avg_info = "average_T1,average_T2,average_DT" ;
float CN ;
CN:long_name = "ice concentration" ;
CN:units = "0-1" ;
CN:_FillValue = -1.e+34f ;
CN:missing_value = -1.e+34f ;
CN:cell_methods = "time: mean" ;
CN:time_avg_info = "average_T1,average_T2,average_DT" ;
float EXT ;
EXT:long_name = "ice modeled" ;
EXT:units = "0 or 1" ;
EXT:_FillValue = -1.e+34f ;
EXT:missing_value = -1.e+34f ;
EXT:cell_methods = "time: mean" ;
EXT:time_avg_info = "average_T1,average_T2,average_DT" ;
double average_DT(time) ;
average_DT:long_name = "Length of average period" ;
average_DT:units = "days" ;_


Replies (1)

RE: overlapping bounds values cdo -CMOR2 - Added by Fabian Wachsmann over 5 years ago

Hi,

that looks like a processing problem within the program. It would be great if you could provide the file and the CDO version so that I can get it fixed so that cdo cmor calculates the bounds correctly if not available (this is done by linear interpolation).

Do you use a special grid for the ICE-data? Otherwise, if you already have a converted file (lets call it grid_info.nc), you could try to change

cdo -v cmor,OImon,cn=ialb,snd,mt=mapping_table.txt,dr=/dados/oceanmc/dsk005 cgcm2.2_ice_1850.nc

to

cdo -v cmor,OImon,cn=ialb,snd,mt=mapping_table.txt,dr=/dados/oceanmc/dsk005,gi=grid_info.nc cgcm2.2_ice_1850.nc

Another workaround could be to calculate the longitude and latitude bounds by yourself. If you provide them in a format similar to griddes.txt resulting from

cdo griddes $griddes.nc >griddes.txt

you can set this grid description as a grid for the infile by

cdo setgrid,yourOwnGriddes.txt infile outfile

if it simplifies the work.
Sorry for the problems and best regards,
Fabi

    (1-1/1)