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

Alexander Schaefer alexander.schaefer at mines.sdsmt.edu
Thu Apr 9 11:44:22 MDT 2015


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/33507730/attachment.html 


More information about the ncl-talk mailing list