[ncl-talk] regrid variable writing netcdf file
Anil Kumar - NOAA Affiliate
anil.kumar at noaa.gov
Thu Mar 22 06:58:55 MDT 2018
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
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/20180322/dc5fbeb7/attachment.html>
More information about the ncl-talk
mailing list