[ncl-talk] gsn_text_ndc: panelplot-common-labelbar text being printed on a new frame

Karin Meier-Fleischer meier-fleischer at dkrz.de
Tue Apr 24 05:11:14 MDT 2018


Hi Tabish,

gsn_panel draw the panel and advance the frame per default. You have to add

   resP at gsnFrame = False

to the panel resources.

-Karin

Am 24.04.18 um 00:50 schrieb Tabish Ansari:
> Hi
>
> I'm trying to add some text below the common labelbar of my panelplot 
> as suggested in: https://www.ncl.ucar.edu/Applications/Scripts/panel_4.ncl
>
> However, it is being printed on a new empty frame.
>
> Here's my script:
>
> /load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"  ; Add 
> special wrf functions
>
> begin
>
> a = addfile("/home/tabish/WPS_Nishadh/geo_em.d01_3km.nc 
> <http://geo_em.d01_3km.nc>","r") ; Open a file
> b = addfile("/home/tabish/WPS/geo_em.d03.nc 
> <http://geo_em.d03.nc>","r") ; Open a file
> c = addfile("/home/tabish/WPS_Nishadh/geo_em.d04_1km.nc 
> <http://geo_em.d04_1km.nc>","r") ; Open a file
> z1 = asciiread("/data1/tabish/nclscripts/metstations_D01",-1,"string")
> z2 = 
> asciiread("/data1/tabish/nclscripts/surfacedata_12-31_Octmean_improved.txt",-1,"string")
> LATmet    = stringtofloat(str_get_cols(z1, 36,42))
> LONmet    = stringtofloat(str_get_cols(z1, 45,52))
> print (LATmet +" "+LONmet)
>
> LATpol    = stringtofloat(str_get_cols(z2, 45,50))
> LONpol    = stringtofloat(str_get_cols(z2, 27,33))
> print("LAT/LON for polstations")
> print (LATpol +" "+LONpol)
>
>   type = "x11"
>   wks = gsn_open_wks(type,"ter_d01_met-pol_stations")       ; Create a 
> plot workstation
>   setvalues NhlGetWorkspaceObjectId()
>     "wsMaximumSize" : 300000000
>   end setvalues
>   gsn_define_colormap(wks,"OceanLakeLandSnow")
>
>   opts = True                                ; Set some Basic Plot options
>   opts at MainTitle = "GEOGRID FIELDS"
>   opts at NoHeaderFooter = True
>   ter_d01 = a->HGT_M(0,:,:)                      ; Read the variable 
> to memory
>   ter_d03 = b->HGT_M(0,:,:)                      ; Read the variable 
> to memory
>   ter_d04 = c->HGT_M(0,:,:)                      ; Read the variable 
> to memory
>   ter_d01 at description = ""
>   ter_d01 at units = ""
>   ter_d03 at description = ""
>   ter_d03 at units = ""
>   ter_d04 at description = ""
>   ter_d04 at units = ""
>   res = opts                                 ; Use basic options for 
> this field
>   res at cnFillOn = True                        ; Create a color fill plot
>   res at cnFillMode       = "RasterFill"        ; Raster Mode
>   res at lbLabelBarOn        = False           ; turn off individual cb's
>   res at gsnDraw             = False           ; don't draw
>   res at gsnFrame            = False           ; don't advance frame
>
> res at cnLevelSelectionMode = "ExplicitLevels"   ; set explicit contour 
> levels
> res at cnLevels    = (/ 
> 1,5,10,50,100,150,200,250,300,400,500,700,1000,1200,1500,1800,2500,3000,4000/)
> contour_d01 = wrf_contour(a,wks,ter_d01,res)
> contour_d03 = wrf_contour(b,wks,ter_d03,res)
> res at cnFillMode       = "AreaFill"        ; Raster Mode switched off 
> the d04
> contour_d04 = wrf_contour(c,wks,ter_d04,res)
>
>   pltres = True                              ; Set plot options
>   mpres = True                               ; Set map options
> mpres at mpDataBaseVersion = "MediumRes"
> mpres at mpDataSetName = "Earth..4"
> mpres at mpGeophysicalLineColor = "Black"
> mpres at mpGridLineColor = "Black"
> mpres at mpLimbLineColor = "Black"
> mpres at mpNationalLineColor = "Black"
> mpres at mpPerimLineColor = "Black"
> mpres at mpUSStateLineColor = "Black"
> mpres at mpOutlineBoundarySets = "AllBoundaries"
> mpres at mpNationalLineThicknessF = 1.5
> mpres at mpProvincialLineThicknessF = 1.5
> mpres at mpGeophysicalLineThicknessF = 1.5
>
> pltres at PanelPlot = True      ; Indicate these plots are to be paneled.
> pltres at NoHeaderFooter = True
> pltres at FramePlot = False  ; do not frame plot - will do this manually 
> later
>
> plot = new(3,graphic)                          ; create a plot array
> plot(0) = wrf_map_overlays(a,wks,(/contour_d01/),pltres,mpres)  ; Plot 
> the data over a map background
> plot(1) = wrf_map_overlays(b,wks,(/contour_d03/),pltres,False)  ; Plot 
> the data over a map background
> plot(2) = wrf_map_overlays(c,wks,(/contour_d04/),pltres,False)  ; Plot 
> the data over a map background
>
> ;---Attach some dummy text strings
>   txres               = True
>   txres at txFontHeightF = 0.017
>   txres at txJust        = "TopCenter"
>
>   gres2                 = True
>   gres2 at gsFillColor     = "deepskyblue"
>   gres2 at gsFillOpacityF  = 0.7
>   lat2 = (/35.04059,  45.21748, 44.41343, 34.32753, 35.04059/)
>   lon2 = (/109.437, 109.3554, 124.9451,  123.0779, 109.437/)
>   tabish1 = gsn_add_polygon(wks,plot(0),lon2,lat2,gres2)
>
>
>   gres3                 = True
>   gres3 at gsFillColor     = "pink"
>   gres3 at gsFillOpacityF  = 0.7
>   lat3 = (/36.05806,  42.79478, 42.4514, 35.7411, 36.05806/)
>   lon3 = (/113.3356, 113.6442, 120.2533,  119.3942, 113.3356/)
>   tabish2 = gsn_add_polygon(wks,plot(0),lon3,lat3,gres3)
>
>   pmres1 = True
>   pmres1 at gsMarkerColor = "Blue"
>   pmres1 at gsMarkerIndex = 16
>   pmres1 at gsMarkerSizeF = 0.002
>
>   pmres2 = True
>   pmres2 at gsMarkerColor = "Red"
>   pmres2 at gsMarkerIndex = 16
>   pmres2 at gsMarkerSizeF = 0.002
> ;STARTING TO MARK MET AND POL STATIONS
> tabish3 = gsn_add_polymarker(wks,plot(0),LONmet,LATmet,pmres1)
> tabish4 = gsn_add_polymarker(wks,plot(0),LONpol,LATpol,pmres2)
>
> pmres1 at gsMarkerSizeF = 0.003
> pmres2 at gsMarkerSizeF = 0.003
> tabish5 = gsn_add_polymarker(wks,plot(1),LONmet,LATmet,pmres1)
> tabish6 = gsn_add_polymarker(wks,plot(1),LONpol,LATpol,pmres2)
>
> pmres1 at gsMarkerSizeF = 0.006
> pmres2 at gsMarkerSizeF = 0.006
> tabish7 = gsn_add_polymarker(wks,plot(2),LONmet,LATmet,pmres1)
> tabish8 = gsn_add_polymarker(wks,plot(2),LONpol,LATpol,pmres2)
> pmres2 at gsMarkerColor = "Black"
> tabish9 = gsn_add_polymarker(wks,plot(2),116.37,39.97,pmres2)
>
> china_shp_name    = "/data1/tabish/Shapefiles/China/CHN_adm1.shp"
> lnres                  = True
> lnres at gsLineColor      = "black"
> lnres at gsLineThicknessF = 1
> ;china_id1 = gsn_add_shapefile_polylines(wks,plot(0),china_shp_name,lnres)
> china_id3 = gsn_add_shapefile_polylines(wks,plot(1),china_shp_name,lnres)
> china_id4 = gsn_add_shapefile_polylines(wks,plot(2),china_shp_name,lnres)
>
> ;************************************************
> ; create panel
> ;************************************************
>   resP                     = True                ; modify the panel plot
>   resP at gsnPanelMainString  = "Model domain: topography, meteorological 
> and pollutant stations"
>   resP at gsnPanelLabelBar    = True               ; This gives an error!!!
>   resP at lbLabelFontHeightF  = 0.007               ; make labels smaller
>   resP at gsnPanelRowSpec     = True                   ; tell panel what 
> order to plot
>   resP at gsnPanelCenter      = False
>   resP at gsnPanelBottom = 0.07
>resP at FramePlot = False  ; do not frame plot - will do this manually 
> later
>   gsn_panel(wks,(/plot/),(/2,1/),resP)               ; now draw as one 
> plot
>
>
> ; Draw a text string at the bottom
>   txres               = True
>   txres at txFontHeightF = 0.015
>   txres at FramePlot = False  ; do not frame plot - will do this manually 
> later
>   gsn_text_ndc(wks,"Topography height (m)",0.5,0.02,txres)
>   frame(wks)
> end/
>
> Please help me resolve this issue.
>
> Thanks very much,
>
> Tabish
>
> Tabish U Ansari
> PhD student, Lancaster Environment Center
> Lancaster Univeristy
> Bailrigg, Lancaster,
> LA1 4YW, United Kingdom
>
>
> _______________________________________________
> 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/20180424/6ffd4a19/attachment.html>


More information about the ncl-talk mailing list