[ncl-talk] Fill entire plot area
Mary Haley
haley at ucar.edu
Wed Jul 30 08:39:46 MDT 2014
Hi Rabah,
One of NCL's quirks is that it always wants to draw things to a square, so
even when you have a non-square plot, like with a lat/lon projection that
may be wider than it is high, there is still an invisible square area that
NCL is plotting to. You will see this especially when you are plotting
graphics to an X11 window or a PNG image.
There's not much you can do about the X11 window being square, but you can
trim the PNG image.
The way I trim the PNG image is to use a tool called "convert" which is
part of the free ImageMagick package. "convert" is a handy tool that
allows you to convert from one format to another (like PS to PNG, GIF to
JPEG, and PNG to PNG), while at the same time trimming additional white
space, resizing the image, cropping an image, etc.
Once you have "convert" you can use it directly in your NCL script via a
system call, to trim the white space.
So, for example, with the script you included, I would do something like
this when calling "gsn_open_wks":
wks_type = "png"
wks_type at wkWidth = pixel
wks_type at wkHeight = pixel
wks_type at wkBackgroundOpacityF = 0.0
wks_filename = "wx_map_" + "zoom" + zoom + "_" + "DOM" + \
sprinti("%0.1i",idom+1) + "_" + \
lev_str(ilev) + "_" + sprinti("%0.2i", i)
wks = gsn_open_wks(wks_type,wks_filename)
Then, after you call "draw" and "frame" on the workstation, you need to
"delete" the workstation, which merely ensures that the PNG image is
properly closed. This allows you to then call "convert" to trim the image:
draw(wks) ;; Now draw map with text strings and frame(wks)
; advance the frame
delete(wks) ; Close the PNG image
;---Trim the PNG image
png_filename = wks_filename + ".png"
cmd = "convert -trim " + png_filename + " " + png_filename
system(cmd)
You can get the ImageMagick suite of tools from:
http://www.imagemagick.org
--Mary
On Tue, Jul 29, 2014 at 7:59 AM, Rabah Hachelaf <hachelaf at sca.uqam.ca>
wrote:
> Hi all,
>
> I am using the script attached to plot sub-domains from GFS data.
> When i plot the whole domain or a 1/4 domain area the plot fit correctly
> with the entire plot area.
> But when i want plot 1/16 the plotted map does't fit and there is a white
> bands appear some time on top and bottom and some times on right and
> left.(like attached images).
>
> I tried mpShapeMode = "FreeAspect", this make my maps fit with the entire
> plot area but this not preserve the map projection aspect ratio
>
> Thank you for any suggestions.
>
> --
> ------------------------------
> Cordialement,
> Best regards,
> Rabah Hachelaf
>
>
>
> _______________________________________________
> 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/20140730/f1057dd1/attachment.html
More information about the ncl-talk
mailing list