[ncl-talk] Trying to plot streamlines using WRF data, streamlines are not in the correct part of the plot

Craig Tierney - NOAA Affiliate craig.tierney at noaa.gov
Tue May 12 04:01:04 MDT 2015


Mary,

Thanks for your help on this.  I was at a conference since I sent in my
help requests and hadn't had time to look at all of this.  After installing
NCL 6.3 and changing my script to use gsn_csn_streamline_scalar_map, I was
able to get the plot I expected.

Thanks,
Craig

On Thu, Apr 9, 2015 at 10:51 PM, Mary Haley <haley at ucar.edu> wrote:

> Hi Craig,
>
> You are using the generic "gsn_streamline_scalar_map" function, which
> doesn't look for the special lat2d/lon2d attributes.
>
> If you have NCL V6.3.0 installed, then you can use
> gsn_csm_streamline_scalar_map, which should recognize these special
> attributes.
>
> I created a simple example for you. See example wrf_gsn_8.ncl at:
>
> http://www.ncl.ucar.edu/Applications/wrfgsn.shtml#ex8
>
> --Mary
>
> On Thu, Apr 9, 2015 at 3:17 PM, Craig Tierney - NOAA Affiliate <
> craig.tierney at noaa.gov> wrote:
>
>> Hello,
>>
>> After some good help from some list members, I believe that I am setting
>> up the resources for plotting WRF data without the WRF functions.
>> However, I still get no streamlines in my plot, or at least not in the
>> correct place.
>>
>> I am using NCL 6.1.2.  My WRF domain is close to CONUS.  The domain is
>> LambertConformal and I am setting the mapping properties stored in the
>> Global section of the NetCDF file to the appropriate variables for the LC
>> mapping.   To draw the streamlines, I am basing my code off of the example
>> here:
>>
>> https://www.ncl.ucar.edu/Applications/Scripts/gsn_stream_4.ncl
>>
>> I read in the data, massage it, then try and plot it.  When I plot the
>> speed, u1, or v1 arrays with contour:
>>
>>         contour = gsn_csm_contour_map(wks,speed,res)
>>
>>  I get what I would want, a contour of that variable with the bounds of
>> the plot that of my domain.  When I try the same thing to create a
>> streamline plot:
>>
>>        plot = gsn_streamline_scalar_map(wks,u1,v1,speed,res)
>>
>> I get nothing.  When I remove setting the Corners of the domain by
>> commenting out the following:
>>
>>  res at mpRightCornerLatF                 = lat2d(0,0)
>>  res at mpRightCornerLonF                = lon2d(0,0)
>>  res at mpLeftCornerLatF                   = lat2d(nlat-1,nlon-1)
>>  res at mpLeftCornerLonF                  = lon2d(nlat-1,nlon-1)
>>  res at mpLimitMode                           = "Corners"
>>
>> I get streamlines, but they are between 0E and 225E and 0N to 90N.  For
>> the CONUS domain I am using the corners are about (138W,21N) and
>> (298W,47N).  Something is being calculated, but not what I was expecting.
>>
>> Any ideas are appreciated.
>>
>> Thanks,
>> Craig
>>
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
>>
>> begin
>> ;---Open WRF output file.
>>   dir      =
>> "/scratch2/portfolios/BMC/winds/Craig.Tierney/theia/wrf/windswrf/trunk/conusplus-wrf-6day/201308010000/nowfp-nocu/wrf/"
>>   filename = "wrfout_d01_2013-08-04_00:00:00"
>>   a = addfile(dir + filename + ".nc","r")
>>
>> ;---Read terrain height and lat/lon off file.
>>   it        = 0     ; first time step
>>   du1       = wrf_user_getvar(a,"U10",it)    ; Terrain elevation
>>   dv1       = wrf_user_getvar(a,"V10",it)    ; Terrain elevation
>>   dlon2d=wrf_user_getvar(a,"XLONG",it)
>>   dlat2d=wrf_user_getvar(a,"XLAT",it)
>>
>> ; Down sample hack
>>  d=dimsizes(du1)
>>  nx=d(0)
>>  ny=d(1)
>>  s=8
>>  u1=du1(0:nx-1:s,0:ny-1:s)
>>  v1=dv1(0:nx-1:s,0:ny-1:s)
>>  lat2d=dlat2d(0:nx-1:s,0:ny-1:s)
>>  lon2d=dlon2d(0:nx-1:s,0:ny-1:s)
>>
>>  u1 at lon2d=lon2d
>>  u1 at lat2d=lat2d
>>  v1 at lon2d=lon2d
>>  v1 at lat2d=lat2d
>>
>>   speed=sqrt(u1*u1+v1*v1)
>>   speed at lat2d=lat2d
>>   speed at lon2d=lon2d
>>
>>   wks = gsn_open_wks("png","wrf_gsn")
>>
>> ;---Set some basic plot options
>>   res               = True
>>
>>   res at gsnMaximize   = True   ; maximize plot in frame
>>
>>   res at tiMainString  = filename
>>
>>   ;res at mpProjection  = "CylindricalEquidistant"
>>   res at mpProjection  = "LambertConformal"
>>
>>       res at mpLambertParallel1F = a at TRUELAT1         ; two parallels
>>       res at mpLambertParallel2F = a at TRUELAT2
>>       res at mpLambertMeridianF  = a at STAND_LON        ; central meridian
>>       res at mpCenterLonF        = a at CEN_LON
>>       res at mpCenterLatF       = a at CEN_LAT
>>
>>     d=dimsizes(u1)
>>     nlat=d(0)
>>     nlon=d(1)
>>
>> ;;;; Comment this section out, and we get streamlines, but in the wrong
>> place
>> ;;;; This is why they don't show up in the zoomed in plot
>> ;    res at mpRightCornerLatF                 = lat2d(0,0)
>> ;    res at mpRightCornerLonF                = lon2d(0,0)
>> ;    res at mpLeftCornerLatF                   = lat2d(nlat-1,nlon-1)
>> ;    res at mpLeftCornerLonF                  = lon2d(nlat-1,nlon-1)
>> ;    res at mpLimitMode                           = "Corners"
>>
>> ;---Additional resources desired
>>   res at pmTickMarkDisplayMode = "Always"   ; nicer tickmarks
>>
>>   res at mpDataBaseVersion     = "MediumRes"       ; better and more map
>> outlines
>>   res at mpDataSetName         = "Earth..4"
>>   res at mpOutlineBoundarySets = "AllBoundaries"
>>   res at mpOutlineOn           = True
>>
>>   res at lbOrientation         = "Vertical"
>>   res at tiMainOffsetYF        = -0.03           ; Move the title down
>>
>> ;; This is where we decide what to plot
>>   ptype="contour"
>> ;  ptype="streamline"
>>
>>   if (ptype .eq. "contour") then
>> print("Plotting: "+ptype)
>> res at cnFillOn      = True
>> res at cnFillPalette = "OceanLakeLandSnow"
>> res at cnLinesOn     = False
>> ;contour = gsn_csm_contour_map(wks,speed,res)
>> ;contour = gsn_csm_contour_map(wks,u1,res)
>> contour = gsn_csm_contour_map(wks,v1,res)
>>   else
>> if (ptype .eq. "streamline") then
>> print("Plotting: "+ptype)
>> res at pmTickMarkDisplayMode    = "Always"
>>   res at pmLabelBarDisplayMode    = "Always"
>> res at pmLabelBarOrthogonalPosF = -0.02
>> res at pmLabelBarWidthF         = 0.1
>> res at lbPerimOn                = False
>>
>> plot = gsn_streamline_scalar_map(wks,u1,v1,speed,res)
>> else
>> print("Unable to plot either contour or streamline: "+ptype)
>>         exit
>> end if
>>   end if
>>
>> end
>>
>>
>> _______________________________________________
>> 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/20150512/505a51a4/attachment.html 


More information about the ncl-talk mailing list