[ncl-talk] Missing values after ESMF regridding
Mary Haley
haley at ucar.edu
Thu Mar 15 13:54:35 MDT 2018
Hi Bian,
I'm looking into this.
Meanwhile, I see that your original data goes from -180 to 180, but the
lower left corner and upper right corner of the destination grid was set to:
Opt at DstLLCorner = (/ 0.25d, 0.25d/)
Opt at DstURCorner = (/89.75d, 179.75d/)
This is restricting your data in the longitude direction to go from 0.25
and 179.75. Perhaps you meant for this to be:
Opt at DstLLCorner = (/ 0.25d, -180.00d/)
Opt at DstURCorner = (/89.75d, 179.75d/)
However, this still doesn't fix the issue, so I'm looking into it further.
I'm wondering if this is a missing value issue, because I noticed that your
lat/lon has some missing values in it.
--Mary
On Thu, Mar 15, 2018 at 2:08 AM, Bian Qingyun <bianqy at tea.ac.cn> wrote:
>
>
> Hello,
>
> I'm regridding AMSR-E L3 daily snow following the examples on NCL website
> http://www.ncl.ucar.edu/Applications/Scripts/ESMF_regrid_13.ncl and hdf
> website http://hdfeos.org/zoo/index_openNSIDC_Examples.php#AMSR_E.
>
> All is fine,but there are missing values along 90°E and 90°W after
> regridding while there are no missing values in original data along and
> near 90°E and 90°W 。
>
> Below is my script. I also attached the AMSR-E data file in case.
>
> ----------------------
>
> ----------------------
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl"
>
> begin
> ;-----read data
> srcFileName = "AMSR_E_L3_DailySnow_V09_20100311.hdf"
> ; Source file
> eos_file = addfile(srcFileName + ".he2","r")
> lon2d = eos_file->GridLon_Northern_Hemisphere
> lat2d = eos_file->GridLat_Northern_Hemisphere
> ; Process NAN (1e51) fillValue for LAMAZ geolocation.
> lon2d=where(lon2d .gt. 1000, -999.0, lon2d)
> lat2d=where(lat2d .gt. 1000, -999.0, lat2d)
> lon2d at _FillValue = -999.0
> lat2d at _FillValue = -999.0
>
>
> hdf_file = addfile(srcFileName, "r")
> ; Read the dataset.
> hdf_data = hdf_file->SWE_NorthernDaily
>
> ; Filter out invalid range values.
> ; See "Table 2. Pixel Values ofr the SWE Feids" from [2].
> hdf_data = where(hdf_data .gt. 240, hdf_data at _FillValue, hdf_data)
>
> ; Prepare data for plotting by converting type.
> swe2d = tofloat(hdf_data)
> swe2d at _FillValue = tofloat(hdf_data at _FillValue)
>
> ; Multiply by two according to data spec [2].
> swe2d = 2 * swe2d
>
> ; You can get the description of data set from the data spec [2].
> swe2d at long_name = "Northern Hemisphere 5-day Snow Water Equivalent
> ~C~ (" + hdf_data at hdf_name + ")"
> swe2d at units = "mm"
> ; Associate data with lat/lon.
> swe2d at lon2d = lon2d
> swe2d at lat2d = lat2d
>
> ;-----ESMF regridding
> Opt = True ; Options for regridding
>
> Opt at SrcFileName = "EASE_SCRIP.nc" ; Output files
> Opt at DstFileName = "NH_SCRIP.nc"
> Opt at WgtFileName = "EASE_2_NH_patch.nc"
> Opt at ForceOverwrite = True
> Opt at SrcMask2D = where(ismissing(lat2d),0,1)
> Opt at SrcGridLat = lat2d
> Opt at SrcGridLon = lon2d
>
> Opt at DstGridType = "0.25deg" ; Destination grid
> Opt at DstTitle = "Northern Hemisphere 0.25 resolution"
> Opt at DstLLCorner = (/ 0.25d, 0.25d/)
> Opt at DstURCorner = (/89.75d, 179.75d/)
>
> Opt at InterpMethod = "bilinear" ; Careful! Patch method takes a
> long time
>
> Opt at Debug = True
>
> swe_regrid = ESMF_regrid(swe2d,Opt) ; Regrid swe
> printVarSummary(swe_regrid)
>
> ;----------------------------------------------------------------------
> ; Plotting section
> ;----------------------------------------------------------------------
> wks = gsn_open_wks("x11","ESMF_regrid") ; send graphics to PNG
> file
>
> res = True ; Plot mods desired.
> res at gsnMaximize = True ; Maximize plot
>
> res at gsnDraw = False
> res at gsnFrame = False
>
> res at cnFillOn = True ; color plot desired
> res at cnFillPalette = "amwg" ; set color map
> res at cnLinesOn = False ; turn off contour lines
> res at cnLineLabelsOn = False ; turn off contour labels
> res at cnFillMode = "RasterFill" ; turn raster on
>
> res at cnLevelSelectionMode= "ExplicitLevels" ; set explicit contour
> levels
> res at cnLevels = (/-300,-250,-200,-150,-100, \
> 0,1,5,10,25,100,200,300,400/)
>
> res at lbLabelBarOn = False ; turn on in panel
>
> res at trGridType = "TriangularMesh" ; allow missing
> coordinates
>
>
> res at gsnPolar = "NH" ; specify the hemisphere
> res at mpMinLatF = 35
>
> ;---Plot original data.
> res at gsnAddCyclic = False
> res at sfXArray = lon2d
> res at sfYArray = lat2d
> res at tiMainString = "Original EASE grid (" +
> str_join(dimsizes(lat2d),",") + ")"
> res at trGridType = "TriangularMesh"
> res at cnFillMode = "RasterFill"
>
> plot_orig = gsn_csm_contour_map_polar(wks,swe2d,res)
>
> delete(res at sfXArray)
> delete(res at sfYArray)
>
> ;---Plot regridded data.
> res at gsnAddCyclic = True
>
> dims = tostring(dimsizes(swe_regrid))
> res at tiMainString = "Regridded to 0.25 degree grid (" + \
> str_join(dims," x ") + ")"
>
> plot_regrid = gsn_csm_contour_map_polar(wks,swe_regrid,res)
>
> ;---Compare the plots in a panel
> pres = True
> pres at gsnMaximize = True
> pres at gsnPanelLabelBar = True
> pres at lbLabelFontHeightF = 0.01
> pres at pmLabelBarWidthF = 0.8
>
> gsn_panel(wks,(/plot_orig,plot_regrid/),(/1,2/),pres)
> end
>
> ---------------------------
>
> ---------------------------
>
> Any suggestions are appreciated! Thank you!
>
> Best,
>
> Qingyun
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> 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/20180315/4e73d5fc/attachment.html>
More information about the ncl-talk
mailing list