overlapping bounds values cdo -CMOR2
Added by Manoel Junior over 6 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
¶meter cmor_name=ialb name="ALB" units="1" cell_methods="m" project_mip_table="OImon" /
¶meter cmor_name=snd name="HS" units="m" cell_methods="m" project_mip_table="OImon" /
¶meter cmor_name=sic name="sic" units="%" cell_methods="m" project_mip_table="OImon" /
¶meter 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 6 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