[ncl-talk] regridding
igor akkerman
igorakkerman89 at gmail.com
Thu Feb 5 02:52:13 MST 2015
Hi,
I need to regrid NCEP-NCAR reanalysis to a rotated regional model grid that
is set up as follows:
Sketch of the rotated grid (rot.lat, rot.lon)
(24.5,-27.5) ------ (24.5,27.0)
| |
| |
(-25.0,-27.5) ------ (-25.0,27.0)
This is a regular grid with uniform resol. of 0.5.
and in geograf. grid (geograf. lat, lon):
(53.8,-134.6) ------ (54.2,135.1)
| |
| |
(53.5,-44.7) ------ (53.85,44.2)
I also have an ascii file with rotated grid cell coordinates and equivalent
geographical coordinates called 'hirham_rot_geo_koor.dat".
I tried making a script but can't correctly assign the conversion between
rotated and geographical grid coordinates. Could you please take a look at
the script and suggest how to fix it?
The error message is that SLP_regrid variable has only one coordinate
instead of three.
WRITE_NETCDF = False
; TEXT FILE CONVERTING ROTATED AND SPHERICAL LATS AND LONS
filename = "hirham_rot_geo_koor.dat"
coords = asciiread(filename,(/100,110,4/),"float")
lat2d = coords(:,:,0) ; reading rotated latitude from ascii file
lon2d = coords(:,:,1) ; reading rotated longitude from ascii file
printMinMax(lon2d, True)
;---NCEP-NCAR reanalysis
srcFileName = "slp.1948.nc"
sfile = addfile(srcFileName,"r")
Opt = True
Opt at SrcTitle = "NCEP-NCAR reanalysis" ; optional
Opt at WgtFileName = "NCEP_to_Rect.nc"
Opt at ForceOverwrite = True
SLP = sfile->slp
SLP at lat2d = lat2d
SLP at lon2d = lon2d
printVarSummary(SLP)
dims = dimsizes(lat2d)
nlat = dims(0)
nlon = dims(1)
Opt at SrcFileName = "Rectilinear.nc" ; Name of source and
Opt at DstFileName = "WRF_SCRIP.nc" ; destination files
;---Create the destination lat/lon grid
printVarSummary(lat2d)
printVarSummary(lon2d)
printMinMax(lat2d, True)
printMinMax(lon2d, True)
lat = fspan( -25, 24.5,nlat)
lon = fspan( -27.5,27,nlon)
lat at units = "degrees_north"
lon at units = "degrees_east"
lat!0 = "lat"
lon!0 = "lon"
lat&lat = lat
lon&lon = lon
Opt at DstGridType = "rectilinear"
Opt at DstGridLat = lat
Opt at DstGridLon = lon
Opt at InterpMethod = "bilinear"
Opt at SrcRegional = True
Opt at DstRegional = True
Opt at Debug = True
SLP_regrid = ESMF_regrid(SLP,Opt) ; Do the regridding for TMP
;
; The source and destination grid description files and
; weight file will be the same for the next call to
; ESMF_grid, so no need to regenerate them.
;
Opt at SkipSrcGrid = True
Opt at SkipDstGrid = True
Opt at SkipWgtGen = True
;---Reset 0 values to missing values.
SLP_regrid at _FillValue = default_fillvalue(typeof(SLP_regrid))
SLP_regrid = where(SLP_regrid.eq.0.0,SLP_regrid at _FillValue,\
SLP_regrid)
printVarSummary(SLP_regrid)
;----------------------------------------------------------------------
; Plotting section
;
; This section creates filled contour plots of both the original
; data and the regridded data, and panels them.
;----------------------------------------------------------------------
wks_slp = gsn_open_wks("png","interpolate_slp")
res = True
res at gsnDraw = False
res at gsnFrame = False
res at cnFillOn = True
res at cnLinesOn = False
res at cnLineLabelsOn = False
res at lbLabelBarOn = False
res at cnLevelSelectionMode = "ManualLevels"
res at gsnPolar = "NH"
res at mpMinLatF = min(lat)
res at gsnAddCyclic = False
nrec = 0
dims_orig = tostring(dimsizes(SLP(nrec,:,:)))
mnmxint_slp = nice_mnmxintvl( min(SLP), max(SLP), 18, False)
;---SLP
res at cnMinLevelValF = mnmxint_slp(0)
res at cnMaxLevelValF = mnmxint_slp(1)
res at cnLevelSpacingF = mnmxint_slp(2)/2. ; Create more levels
res at tiMainFontHeightF = 0.015
;---SLP regridded
res at tiMainString = "rectilinear grid (" + Opt at InterpMethod + "
interpolation)"
slp_regrid = gsn_csm_contour_map(wks_slp,SLP_regrid(nrec,:,:),res)
;---SLP original
res at tiMainString = "SLP on original curvilinear grid (" + \
str_join(dims_orig," x ") + ")"
slp_orig = gsn_csm_contour_map(wks_slp,SLP(nrec,:,:),res)
;---Compare the plots in a panel
pres = True
pres at gsnMaximize = True
pres at gsnPanelLabelBar = True
gsn_panel(wks_slp,(/slp_orig,slp_regrid/),(/1,2/),pres)
;---Trim
system("convert -trim interpolate_slp.png interpolate.png")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150205/31c5b748/attachment.html
More information about the ncl-talk
mailing list