[ncl-talk] regrid from 64km to 32km
Dennis Shea
shea at ucar.edu
Sat Nov 22 12:44:58 MST 2014
NCL has no explicit function to create the 32km lat/lon locations.
However, if this is "test input file" maybe you could create test set via
the following which was extracted from an example
aDataDir = "./"
aFileName = "wrfout_d01_2003-07-15_00:00:00.nc"
aFile = aDataDir+aFileName
a = addfile(aFile,"r") ; a is the wrf output
with the format of rcm
xlat = a->XLAT(0,:,:)
xlon = a->XLONG(0,:,:)
dat = a->TOT_PRCP
dimll = dimsizes(xlat)
nlat = dimll(0)
mlon = dimll(1)
NLAT = 2*nlat-1 ; make large array
MLON = 2*mlon-1
XLAT = new( (/NLAT,MLON/), typeof(xlat))
XLON = new( (/NLAT,MLON/), typeof(xlat))
DAT = new( (/NLAT,MLON/), typeof(xlat))
XLAT(0:NLAT-1:2,0:MLON-1:2) = xlat ; populate with every
XLON(0:NLAT-1:2,0:MLON-1:2) = xlon ; other value
poisson_grid_fill(XLAT, False, 1, 1500, 1e-2, 0.6, 0)
poisson_grid_fill(XLON, False, 1, 1500, 1e-2, 0.6, 0)
poisson_grid_fill(DAT , False, 1, 1500, 1e-2, 0.6, 0) ; <== could be
slow
copy_VarMeta(xlat,XLAT)
copy_VarMeta(xlon,XLON)
printVarSummary(XLAT)
printVarSummary(XLAT)
;print("XLAT: "+XLAT(:,0) +" "+XLAT(:,MLON/2) +" "+ XLAT(:,MLON-1))
;print("XLON: "+XLON(0,:) +" "+XLON(NLAT/2,:) +" "+ XLON(NLAT-1,:))
wks = gsn_open_wks("x11","tstgrid")
;gsn_define_colormap(wks,"BlAqGrYeOrRe")
latlonres = True
latlonres at gsnDraw = False
latlonres at gsnFrame = False
latlonres at cnLineThicknessF = 2
latlonres at tiMainString = "Original Grid"
latlonres at cnLineColor = "red"
plotLat = gsn_contour(wks,xlat,latlonres)
latlonres at cnLineColor = "blue"
plotLon = gsn_contour(wks,xlon,latlonres)
overlay(plotLat,plotLon) ; overlay on map
draw(plotLat)
frame(wks)
latlonres at tiMainString = "Destination Grid"
latlonres at cnLineColor = "red"
plotLAT = gsn_contour(wks,XLAT,latlonres)
latlonres at cnLineColor = "blue"
plotLON = gsn_contour(wks,XLON,latlonres)
overlay(plotLAT,plotLON) ; overlay on map
draw(plotLAT)
frame(wks)
On Fri, Nov 21, 2014 at 12:36 PM, Marcella, Marc <
MMarcella at air-worldwide.com> wrote:
> Hi Dennis,
>
>
> Is there a way to do this if I in fact I don’t have a destination grid
> file like example 20 has? I am looking to create said destination grid
> file.
>
>
>
> *From:* Dennis Shea [mailto:shea at ucar.edu]
> *Sent:* Friday, November 21, 2014 12:02 PM
> *To:* Marcella, Marc
> *Cc:* ncl-talk at ucar.edu
>
> *Subject:* Re: [ncl-talk] regrid from 64km to 32km
>
>
>
> Based on the printVarSummary which shows the named dimensions as
> [Time | 8760] x [south_north | 106] x [west_east | 123]
>
> You hacv a WRF grid (curvilinear) grid.
>
>
> http://www.ncl.ucar.edu/Applications/ESMF.shtml
>
> Example 20 (also, Example 16)
>
> This is going from high resolution to low resolution but you could just
> use your 64km res file as input and
>
> specify the 'destination' 32 km grid.
>
> Note: you are interpolating precipitation. Since it is a test, bilinear
> would be fine. However, the conserve method may be better for some
> applications.
>
> Good luck
>
>
>
> On Fri, Nov 21, 2014 at 9:44 AM, Marcella, Marc <
> MMarcella at air-worldwide.com> wrote:
>
> 1) Yes, I meant it would be a misrepresentation of resolution since
> it will be at 32km physically but in reality it is 64km information.
>
> 2) I have a 64km resolution dataset that I want to slice up into 32
> km resolution for example going from say a 50x50 grid to 100x100 grid (4x
> total points) I attached an illustration if this makes it clearer.
>
> The original data is curvilinear (output from WRF data) but this data
> itself is plucked out of the wrfout files and placed onto a grid that knows
> nothing about the lat/lon and I am fine keeping it in a rectilinear grid as
> seen here by the printVarSummary:
>
> Variable: TOT_PRCP
>
> Type: float
>
> Total Size: 456851520 bytes
>
> 114212880 values
>
> Number of Dimensions: 3
>
> Dimensions and sizes: [Time | 8760] x [south_north | 106] x [west_east |
> 123]
>
> Coordinates:
>
> Number Of Attributes: 3
>
> _FillValue : 9.96921e+36
>
> units : mm/hr
>
> description : Total hourly precipitation accumulation
>
>
>
> Thank you for your help with this!
>
> Marc
>
>
>
>
>
> *From:* Dennis Shea [mailto:shea at ucar.edu]
> *Sent:* Friday, November 21, 2014 11:27 AM
> *To:* Marcella, Marc; ncl-talk at ucar.edu
> *Subject:* Re: [ncl-talk] regrid from 64km to 32km
>
>
>
>
>
> I think you have to provide more information.
>
> [1] Not sure what you mean by "this would be an incorrect regridding
> format/procedure". Do you mean going from low -resolution to
> high-resolution? There is nothing "incorrect" about that. The issue is that
> the *effective resolution* would stll be 64km but the data are rendered on
> a 32km grid.
>
> [2] The rest of the question is obscure.
>
> [3] *ALWAYS* include a printVarsummary of the source variable.
>
> (a) Is the source grid rectilinear or curvilinear? If curvilinear,
> then linint2 is not the function to use.
>
>
>
> On Fri, Nov 21, 2014 at 7:58 AM, Marcella, Marc <
> MMarcella at air-worldwide.com> wrote:
>
> Hi NCL’ers,
>
>
>
> I would like to take a current dataset that is 64 km, say at dimensions
> j=106 x i=123 and “regrid” it such that the gridcells are just sliced up
> into 32km resolution grid cells, ie the final product would have dimensions
> of 212x246. I do recognize that this would be an incorrect regridding
> format/procedure but I just need the grid for a test input file. I tried
> the linint2 regridding but this kept the first (lower left) 106x123
> gridcells the original values and all the additional/new gridcells outside
> this box were FillValues. Is there an easy way to do this with a regrid or
> NCL function?
>
>
>
> Thanks for any help in advance!
>
>
>
> Marc
>
>
>
>
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20141122/e2f8b9a8/attachment.html
More information about the ncl-talk
mailing list