0

I have two .nc files: zmksrf_lai.nc, and zmksrf_pft.nc. I want to interpolate the 0.5 degree LAI file into 0.05 degree PFT file, so that I have high resolution LAI data. I tried CDO, and also ncremap, but did not work. Your suggestion is highly appreciated.

cdo -griddes zmksrf_lai.nc
Warning (find_time_vars): Time variable >time< not found!
#
# gridID 1
#
gridtype  = generic
gridsize  = 259200
xsize     = 720
ysize     = 360
#
# gridID 2
#
gridtype  = generic
gridsize  = 360
xsize     = 360
#
# gridID 3
#
gridtype  = generic
gridsize  = 720
xsize     = 720

and

cdo -griddes zmksrf_pft.nc
# gridID 1
#
gridtype  = generic
gridsize  = 25920000
xsize     = 7200
ysize     = 3600
#
# gridID 2
#
gridtype  = generic
gridsize  = 3600
xsize     = 3600
#
# gridID 3
#
gridtype  = generic
gridsize  = 7200
xsize     = 7200

But when I do

cdo remapbil,gridPFT zmksrf_lai.nc zmksrf_laiNew.nc
cdo    remapbil (Abort): Unsupported target grid type (generic)!

With NCO, I tried ncremap with the following error.

ncremap -a bilinear -d zmksrf_pft.nc zmksrf_lai.nc zmksrf_laiHires.nc
Input #00: /cluster/work/users/yogesh/DataRegCM470/CLM45/surface/zmksrf_lai.nc
Grid(src): /tmp/ncremap_tmp_grd_src.nc.pid97687
Grid(dst): /tmp/ncremap_tmp_grd_dst.nc.pid97687
application called MPI_Abort(comm=0x84000000, 1) - process 0
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=1
:
system msg for write_line failure : Bad file descriptor
ncremap: ERROR Failed to generate map-file. Debug this:
ESMF_RegridWeightGen -s "/tmp/ncremap_tmp_grd_src.nc.pid11968" -d "/tmp/ncremap_tmp_grd_dst.nc.pid11968" -w "/tmp/ncremap_tmp_map_esmf_bilinear.nc.pid11968" --method bilinear --no_log --ignore_unmapped --ignore_degenerate  --dst_regional > /dev/null
ncremap: HINT When ESMF fails to generate map-files, it often puts additional debugging information in the file named PET0.RegridWeightGen.Log in the invocation directory (/cluster/work/users/yogesh/DataRegCM470/CLM45/surface)

All the necessary modules are loaded. The metadata/dimensions of both files are:

