[ncl-talk] ESMF_regrid_gen_weights error
Rashed Mahmood
rashidcomsis at gmail.com
Tue Oct 6 02:03:48 MDT 2020
Hi David,
I guess no one answered this question, if so, I would suggest to upgrade to
NCL to 6.6.2. I think this type of issue may have been fixed in the latest
NCL, just a guess though!
Below is some quick search on web but I do not know if these issues are
same or relevant: https://github.com/uturuncoglu/RegESM/issues/15
Cheers,
Rashed
On Sun, Oct 4, 2020 at 6:47 PM Vollaro, David via ncl-talk <
ncl-talk at mailman.ucar.edu> wrote:
> Hi,
>
> I am trying to read in a grib2 datafile and convert it to a KML file. I
> am following the rastertimeseries2kml
> script from the NCL_GETools API page (
> https://www.ncl.ucar.edu/Document/Manuals/GETools/NCL_GETools.html)
>
> Here is the Logfile PET0.RegridWeightGen.Log contents:
> 20201004 163128.461 INFO PET0 Running with ESMF Version 7.0.2
> 20201004 163128.505 INFO PET0 Running with ESMF Version 7.0.2
> 20201004 163128.559 INFO PET0 Running with ESMF Version 7.0.2
> 20201004 163130.167 ERROR PET0
> /d1/haley/src/esmf-7.0.2/src/Infrastructure/IO/interface/ESMC
> _IOScrip2ESMF.C:48 handle_error Internal error: Bad condition - line 240:
> NetCDF error: No such file o
> r directory
> 20201004 163130.167 ERROR PET0 ESMF_IOScrip.F90:764
> ESMF_OutputScripWeightFile Invalid objec
> t - Internal subroutine call returned Error
> 20201004 163130.167 ERROR PET0 ESMF_RegridWeightGen.F90:1580
> ESMF_RegridWeightGenFile Invali
> d object - Internal subroutine call returned Error
>
> It generates tmpDstGrid.nc, and tmpSrcGrid.nc. I believe the errors arise
> when trying to generate a weight file.
> Here is a snippet of my code. The data is on a 3500x7000 grid at 0.1deg.
> La1 : 54.995
> Lo1 : 230.005
> La2 : 20.005
> Lo2 : 299.995
> Di : 0.009999999
> Dj : 0.01
> Lat is in degrees_north Lon in degrees_east. I am running NCL 6.5.0
>
> Below is a snippet of my code. Thanks
>
> Dave
> ============================
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/contrib/NCL_GETools.ncl"
>
> begin
> ;***********************************************
> ; get variable names from grib file
> ;***********************************************
> ifile = "/jm13/djv/howie/MRMS_MESH_Max_1440min_00.50_20200811-060832"
> ifile_subs = str_split(ifile,"_")
> nch=strlen(ifile)
> hhmmss = str_get_cols(ifile,nch-6,nch)
> time =
> str_get_cols(hhmmss,0,1)+":"+str_get_cols(hhmmss,2,3)+":"+str_get_cols(hhmmss,4,5)
> date =
> str_get_cols(ifile,nch-15,nch-12)+"-"+str_get_cols(ifile,nch-11,nch-10)+"-"+str_get_cols(ifile,nch-9,nch-8)
> TimeTag=date+"T"+time
> kml_out = "/jm13/djv/Hailmax_MRMS_"+date+"_"+hhmmss
> grib_in = addfile(ifile+".grib2","r")
> names = getfilevarnames(grib_in); extract all variable names
> print(names+" "+TimeTag)
>
> ;***********************************************
> ; loop through variables
> ;***********************************************
> do i = 0,dimsizes(names)-1
> print(i+" vv "+names(i))
> if (names(i).eq."lat_0") then
> Lat = grib_in->$names(i)$
> print(names(i)+" "+dimsizes(Lat))
> else if (names(i).eq."lon_0") then
> Lon = grib_in->$names(i)$
> print(names(i)+" "+dimsizes(Lon))
> else
> tmp = grib_in->$names(i)$
> print(names(i)+" "+dimsizes(tmp))
> dims=dimsizes(tmp)
> print("LL "+dims(0)+" "+dims(1))
> end if
> end if
> end do
> ; Create 3D grid transposing from LAT/LON to Lon/Lat
> HailSize=new((/1,dims(1),dims(0)/),"float")
> HailSize=0.
> HailSize(0,:,:) = transpose(tmp)
> ; Create 5 patches of datavalues
> iloc=new((/5/),"integer")
> jloc=new((/5/),"integer")
> ii=0
> do i = 45,25,5
> iloc(ii)=ind_nearest_coord(i,Lat,0)
> print(i+" "+iloc(ii)+" "+Lat(iloc(ii)))
> ii=ii+1
> end do
> ii=0
> do i = 240,280,10
> jloc(ii)=ind_nearest_coord(i,Lon,0)
> print(i+" "+jloc(ii)+" "+Lon(jloc(ii)))
> ii=ii+1
> end do
> do i=0,2
> print(iloc(i)+" "+jloc(i))
> HailSize(0,jloc(i)-5:jloc(i)+5,iloc(i)-5:iloc(i)+5)=3.5
> HailSize(0,jloc(i)-15:jloc(i)+15,iloc(i)-15:iloc(i)+15)=2.5
> HailSize(0,jloc(i)-25:jloc(i)+25,iloc(i)-25:iloc(i)+25)=1.0
> end do
> do i=3,4
> HailSize(0,jloc(i)-15:jloc(i)+15,iloc(i)-15:iloc(i)+15)=1.5
> HailSize(0,jloc(i)-25:jloc(i)+25,iloc(i)-25:iloc(i)+25)=0.5
> end do
> print(Lat(iloc))
> print(Lon(jloc))
>
> ; Generate 2D latlon grids from 1D
> Lat2D = new((/dims(1),dims(0)/),"float")
> Lon2D = new((/dims(1),dims(0)/),"float")
> do i=0,dims(0)-1
> Lat2D(:,i)=Lat(i)
> end do
> do j=0,dims(1)-1
> Lon2D(j,:)=Lon(j)
> end do
> ;Generate contour increments
> cint=fspan(0,5,11)
> print(cint)
>
> ; rastertimeseries2kml template
> parm=True
> parm at Verbose=True
> parm at ColorMap="WhiteBlueGreenYellowRed"
> parm at DataSetTitle="MMRS Hail Product"
> parm at MinData=0.0
> parm at MaxData=5.0
> parm at MinDataOpacity=0
> parm at MaxDataOpacity=60
> parm at IncludeGrid=True
> parm at LineWidth=3
> parm at Name="MMRS HailSize Algorithm for "+TimeTag
> ; The following command will create a KML file, called olr12.kml,
> ; in the current directory, since the first argument, i.e.
> ; the PATH, is set to "."
>
> ; File is very large extract out subset for debugging
> i1=1400
> i2=1600
> j1=2900
> j2=3100
> HailSize1=new((/1,j2-j1+1,i2-i1+1/),"float")
> Lat2D1 = new((/j2-j1+1,i2-i1+1/),"float")
> Lon2D1 = new((/j2-j1+1,i2-i1+1/),"float")
> HailSize1=0.
> HailSize1(0,:,:)=HailSize(0,j1:j2,i1:i2)
> Lat2D1 = Lat2D(j1:j2,i1:i2)
> Lon2D1 = Lon2D(j1:j2,i1:i2)
> ;HailSize1 at lat2d = Lat2D1
> RasterTimeSeries2KML(kml_out,HailSize1,Lon2D1,Lat2D1,TimeTag,parm)
>
> end
> =================================================================
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at mailman.ucar.edu
> List instructions, subscriber options, unsubscribe:
> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20201006/d53f3137/attachment.html>
More information about the ncl-talk
mailing list