[ncl-talk] regrid variable writing netcdf file
Anil Kumar - NOAA Affiliate
anil.kumar at noaa.gov
Mon Mar 26 11:39:47 MDT 2018
Mary,
Thanks for your email. After some proper plotting resources, I am able to
plot figure (attached).
My initial question is about writing regrid variable in lat x lon format .
(ncl script attached)
I am trying to write var_regrid variable in lat x long format i.e
var_regrid(lat x lon). After esmf call var_regrid is in (x x y) point
dimensions.
I am trying to looking samples and scripts but no success so far.
Thanks,
Anil
On Fri, Mar 23, 2018 at 6:09 PM, Mary Haley <haley at ucar.edu> wrote:
> Hello,
>
> We have been looking into this offline.
>
> For starters, since both of your grids are regional, you want to set:
>
> Opt at DstRegional = True
> Opt at SrcRegional = True
>
> Secondly, you already have the triangular mesh defined on your file, which
> will help the regridding go much faster, because NCL doesn't have to
> generate it for you:
>
>
> Opt at SrcTriangularMesh = sfile->element-1
> ; the minus one is important so indexes go from 0 to n-1
>
> For plotting purposes, I set these for both plots:
>
> res at cnLevelSelectionMode = "ManualLevels"
> res at cnMinLevelValF = -6
> res at cnMaxLevelValF = 6
> res at cnLevelSpacingF = 0.25
>
> I removed the file writing part for now, because there's something weird
> about an attribute type, but I'll include the original script
> (test_regrid.ncl) and the modified one without the file writing
> (test_regrid_mod.ncl) and hopefully you can add back in the file writing
> part. I was in a hurry so I just removed it, and now I have to run out the
> door.
>
> I'm not sure the regridding went well, but this could simply be the
> nature of going from high-res to low-res, and also the fact that the two
> grids don't have values in the same places. You will need to take a look
> at the PNG image and see what you think.
>
> --Mary
>
>
> On Thu, Mar 22, 2018 at 9:58 AM, Rick Brownrigg <brownrig at ucar.edu> wrote:
>
>> Hi,
>>
>> Without the data, I can't run the script, but on visual inspection, it
>> *looks* like you have all the right elements in place to write the NetCDF
>> file. What's not happening for you -- any errors or odd results, or just
>> plain nothing?
>>
>> Rick
>>
>> On Thu, Mar 22, 2018 at 6:58 AM, Anil Kumar - NOAA Affiliate <
>> anil.kumar at noaa.gov> wrote:
>>
>>> Hi,
>>>
>>> I am trying to write regrid variable (unstructured data to WRF grid),
>>> code creates var_regrid successfully at that point. I want to write
>>> var_regird variable in separate netcdf file with lat & lon dimension in it.
>>> Can anyone please help me on this. Thanks
>>> The var_regrid print summmary
>>> ********
>>>
>>> Variable: var_regrid
>>>
>>> Type: double
>>>
>>> Total Size: 1301864 bytes
>>>
>>> 162733 values
>>>
>>> Number of Dimensions: 2
>>>
>>> Dimensions and sizes: [353] x [461]
>>>
>>> Coordinates:
>>>
>>> Number Of Attributes: 10
>>>
>>> missing_value : -99999
>>>
>>> remap : remapped via ESMF_regrid_with_weights: Bilinear
>>>
>>> lon2d : <ARRAY of 162733 elements>
>>>
>>> lat2d : <ARRAY of 162733 elements>
>>>
>>> long_name : maximum water surface elevationabove geoid
>>>
>>> standard_name : maximum_sea_surface_height_above_geoid
>>>
>>> location : node
>>>
>>> mesh : adcirc_mesh
>>>
>>> units : m
>>>
>>> _FillValue : -99999
>>>
>>> ********
>>> here is the code
>>>
>>> begin
>>>
>>>
>>>
>>>
>>> src_file = "maxele.63.nc"
>>>
>>> sfile = addfile(src_file,"r")
>>>
>>>
>>> ;printVarSummary(sfile)
>>>
>>> lat1D = sfile->y
>>>
>>> lon1D = sfile->x
>>>
>>> var = sfile->zeta_max
>>>
>>>
>>> dst_file = "geo_em.d01.nc"
>>>
>>> dfile = addfile(dst_file,"r")
>>>
>>>
>>>
>>> ;---Set up regridding options
>>>
>>>
>>> Opt = True
>>>
>>>
>>> ;---"bilinear" is the default. "patch" and "conserve" are other options.
>>>
>>> Opt at InterpMethod = "bilinear" ;;---Change (maybe)
>>>
>>> Opt at WgtFileName = "unstruct_to_rect.nc"
>>>
>>>
>>> Opt at SrcGridLat = lat1D
>>>
>>> Opt at SrcGridLon = lon1D
>>>
>>> Opt at SrcRegional = False ;;--Change (maybe)
>>>
>>> Opt at SrcInputFileName = src_file ; optional, but good idea
>>>
>>>
>>> Opt at SrcMask2D = where(.not.ismissing(var),1,0) ; Necessary
>>> if has
>>>
>>> ; missing
>>> values.
>>>
>>>
>>> dst_lat = dfile->XLAT_M(0,:,:) ; Be sure to use
>>> appropriate names
>>>
>>> dst_lon = dfile->XLONG_M(0,:,:) ; here.
>>>
>>> Opt at DstGridLon = dst_lon
>>>
>>> Opt at DstGridLat = dst_lat
>>>
>>> Opt at DstRegional = True ;;--Change (maybe)
>>>
>>> ; Opt at DstMask2D = where(.not.ismissing(dst_lat).and.\
>>>
>>> ; .not.ismissing(dst_lon),1,0) ; Necessary if
>>> lat/lon
>>>
>>> ; has missing
>>> values.
>>>
>>> ; has missing
>>> values.
>>>
>>> Opt at ForceOverwrite = True
>>>
>>> Opt at Debug = True
>>>
>>> Opt at PrintTimings = True
>>>
>>>
>>> var_regrid = ESMF_regrid(var,Opt) ; Do the regridding
>>>
>>>
>>> printVarSummary(var_regrid)
>>>
>>>
>>>
>>> ; Code for writing netcdf format file with lat and long cordinate
>>>
>>> setfileoption("nc", "Format", "NetCDF4")
>>>
>>> fon = "ZETA_MAX_D01.nc"
>>>
>>> system("/bin/rm -f " + fon) ; remove if exists
>>>
>>> fnew = addfile(fon, "c")
>>>
>>>
>>>
>>> ;===================================================================
>>>
>>> ; create global attributes of the file (optional)
>>>
>>> ;===================================================================
>>>
>>> fAtt = True ; assign file attributes
>>>
>>> fAtt at title = "NCL Simple Approach to netCDF Creation"
>>>
>>> fAtt at source_file = "original-file.nc"
>>>
>>> fAtt at Conventions = "None"
>>>
>>> fAtt at creation_date = systemfunc ("date")
>>>
>>> fileattdef( fnew, fAtt ) ; copy file attributes
>>>
>>>
>>> filedimdef(fnew,(/"lat","lon"/),(/353,461/),(/False,False/))
>>>
>>> var_names2D = (/ "var_regrid" /)
>>>
>>> varvar_types2D = (/ "float" /)
>>>
>>>
>>> filevardef( fnew, var_names2D, varvar_types2D, (/ "lat", "lon" /) )
>>>
>>>
>>>
>>> var_regrid!0 = "lat"
>>>
>>> var_regrid!1 = "lon"
>>>
>>>
>>> var_regrid&lat = dst_lat
>>>
>>> var_regrid&lon = dst_lon
>>>
>>>
>>> var_regrid at long_name = "maximum water surface elevationabove geoid"
>>> ; assign attributes
>>>
>>> var_regrid at units = "m"
>>>
>>>
>>> fnew->ZETA_MAX = var_regrid ; name on file different
>>> from name in code
>>>
>>>
>>>
>>> end
>>>
>>>
>>> --
>>> Dr. Anil Kumar
>>> NWS/NCEP/EMC, Office# 2875
>>> NOAA Center for Weather and Climate Prediction (NCWCP)
>>> 5830 UNIVERSITY RESEARCH CT
>>> <https://maps.google.com/?q=5830+UNIVERSITY+RESEARCH+CT+College+Park,+MD+20740&entry=gmail&source=g>
>>> College Park, MD 20740
>>> <https://maps.google.com/?q=5830+UNIVERSITY+RESEARCH+CT+College+Park,+MD+20740&entry=gmail&source=g>
>>> -3818
>>> 301-683-0494 <(301)%20683-0494>
>>> anil.kumar at noaa.gov
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
--
Dr. Anil Kumar
NWS/NCEP/EMC, Office# 2875
NOAA Center for Weather and Climate Prediction (NCWCP)
5830 UNIVERSITY RESEARCH CT
College Park, MD 20740-3818
301-683-0494
anil.kumar at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180326/8600b177/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unstruct_to_wrf.png
Type: image/png
Size: 501028 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180326/8600b177/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_regrid_write.ncl
Type: application/octet-stream
Size: 2778 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180326/8600b177/attachment-0001.obj>
More information about the ncl-talk
mailing list