ncdump -h zmksrf_lai
netcdf zmksrf_lai {
dimensions:
lat = 360 ;
lon = 720 ;
time = 12 ;
pft = 17 ;
variables:
        float EDGEE ;
                EDGEE:long_name = "eastern edge of surface grid" ;
                EDGEE:units = "degrees east" ;
        float EDGEN ;
                EDGEN:long_name = "northern edge of surface grid" ;
                EDGEN:units = "degrees north" ;
        float EDGES ;
                EDGES:long_name = "southern edge of surface grid" ;
                EDGES:units = "degrees north" ;
        float EDGEW ;
                EDGEW:long_name = "western edge of surface grid" ;
                EDGEW:units = "degrees east" ;
        float LANDMASK(lat, lon) ;
                LANDMASK:long_name = "land mask" ;
                LANDMASK:units = "unitless" ;
        float LAT(lat) ;
                LAT:long_name = "lat" ;
                LAT:units = "degrees north" ;
        float LATIXY(lat, lon) ;
                LATIXY:long_name = "latitude-2d" ;
                LATIXY:units = "degrees north" ;
        float LON(lon) ;
                LON:long_name = "lon" ;
                LON:units = "degrees east" ;
        float LONGXY(lat, lon) ;
                LONGXY:long_name = "longitude-2d" ;
                LONGXY:units = "degrees east" ;
        float MONTHLY_HEIGHT_BOT(time, pft, lat, lon) ;
                MONTHLY_HEIGHT_BOT:_FillValue = -999.f ;
                MONTHLY_HEIGHT_BOT:long_name = "monthly height bottom" ;
                MONTHLY_HEIGHT_BOT:units = "unitless" ;
        float MONTHLY_HEIGHT_TOP(time, pft, lat, lon) ;
                MONTHLY_HEIGHT_TOP:_FillValue = -999.f ;
                MONTHLY_HEIGHT_TOP:long_name = "monthly height top" ;
                MONTHLY_HEIGHT_TOP:units = "unitless" ;
        float MONTHLY_LAI(time, pft, lat, lon) ;
                MONTHLY_LAI:_FillValue = -999.f ;
                MONTHLY_LAI:long_name = "monthly leaf area index" ;
                MONTHLY_LAI:units = "unitless" ;
        float MONTHLY_SAI(time, pft, lat, lon) ;
                MONTHLY_SAI:_FillValue = -999.f ;
                MONTHLY_SAI:long_name = "monthly stem area index" ;
                MONTHLY_SAI:units = "unitless" ;

// global attributes:

and

ncdump -h zmksrf_pft
netcdf zmksrf_pft {
dimensions:
        lon = 7200 ;
        lat = 3600 ;
        pft = 17 ;
        nchar = 128 ;
variables:
        float EDGEE ;
                EDGEE:long_name = "eastern edge of surface grid" ;
                EDGEE:units = "degrees east" ;
        float EDGEN ;
                EDGEN:long_name = "northern edge of surface grid" ;
                EDGEN:units = "degrees north" ;
        float EDGES ;
                EDGES:long_name = "southern edge of surface grid" ;
                EDGES:units = "degrees north" ;
        float EDGEW ;
                EDGEW:long_name = "western edge of surface grid" ;
                EDGEW:units = "degrees east" ;
        int LANDMASK(lat, lon) ;
                LANDMASK:long_name = "land mask" ;
                LANDMASK:units = "unitless" ;
        float LAT(lat) ;
                LAT:_FillValue = 9.96921e+36f ;
                LAT:long_name = "lat" ;
                LAT:units = "degrees north" ;
        float LATIXY(lat, lon) ;
                LATIXY:_FillValue = 9.96921e+36f ;
                LATIXY:long_name = "latitude-2d" ;
                LATIXY:units = "degrees north" ;
        float LON(lon) ;
                LON:_FillValue = 9.96921e+36f ;
                LON:long_name = "lon" ;
                LON:units = "degrees east" ;
        float LONGXY(lat, lon) ;
                LONGXY:_FillValue = 9.96921e+36f ;
                LONGXY:long_name = "longitude-2d" ;
                LONGXY:units = "degrees east" ;
        double PCT_PFT(pft, lat, lon) ;
                PCT_PFT:long_name = "percent pft" ;
                PCT_PFT:units = "unitless" ;

// global attributes:
ClimateUnboxed
  • 7,106
  • 3
  • 41
  • 86
user3652962
  • 453
  • 1
  • 4
  • 13
  • 1
    Please revise your question. Without knowing what you tried and what errors resulted it is impossible to provide any guidance. – Robert Wilson Nov 24 '20 at 08:54
  • The problem you have is that the grid is generic, and CDO and NCO have no way to identify longitude and latitude. How are they stored? Are they data variables? You will need to change the grid info in say regardless – Robert Wilson Nov 24 '20 at 11:21
  • yes they are data variables also. Any other method around? – user3652962 Nov 24 '20 at 11:36
  • You'll need to set the data to coordinates. You can do this using NCO. Potential solutions are discussed here: https://code.mpimet.mpg.de/boards/1/topics/513 – Robert Wilson Nov 24 '20 at 12:03

0 Answers0