首页 > 解决方案 > Regrid,从 0.5 度到 0.05 度 CDO/NCO

问题描述

我有两个 .nc 文件:zmksrf_lai.nczmksrf_pft.nc。我想将 0.5 度的 LAI 文件插入 0.05 度的 PFT 文件,这样我就有了高分辨率的 LAI 数据。我尝试了 CDO,也尝试了 ncremap,但没有奏效。非常感谢您的建议。

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

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

但是当我这样做时

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

使用 NCO,我尝试了 ncremap 并出现以下错误。

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)

所有必要的模块都已加载。两个文件的元数据/维度是:

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:

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:

标签: interpolationnetcdfncocdo-climatencl

解决方案


推荐阅读