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: