[ncl-talk] How can I get a full page plot ?

Barry Lynn barry.h.lynn at gmail.com
Tue May 23 13:03:20 MDT 2017


Hi:

This should (might) help.

(Make sure you also use:

  wtype = "png"

  wtype at wkWidth  = 7500     ; this looks better for presentations,

  wtype at wkHeight = 7500     ; PPT, etc.

  wks = gsn_open_wks(wtype,"traj")   )

panres = True

panres at gsnMaximize = True

panres at gsnPanelRight = 0.98

panres at gsnPanelLeft  = 0.02

panres at gsnPanelTop = 0.98

panres at gsnPanelBottom  = 0.05


  draw(map)

  frame(wks)

   delete(wks)

   cmd = "convert -trim -geometry 7500x7500 +repage -border 8 -bordercolor
white -background white -flatten traj.000001.png traj.000001.png"

   system(cmd)

On Tue, May 23, 2017 at 9:04 PM, Alan Brammer <abrammer at albany.edu> wrote:

> There a couple tricks to do this, and I don’t think a complete example
> anywhere so not sure where it would go though.
>
>
> Key resources to really fill a png.
> res at gsnMaximize = True
> res at gsnBoxMargin = 0          ;; took a lot of digging to find this one.
> https://www.ncl.ucar.edu/Document/Graphics/Resources/
> gsn.shtml#gsnBoxMargin
>
>
> Key things to remember,
> > "because NCL always draws its graphics to a square canvas, the PNG
> image will be resized to a square, using the largest of the two values, if
> you give it non-square values.”
> https://www.ncl.ucar.edu/Applications/resize.shtml
>
>
> So if you want it 1366 wide set both wkWidth and wkHeight to 1366.
> That will fill the png horizontally but leave you with white space at the
> top and bottom.  You can then use “-trim" or “-shave 0x261”  (assuming an
> 844 image height) to crop that border top and bottom.  Don’t think there’s
> a way to produce rectangular plots without white space being included.
>
> I put a couple of lines at the bottom that should work out the white space
> and trim it off by itself.
>
>
> Good luck,
>
> Alan
>
>
> e.g. with different map coords so different shave numbers.
>
> wkst = "png"
> wkst at wkWidth = 1366
> wkst at wkHeight = wkst at wkWidth
> outputname = "filled_png"
>
> wks = gsn_open_wks(wkst,outputname)
> mpres := True
> mpres at mpLimitMode       = "Corners"     ;;; use a cropped area just
> to identify the edge of the plot.
> mpres at mpProjection      = "mercator"
> mpres at mpPerimOn         = False
> mpres at mpLeftCornerLonF  = -100
> mpres at mpRightCornerLonF = 100
> mpres at mpRightCornerLatF = 60
> mpres at mpLeftCornerLatF  = 0
>
> mpres at tmXTOn  = False ;;; Here and below are the only ones that actually
> matter
> mpres at tmXBOn = False
> mpres at tmYROn = False
> mpres at tmYLOn = False
>
> mpres at gsnMaximize= True ;;;
> mpres at gsnBoxMargin = 0 ;;;  this one is the key one to really fill the png
> plot = gsn_csm_map(wks, mpres)
>
> getvalues plot
>     "vpHeightF": vpHF
>     "vpWidthF": vpWF   ;; should be 1.
> end getvalues
>
> image_height = 1366*vpHF
> half_margin = floor(0.5* (wkst at wkHeight-image_height) )
>
> ;system("convert -shave 0x"+half_margin+" "+outputname+"."+wkst+"
> shaved.png")
> ;; or
> system("mogrify -shave 0x"+half_margin+" "+outputname+"."+wkst)  ;; sister
> to convert, replaces original image
>
>
>
>
>
> ##############################
> Alan Brammer,
> Post-Doc Researcher
>
> Department of Atmospheric and Environmental Sciences,
> University at Albany, State University of New York, Albany, NY, 12222
> abrammer at albany.edu
> ##############################
>
>
>
>
> On 22 May 2017, at 12:31, Roussan <rousslucas at gmail.com> wrote:
>
> Hello,
> I would like to plot contours in full page at a given size (1366 x 844),
> with no margins, no white spaces, just the plot at this dimmension.
> Is it possible, or do I have to use imagemaick or graphicsmagick to crop
> the output image ?
> (I have disabled titles and labels.)
>
>  Here is the piece of code :
>
>   waveheight = fin->HTSGW_P0_L1_GLL0
>   delete(waveheight at long_name)
>   delete(waveheight at units)
>
>   wavedir    = fin->DIRPW_P0_L1_GLL0
>   delete(wavedir at long_name)
>   delete(wavedir at units)
>
>   wks_type = "png"
>   wks_type at wkWidth = 1366
>   wks_type at wkHeight = 844
>   wks  = gsn_open_wks(wks_type,outfile)
>
>   vres                           = True
>   vres at vcRefAnnoOn = False
>
>   res  = True
>   res at gsnMaximize     = True
>   res at lbLabelBarOn    = False
>   res at lbTitleOn            = False
>   vres at lbLabelBarOn   = False
>   vres at lbTitleOn           = False
>
>   plot = gsn_csm_contour_map(wks,waveheight,res)
>   plot_ov = gsn_csm_vector_scalar(wks, udir(:,:),
> vdir(:,:),waveheight,vres)
>
>   overlay(plot,plot_ov)                  ; overlay the U-wind plot on the
> temperature plot
>
>   draw(plot)                                  ; draw the temperature plot
> (with the U-wind plot overlaid)
>   frame(wks)                                 ; advance the frame
>
>
>
>
> You will can see what I can achieve in attachement.
> Thank you in advance
> Ross.
> <out.png>_______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>


-- 
Barry H. Lynn, Ph.D
Senior Lecturer,
The Institute of the Earth Science,
The Hebrew University of Jerusalem,
Givat Ram, Jerusalem 91904, Israel
Tel: 972 547 231 170
Fax: (972)-25662581

C.E.O, Weather It Is, LTD
Weather and Climate Focus
http://weather-it-is.com
Jerusalem, Israel
Local: 02 930 9525
Cell: 054 7 231 170
Int-IS: x972 2 930 9525
US 914 432 3108
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170523/d2979dd4/attachment.html 


More information about the ncl-talk mailing list