Project

General

Profile

Regridding cam file to blom grid

Added by Sébastien Barthélémy 27 days ago

Hello,

I would like to regrid atmospheric CAM outputs to the oceanic BLOM grid. The BLOM grid is defined in a netcdf file: grid.nc. I have tried the following:

cdo -griddes grid.nc > mygrid
cdo -selname,mygrid cam_file.nc blom_file.nc

The grid type of BLOM is considered to be generic and therefore I get the well known error message: "cdo remapbic (Abort): Unsupported target grid type (generic)!"
However the lon/lat information in each point of the grid are contained in grid.nc:

double plon(y, x) ;
        plon:units = "degrees_east" ;
        plon:long_name = "Longitude at p-points" ;
        plon:corners = "pclon" ;
double plat(y, x) ;
        plat:units = "degrees_north" ;
        plat:long_name = "Latitude at p-points" ;
        plat:corners = "pclat" ;

Therefore, before I get into programming my own horizontal 2D interpolation program from CAM to BLOM I would like to know if this is possible to do it with cdo.
Thanks in advance for any insight on the question.

Sébastien


Replies (3)

RE: Regridding cam file to blom grid - Added by Estanislao Gavilan 26 days ago

Hi Sebastien,

You can perfectly do it. The problem must be in the grid or the cam file. Can you output the attributes of both files? I suspect the cam file does not have the coordinate attribute.

Best regards,

Estanislao

RE: Regridding cam file to blom grid - Added by Sébastien Barthélémy 24 days ago

Hi Estanislao,

Based on the error message, I would say that the problem comes from the destination grid, that of blom. Here is the output of the attributes of the cam file:

cdo -griddes N1850frc2_f09_tn14_14560201.cam.h1.1456-03-01-00000.nc
cdi  warning (cdf_check_variables): Unsupported data type (char/string), skipped variable date_written!
cdi  warning (cdf_check_variables): Unsupported data type (char/string), skipped variable time_written!
#
# gridID 1
#
gridtype  = lonlat
gridsize  = 192
ysize     = 192
yname     = lat
ylongname = "latitude" 
yunits    = "degrees_north" 
yfirst    = -90
yinc      = 0.942408376963351
#
# gridID 2
#
gridtype  = generic
gridsize  = 1
#
# gridID 3
#
gridtype  = lonlat
gridsize  = 55296
xsize     = 288
ysize     = 192
xname     = lon
xlongname = "longitude" 
xunits    = "degrees_east" 
yname     = lat
ylongname = "latitude" 
yunits    = "degrees_north" 
xfirst    = 0
xinc      = 1.25
yfirst    = -90
yinc      = 0.942408376963351
cdo    griddes: Processed 13 variables [0.47s 15MB]

Here is the output of the attributes of the blom file:

cdi  warning (find_time_vars): Time variable >time< not found!
#
# gridID 1
#
gridtype  = generic
gridsize  = 138600
xsize     = 360
ysize     = 385
cdo    griddes: Processed 104 variables [0.21s 37MB]

It says that the blom grid is generic despite it contains the lonlat coordinates for the p-cells (those I am interested in) as shows the command:

ncdummp -h grid.nc

netcdf grid {
dimensions:
    x = 360 ;
    y = 385 ;
    nv = 4 ;
    pcomp = 86708 ;
    qcomp = 88239 ;
    ucomp = 88642 ;
    vcomp = 87942 ;
variables:

        ...

    double plon(y, x) ;
        plon:units = "degrees_east" ;
        plon:long_name = "Longitude at p-points" ;
        plon:corners = "pclon" ;
    double plat(y, x) ;
        plat:units = "degrees_north" ;
        plat:long_name = "Latitude at p-points" ;
        plat:corners = "pclat" ;

        ...

// global attributes:
        :nreg = 2 ;
}

RE: Regridding cam file to blom grid - Added by Estanislao Gavilan 24 days ago

Hi Sebastien,

I think you need to add the attribute coordinates to the cam file as cdo needs that attribute for the remapping. Also, I thought BLOM uses a curvilinear grid. If that is the case you need to change the gridtype to curvilinear.

Best regards,

Estanislao

    (1-3/3)