<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">   I’m trying to run the ESMF regridding function to regrid land use and land cover information from a rectilinear Albers equal area projection to a WRF lambert conformal projection. I’ve used a version of this script many times to regrid
 between different projections and it has worked perfectly but this time I get an error indicating that the weights cannot be generated. Any ideas as to why this might be occurring? Could it have something to do with the Albers projection?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My script is as follows:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"<o:p></o:p></p>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"<o:p></o:p></p>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"<o:p></o:p></p>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">begin<o:p></o:p></p>
<p class="MsoNormal">vars = (/"2006_2001_Loss","2006_2001_Gain","2006_2001_Shift"/)<o:p></o:p></p>
<p class="MsoNormal">outfile = "MODIS.2006-2001.Africa.nc"<o:p></o:p></p>
<p class="MsoNormal">fon = addfile(outfile,"c")<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">do v=0,dimsizes(vars)-1<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">;---Data file containing source grid<o:p></o:p></p>
<p class="MsoNormal">    src_file = "Change.2001_2006.nc"               ;;---Change (likely)<o:p></o:p></p>
<p class="MsoNormal">    src_map  = "MODIS_2001.nc"<o:p></o:p></p>
<p class="MsoNormal">    sfile    = addfile(src_file,"r")<o:p></o:p></p>
<p class="MsoNormal">    smfile   = addfile(src_map,"r")<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">;---Get variable to regrid<o:p></o:p></p>
<p class="MsoNormal">    var_name = vars(v)           ;;---Change (likely)<o:p></o:p></p>
<p class="MsoNormal">    var      = sfile->$var_name$            ;;---Change (likely)<o:p></o:p></p>
<p class="MsoNormal">    src_lat  = smfile->latitude                   ;;---Change (maybe)<o:p></o:p></p>
<p class="MsoNormal">    src_lon  = smfile->longitude                 ;;---Change (maybe)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">;---Data file containing destination grid<o:p></o:p></p>
<p class="MsoNormal">    dst_file = "map.Africa.nc"        ;;---Change (likely)<o:p></o:p></p>
<p class="MsoNormal">    dfile    = addfile(dst_file,"r")<o:p></o:p></p>
<p class="MsoNormal">    dst_lat  = dfile->XLAT(0,:,:)                   ;;---Change (likely)<o:p></o:p></p>
<p class="MsoNormal">    dst_lon  = dfile->XLONG(0,:,:)                  ;;---Change (likely)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">;---Set up regridding options<o:p></o:p></p>
<p class="MsoNormal">    Opt                   = True<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">;---"bilinear" is the default. "patch" and "conserve" are other options.<o:p></o:p></p>
<p class="MsoNormal">    Opt@InterpMethod      = "neareststod"        ;;---Change (maybe)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    Opt@WgtFileName       = "rec_to_curv.nc"  ; optional<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    Opt@SrcGridLat        = src_lat           ; source grid<o:p></o:p></p>
<p class="MsoNormal">    Opt@SrcGridLon        = src_lon<o:p></o:p></p>
<p class="MsoNormal">    Opt@SrcRegional       = True              ;;--Change (maybe)<o:p></o:p></p>
<p class="MsoNormal">    Opt@SrcInputFileName  = src_file          ; optional, but good idea<o:p></o:p></p>
<p class="MsoNormal">                                                           ; missing values.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    Opt@DstGridLat        = dst_lat             ; destination grid<o:p></o:p></p>
<p class="MsoNormal">    Opt@DstGridLon        = dst_lon<o:p></o:p></p>
<p class="MsoNormal">    Opt@DstRegional       = True              ;;--Change (maybe)<o:p></o:p></p>
<p class="MsoNormal">    Opt@DstMask2D = where(.not.ismissing(dst_lat).and.\<o:p></o:p></p>
<p class="MsoNormal">                          .not.ismissing(dst_lon),1,0) ; Necessary if lat/lon<o:p></o:p></p>
<p class="MsoNormal">                                                      ; has missing values.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    Opt@ForceOverwrite    = True<o:p></o:p></p>
<p class="MsoNormal">    Opt@PrintTimings      = True<o:p></o:p></p>
<p class="MsoNormal">    Opt@Debug             = True<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    var_regrid = ESMF_regrid(var,Opt)     ; Do the regridding<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    fon->$var_name$ = var_regrid<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    printVarSummary(var_regrid)<o:p></o:p></p>
<p class="MsoNormal">    delete(var_name)<o:p></o:p></p>
<p class="MsoNormal">    delete(var)<o:p></o:p></p>
<p class="MsoNormal">    delete(var_regrid)<o:p></o:p></p>
<p class="MsoNormal">    delete(dst_lat)<o:p></o:p></p>
<p class="MsoNormal">    delete(dst_lon)<o:p></o:p></p>
<p class="MsoNormal">    delete(src_lat)<o:p></o:p></p>
<p class="MsoNormal">    delete(src_lon)<o:p></o:p></p>
<p class="MsoNormal">    delete(Opt)<o:p></o:p></p>
<p class="MsoNormal">end do<o:p></o:p></p>
<p class="MsoNormal">end<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The script output with the error message is as follows<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">(0)     get_src_grid_info: source lat dims = (7770)<o:p></o:p></p>
<p class="MsoNormal">(0)     get_src_grid_info: source lon dims = (7563)<o:p></o:p></p>
<p class="MsoNormal">(0)     get_src_grid_info: source grid type is 'rectilinear'<o:p></o:p></p>
<p class="MsoNormal">(0)     curvilinear_to_SCRIP: calculating grid corners...<o:p></o:p></p>
<p class="MsoNormal">(0)     curvilinear_to_SCRIP: no lat values are at the poles, so<o:p></o:p></p>
<p class="MsoNormal">(0)            calculating grid corners using<o:p></o:p></p>
<p class="MsoNormal">(0)            calc_SCRIP_corners_noboundaries...<o:p></o:p></p>
<p class="MsoNormal">(0)     calc_SCRIP_corners_noboundaries<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max original lat: -35.23254905085637/37.99549894885637<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max original lon: -18.96852865285641/52.3084051828564<o:p></o:p></p>
<p class="MsoNormal">(0)     calc_SCRIP_corners_noboundaries<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max Extlat2d: -35.24197472314363/38.00492462114362<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max Extlon2d: -18.9779543251436/52.3178308551436<o:p></o:p></p>
<p class="MsoNormal">(0)     calc_SCRIP_corners_noboundaries<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max ExtGridCenter_lat: -35.237261887/38.00021178499999<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max ExtGridCenter_lon: -18.973241489/52.313118019<o:p></o:p></p>
<p class="MsoNormal">(0)     =====> CPU Elapsed Time: rectilinear_to_SCRIP: 49.0142 seconds <=====<o:p></o:p></p>
<p class="MsoNormal">(0)     get_dst_grid_info: destination lat dims = (169,252)<o:p></o:p></p>
<p class="MsoNormal">(0)     get_dst_grid_info: destination lon dims = (169,252)<o:p></o:p></p>
<p class="MsoNormal">(0)     curvilinear_to_SCRIP: calculating grid corners...<o:p></o:p></p>
<p class="MsoNormal">(0)     curvilinear_to_SCRIP: no lat values are at the poles, so<o:p></o:p></p>
<p class="MsoNormal">(0)            calculating grid corners using<o:p></o:p></p>
<p class="MsoNormal">(0)            calc_SCRIP_corners_noboundaries...<o:p></o:p></p>
<p class="MsoNormal">(0)     calc_SCRIP_corners_noboundaries<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max original lat: -35.2259/19.128<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max original lon: -24.1202/64.4362<o:p></o:p></p>
<p class="MsoNormal">(0)     calc_SCRIP_corners_noboundaries<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max Extlat2d: -35.5159/19.4431<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max Extlon2d: -24.5117/64.8278<o:p></o:p></p>
<p class="MsoNormal">(0)     calc_SCRIP_corners_noboundaries<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max ExtGridCenter_lat: -35.3709/19.2855<o:p></o:p></p>
<p class="MsoNormal">(0)          min/max ExtGridCenter_lon: -24.3161/64.6321<o:p></o:p></p>
<p class="MsoNormal">(0)     =====> CPU Elapsed Time: curvilinear_to_SCRIP: 0.0331116 seconds <=====<o:p></o:p></p>
<p class="MsoNormal">(0)     ESMF_regrid_gen_weights: number of processors used: 1<o:p></o:p></p>
<p class="MsoNormal">(0)     --------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">(0)     ESMF_regrid_gen_weights: the following command is about to be executed on the system:<o:p></o:p></p>
<p class="MsoNormal">(0)     'ESMF_RegridWeightGen --source source_grid_file.nc --destination destination_grid_file.nc --weight rec_to_curv.nc --method neareststod --src_regional --dst_regional -i'<o:p></o:p></p>
<p class="MsoNormal">(0)     --------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">(0)     ESMF_regrid_gen_weights: output from 'ESMF_RegridWeightGen':<o:p></o:p></p>
<p class="MsoNormal">(0)           Starting weight generation with these inputs:<o:p></o:p></p>
<p class="MsoNormal">(1)             Source File: source_grid_file.nc<o:p></o:p></p>
<p class="MsoNormal">(2)             Destination File: destination_grid_file.nc<o:p></o:p></p>
<p class="MsoNormal">(3)             Weight File: rec_to_curv.nc<o:p></o:p></p>
<p class="MsoNormal">(4)             Source File is in SCRIP format<o:p></o:p></p>
<p class="MsoNormal">(5)             Source Grid is a regional grid<o:p></o:p></p>
<p class="MsoNormal">(6)             Source Grid is a logically rectangular grid<o:p></o:p></p>
<p class="MsoNormal">(7)             Destination File is in SCRIP format<o:p></o:p></p>
<p class="MsoNormal">(8)             Destination Grid is a regional grid<o:p></o:p></p>
<p class="MsoNormal">(9)             Destination Grid is a logically rectangular grid<o:p></o:p></p>
<p class="MsoNormal">(10)            Regrid Method: nearest source to destination<o:p></o:p></p>
<p class="MsoNormal">(11)            Pole option: NONE<o:p></o:p></p>
<p class="MsoNormal">(12)            Ignore unmapped destination points<o:p></o:p></p>
<p class="MsoNormal">(13)            Norm Type: dstarea<o:p></o:p></p>
<p class="MsoNormal">(14)<o:p></o:p></p>
<p class="MsoNormal">(0)     --------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">(0)     ESMF_regrid_gen_weights: 'ESMF_RegridWeightGen' was not successful.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I checked the weights log file and the only information it has is the following<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">20180323 140041.361 INFO             PET0 Running with ESMF Version 6.3.0rp1<o:p></o:p></p>
<p class="MsoNormal">20180323 140041.376 INFO             PET0 Running with ESMF Version 6.3.0rp1<o:p></o:p></p>
<p class="MsoNormal">20180323 140041.408 INFO             PET0 Running with ESMF Version 6.3.0rp1<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Tim Glotfelty<o:p></o:p></p>
<p class="MsoNormal">Postdoctoral Research Associate<o:p></o:p></p>
<p class="MsoNormal">Department of Environmental Science and Engineering<o:p></o:p></p>
<p class="MsoNormal">University of North Carolina at Chapel Hill<o:p></o:p></p>
</div>
</body>
</html>