[ncl-talk] Trying to plot WRF data without using built-in WRF functions

Craig Tierney - NOAA Affiliate craig.tierney at noaa.gov
Thu Apr 9 12:31:45 MDT 2015


Alex,

Thanks for the help.  This did the trick.

Craig


On Thu, Apr 9, 2015 at 11:44 AM, Alexander Schaefer <
alexander.schaefer at mines.sdsmt.edu> wrote:

> Hi Craig,
>
> I do a lot of specializing of my plots with my WRF data so I have strayed
> from using the wrf functions except getvar since it has a bunch of
> diagnostic variables.  When I do my map projection, which is also
> LambertConformal I set all of the following resources as such:
>
>     lat = wrf_user_getvar(a,"lat", it)
>     lon = wrf_user_getvar(a,"lat", it)
>
>     pltres = True
>     projres = res
>     projres at mpProjection                            = "LambertConformal"
>     projres at mpRightCornerLatF                 = lat(0,0)
>     projres at mpRightCornerLonF                = lon(0,0)
>     projres at mpLeftCornerLatF                   = lat(nlon-1,nlat-1)
>     projres at mpLeftCornerLonF                  = lon(nlon-1,nlat-1)
>     projres at mpLambertParallel1F               = a at TRUELAT1
>     projres at mpLambertParallel2F               = a at TRUELAT2
>     projres at mpLambertMeridianF               = a at STAND_LON
>     projres at mpCenterLonF                         = a at CEN_LON
>     projres at mpCenterLatF                          = a at CEN_LAT
>     projres at mpLimitMode                           = "Corners"
>     projres at pmTickMarkDisplayMode        = "Always"
>     projres at mpDataBaseVersion                  = "Ncarg4_1"
>     projres at mpDataSetName                      = "Earth..4"
>     projres at mpOutlineBoundarySets            = "AllBoundaries" ; all
> boundaries
>     projres at mpNationalLineThicknessF        =  1.0
>     projres at mpGeophysicalLineThicknessF  =  1.0
>     projres at mpUSStateLineThicknessF        =  2.0
>
> I have altered the options so you should be able to just paste it into
> your script.  This is a piece that I copy into all of my map scripts.
>
> I will then usually do other resources such as contour or vector or
> streamlines and to keep the projection in mind instead of setting
> "contres", contour resources equal to true, set it equal to projres and
> then continue adding resources.
>
> Hope that helps.
>
> -Alex
>
> On Thu, Apr 9, 2015 at 11:07 AM, Craig Tierney - NOAA Affiliate <
> craig.tierney at noaa.gov> wrote:
>
>> Hello,
>>
>> I am trying to plot WRF data using NCL 6.1.2 without using the built-in
>> WRF functions.  The reason I am doing this is because what I really want to
>> do is plot streamlines, and when I had problems doing that I tried to
>> simplify what I was doing first.
>>
>> I found the examples page for plotting WRF using the gsn functions.  I
>> started with the wrf_gsn_2.ncl example.  All I did was change the WRF input
>> file to point to mine. The output looked like the map was
>> CylindralEquidistant (the specified mapping) but the data are in
>> LambertConformal, so the height field is not plotted as rectangular.  So
>> you get the curved shape of my domain on the rectangular map where the
>> lines of latitude are horizontal.   This isn't want I want, but the script
>> seems to be doing what it should for my domain.
>>
>> What I found strange is that when I looked at the output of
>> wrf_map_resources, that it says the Projection is LambertConformal.
>>
>> So I tried changing the mpProjection to LambertConformal.  When I did
>> this I got something that looked more StereoGraphic.  The plot was centered
>> at the north pole.
>>
>> When I compare the output of wrf_map_resources between this script and my
>> script that uses wrf_map_overlays, the contents are identical.
>>
>> So how do I get NCL to plot my data using the GSN functions in the same
>> projection as using wrf_map_overlays?
>>
>> Here is the script that I ran:
>>
>> ;----------------------------------------------------------------------
>> ; wrf_gsn_2.ncl
>> ;----------------------------------------------------------------------
>> ; Concepts illustrated:
>> ;   - Using gsn_csm_contour_map to plot WRF-ARW data
>> ;----------------------------------------------------------------------
>> ; This example is similar to wrf_gsn_1.ncl, except more plot resources
>> ; are set to:
>> ;   - explicitly set the contour levels
>> ;   - change the look of the map outlines
>> ;   - change the color map
>> ;   - make the labelbar vertical
>> ;----------------------------------------------------------------------;
>> 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
>>   hgt       = wrf_user_getvar(a,"HGT",it)    ; Terrain elevation
>>   hgt at lat2d = wrf_user_getvar(a,"XLAT",it)   ; latitude/longitude
>>   hgt at lon2d = wrf_user_getvar(a,"XLONG",it)  ; required for plotting
>>
>>   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 cnFillOn      = True
>>   res at cnFillPalette = "OceanLakeLandSnow"
>>   res at cnLinesOn     = False
>>
>>  res at mpProjection = "CylindricalEquidistant"
>> ;  res at mpProjection  = "LambertConformal"
>>
>> ;---Zoom in on plot
>>   res at mpMinLatF     = min(hgt at lat2d)
>>   res at mpMaxLatF     = max(hgt at lat2d)
>>   res at mpMinLonF     = min(hgt at lon2d)
>>   res at mpMaxLonF     = max(hgt at lon2d)
>>
>> ;---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
>>
>> ;---Change contour levels to better match the color map being used
>>   res at cnLevelSelectionMode = "ExplicitLevels"
>>   res at cnLevels =
>> (/2,100,200,400,600,800,1000,1200,1400,1600,1800,2000,2200/)
>>
>>
>>   contour = gsn_csm_contour_map(wks,hgt,res)
>>
>> ;
>> ; This is for debugging purposes only. It shows what map resources the
>> ; wrf_map_overlays routine would have use, if you had called that routine
>> ; to do the plotting. This can be useful if you are trying to reproduce
>> ; an original WRF-ARW plot.
>> ;
>>   dbgres = True
>>   dbgres = wrf_map_resources(a,dbgres)
>>   print(dbgres)
>> end
>>
>> Craig
>>
>>
>> _______________________________________________
>> 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/20150409/4744f710/attachment.html 


More information about the ncl-talk mailing list