[ncl-talk] high resolution png image

Micah Sklut micahs2005 at gmail.com
Thu Oct 30 16:33:06 MDT 2014


Yes, cnRasterCellSizeF, is what I was looking for!
This has created the high res, well defined image I was looking for. My
data set is 3200x7200, which is 4800 squared, so I set cnRasterCellSizeF to
1.0/4800. The results look pretty good with this setting, but I will
continue to experiment with this parameter. This doesn't account for the
margins around the map image, so I"m sure there is a bit of tweaking to be
done.

I set the png resolution to 16384x16384. The reason I chose this resolution
is because this is 256 * 2 (to the 6th power), which is the resolution of
an image tile layer at zoom level 6 using standards for web map api's like
google maps or leaflet. I will use ImageMagick to cut this image into
squares of 256x256. The png output file was created relatively quick, about
2 minutes, whereas the AreaFill was taking on the order of 4 hours on my
server. The ImageMagick calculations are impressively, but for zoom level
6, it creates 4096 images, which taks me around 20 minutes.

If anyone else is interested in the process to create the image tile
layers, I'd be happy to share with the community.

Thanks as always for the great help on this email list.

Micah

On Thu, Oct 30, 2014 at 4:48 PM, David Brown <dbrown at ucar.edu> wrote:

> Hi Kyle,
>
> My experience is that drawing a raster fill png plot keeping the cell
> size close to the grid cell size is usually (much) faster than drawing
> an AreaFill plot. For the example I just used, drawing the MPAS grid,
> the raster sample factor does not work well because it is an
> unstructured grid, and therefore there is not a clear definition of
> the size of a grid cell, which the cnRasterSampleFactorF resource
> depends on. With a little work, this could be improved I think.
>  -dave
>
>
>
> On Thu, Oct 30, 2014 at 2:35 PM, Kyle Griffin <ksgriffin2 at wisc.edu> wrote:
> > Interesting. I would agree on having a couple of examples. In the
> meantime,
> > a couple of thoughts...
> >
> > Between the cnRasterCellSizeF and cnRasterSampleFactorF, you can
> essentially
> > set the cell size to be infinitely small (e.g. 1e-30, within the range of
> > float still) and keeping the sample factor at 1.0 should keep the cells
> no
> > smaller than the size of the grid itself, correct? If this was done, is
> > there any computational efficiency to be gained versus using an AreaFill?
> > Might depend on the data itself, I suppose, but it would seem that the
> > infinitely-small limit of RasteFill is essentially CellFill mode, but
> > perhaps more computations (such as averaging all data points
> contributing a
> > cell - in this case this is 1, but don't know if the average is removed
> in
> > this limiting case) which would make CellFill more example in this
> limiting
> > case, perhaps? Either way, you could avoid wkWidth/Height-dependent
> > calculations with the sample factor limit, if I'm reading the
> documentation
> > correctly.
> >
> > I think the application Micah has in mind would involve transferring the
> > image over the web and using a browser-side piece of software to subset
> the
> > image to the desired visible region. Plotting resolution issues were the
> > problem when I tried something a while ago, so it would be interesting to
> > find the most efficient way of hi-res plotting of an entire global grid
> and
> > getting a subset to a web-based user.
> >
> >
> > Kyle
> >
> > ----------------------------------------
> > Kyle S. Griffin
> > Department of Atmospheric and Oceanic Sciences
> > University of Wisconsin - Madison
> > Room 1421
> > 1225 W Dayton St, Madison, WI 53706
> > Email: ksgriffin2 at wisc.edu
> >
> > On Thu, Oct 30, 2014 at 3:19 PM, David Brown <dbrown at ucar.edu> wrote:
> >>
> >> Compared with high resolution PostScript files, high resolution PNG
> >> images do seem to be much more cost effective in terms of file size
> >> and quickness to load and manipulate by typical viewing tools like Mac
> >> Preview.
> >>
> >> Ideally you would want a PNG image that is close to the same
> >> resolution as your data or higher. In order to get this with an NCL
> >> "RasterFill" plot there are two things you need to adjust: the output
> >> workstation resolution, controlled by "wkWidth" and "wkHeight", and
> >> the resolution that the raster fill method uses when drawing, which is
> >> most easily controlled by setting the resource "cnRasterCellSizeF" to
> >> a suitable small number. Note that the workstation resources set a
> >> resolution for the plot as a whole, including the annotations and any
> >> white space that surrounds the plot, while the raster cell size only
> >> relates to the area inside the viewport of the actual plot -- just
> >> something to keep in mind.
> >>
> >> For example, to visualize a 65,000,000 cell MPAS grid with maximum
> >> possible detail, I set
> >> wkWidth and wkHeight to 16384 (a power of 2 but not really necessary
> >> -- it could have been 16000).
> >> Then I set cnRasterCellSizeF to 1.0/16384.0  Nothing magical about
> >> these numbers, and they don't account for the whole plot vs viewport
> >> issue mathematically, but they do produce a very detailed image. The
> >> output PNG file is about 40 MB -- too big to attach to this message
> >> unfortunately.
> >>
> >> We should probably have an example or two showing how to create
> >> high-res graphics.
> >>  -dave
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Thu, Oct 30, 2014 at 11:30 AM, Micah Sklut <micahs2005 at gmail.com>
> >> wrote:
> >> > Okay, thanks for explaining how the raster fill works Kyle. That does
> >> > help
> >> > me understand this limitation. With respect to processing time between
> >> > rasterFill and areaFill. It took about 1-2 minutes for rasterFill,
> >> > compared
> >> > to a ball park of 4 hours for areaFill. Quite a difference!
> >> >
> >> > On Thu, Oct 30, 2014 at 1:26 PM, Kyle Griffin <ksgriffin2 at wisc.edu>
> >> > wrote:
> >> >>
> >> >> That's part of the definition of Raster fill - it will always create
> >> >> the
> >> >> same number of boxes regardless of resolution of the data underneath,
> >> >> typically based on an average of the data points within that set of
> >> >> grid
> >> >> points. Although I'm not knowledgeable about the behind-the-scenes
> >> >> computations, I know it's common for NCL to mark the whole average as
> >> >> missing if any subset of that average is missing. I'm not sure if
> >> >> there's a
> >> >> way to override this - a developer might need to chime in here - but
> >> >> that
> >> >> would be your only hope if you want to keep your image production
> time
> >> >> down,
> >> >> as the other fill modes will almost certainly be more intensive. You
> >> >> can
> >> >> scan examples of Raster Fill code here (see link) and in the contour
> >> >> resources page as well.
> >> >>
> >> >> https://www.ncl.ucar.edu/Applications/raster.shtml
> >> >>
> >> >> If you did AreaFill or CellFill, I don't think you see much
> difference
> >> >> in
> >> >> the time to produce a vector file output versus a raster image
> output.
> >> >> But
> >> >> yes, what you are seeing is a limitation of using the RasterFill
> >> >> setting.
> >> >>
> >> >>
> >> >> Kyle
> >> >>
> >> >> ----------------------------------------
> >> >> Kyle S. Griffin
> >> >> Department of Atmospheric and Oceanic Sciences
> >> >> University of Wisconsin - Madison
> >> >> Room 1421
> >> >> 1225 W Dayton St, Madison, WI 53706
> >> >> Email: ksgriffin2 at wisc.edu
> >> >>
> >> >> On Thu, Oct 30, 2014 at 11:55 AM, Micah Sklut <micahs2005 at gmail.com>
> >> >> wrote:
> >> >>>
> >> >>> No, I"m not masking data. Yes, I am using RasterFill, and the
> >> >>> resulting
> >> >>> image for the Mid Atlantic is great. But, when I expand to global, I
> >> >>> lose
> >> >>> the high detail, no matter how much I increase the png resolution.
> So,
> >> >>> just
> >> >>> wondering why I am losing detail with the global image, and if there
> >> >>> is a
> >> >>> way around it.
> >> >>>
> >> >>> On Thu, Oct 30, 2014 at 12:52 PM, Kyle Griffin <ksgriffin2 at wisc.edu
> >
> >> >>> wrote:
> >> >>>>
> >> >>>> Hi Micah,
> >> >>>>
> >> >>>> This seems to me the type of result you would expect when using
> >> >>>> RasterFill as a cnFillMode - the default should be cnAreaFill,
> which
> >> >>>> increases plot time significantly, but might that be an issue?
> >> >>>> Otherwise, I assume you're doing nothing else to mask the data,
> >> >>>> correct?
> >> >>>> Sometimes masking data with a land mask can create similar
> >> >>>> blockiness,
> >> >>>> although I am unaware (via inexperience) as to whether there is a
> >> >>>> resolution
> >> >>>> dependence based on the plot size or native data resolution.
> >> >>>>
> >> >>>>
> >> >>>> Kyle
> >> >>>>
> >> >>>> ----------------------------------------
> >> >>>> Kyle S. Griffin
> >> >>>> Department of Atmospheric and Oceanic Sciences
> >> >>>> University of Wisconsin - Madison
> >> >>>> Room 1421
> >> >>>> 1225 W Dayton St, Madison, WI 53706
> >> >>>> Email: ksgriffin2 at wisc.edu
> >> >>>>
> >> >>>> On Thu, Oct 30, 2014 at 11:37 AM, Micah Sklut <
> micahs2005 at gmail.com>
> >> >>>> wrote:
> >> >>>>>
> >> >>>>> Hi Kyle,
> >> >>>>>
> >> >>>>> Thanks for the reply.
> >> >>>>>
> >> >>>>> The dataset is of 0.05 degree resolution, so that certainly isn't
> >> >>>>> the
> >> >>>>> problem. I have attached an image of the same data, but limiting
> the
> >> >>>>> min/max
> >> >>>>> lat/lon to the US Mid Atlantic. In this image you will see much
> more
> >> >>>>> detail.
> >> >>>>> This is the type of detail I was hoping to achieve for the entire
> >> >>>>> globe. I
> >> >>>>> figured if I increased the resolution of the global png, it would
> >> >>>>> create the
> >> >>>>> desired effect, but as you can see from the global image I
> attached,
> >> >>>>> this
> >> >>>>> wasn't the case.
> >> >>>>>
> >> >>>>> Looking forward to hearing your thoughts.
> >> >>>>> Thank you,
> >> >>>>>
> >> >>>>> Micah
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>> On Thu, Oct 30, 2014 at 12:26 PM, Kyle Griffin <
> ksgriffin2 at wisc.edu>
> >> >>>>> wrote:
> >> >>>>>>
> >> >>>>>> Micah,
> >> >>>>>>
> >> >>>>>> This looks more like a limitation of your dataset - SST data is
> not
> >> >>>>>> of
> >> >>>>>> infinite resolution, and you're plotting far more pixels than
> would
> >> >>>>>> be data
> >> >>>>>> points in even a 0.1˚ dataset! It looks like the internal pixels
> >> >>>>>> are the
> >> >>>>>> same size as your coastlines, so I don't see an issue with NCL
> >> >>>>>> there. More
> >> >>>>>> specifically, you are not actually plotting coastlines - they
> only
> >> >>>>>> plot if
> >> >>>>>> you tell them to plot with a call to gsn_csm_map or another
> similar
> >> >>>>>> plotting
> >> >>>>>> tool. If you're looking for high resolution coastlines, look at
> the
> >> >>>>>> RANGS
> >> >>>>>> mapping capabilities in NCL. Beyond that, you can always plot
> >> >>>>>> shapefiles as
> >> >>>>>> well.
> >> >>>>>>
> >> >>>>>> Yes, vector images are going to be extremely large and painful
> for
> >> >>>>>> even a moderate resolution file over the full globe. When you say
> >> >>>>>> raster,
> >> >>>>>> are you talking about it in the image sense (non-vector file) or
> in
> >> >>>>>> the
> >> >>>>>> cnFillMode sense (RasterFill, AreaFill, etc.;
> >> >>>>>>
> >> >>>>>>
> https://www.ncl.ucar.edu/Document/Graphics/Resources/cn.shtml#cnFillMode)?
> >> >>>>>> Raster fill mode will make the data more blocky and reduce
> >> >>>>>> interpolation
> >> >>>>>> between points, but the trade-off is a much faster plotting of
> the
> >> >>>>>> image and
> >> >>>>>> works well for high-resolution datasets being plotted at
> relatively
> >> >>>>>> low
> >> >>>>>> resolution/wide zoom.
> >> >>>>>>
> >> >>>>>>
> >> >>>>>> Kyle
> >> >>>>>>
> >> >>>>>> ----------------------------------------
> >> >>>>>> Kyle S. Griffin
> >> >>>>>> Department of Atmospheric and Oceanic Sciences
> >> >>>>>> University of Wisconsin - Madison
> >> >>>>>> Room 1421
> >> >>>>>> 1225 W Dayton St, Madison, WI 53706
> >> >>>>>> Email: ksgriffin2 at wisc.edu
> >> >>>>>>
> >> >>>>>> On Thu, Oct 30, 2014 at 9:58 AM, Micah Sklut <
> micahs2005 at gmail.com>
> >> >>>>>> wrote:
> >> >>>>>>>
> >> >>>>>>> Hi,
> >> >>>>>>>
> >> >>>>>>> This is a follow up to my previous posts, in reference to
> >> >>>>>>> searching
> >> >>>>>>> for high resolution images that could be used as
> >> >>>>>>> zooming/navigating
> >> >>>>>>> (specific interest is with image tile layers).
> >> >>>>>>>
> >> >>>>>>> I figured if I created a png file with a high resolution, it
> would
> >> >>>>>>> be
> >> >>>>>>> able to capture the high detail, like with coastlines and so
> >> >>>>>>> forth.
> >> >>>>>>> I've attached an image with very high resolution (16384x16384),
> >> >>>>>>> but
> >> >>>>>>> as you can see, if you zoom the global image into the coastlines
> >> >>>>>>> they are
> >> >>>>>>> extremely blocky.
> >> >>>>>>>
> >> >>>>>>> Is is possible to capture high resolution features, such as
> >> >>>>>>> coastlines in a global raster image with NCL?
> >> >>>>>>>
> >> >>>>>>> FYI, I tried the vector image route, but the file size was
> >> >>>>>>> gigantic,
> >> >>>>>>> so that didn't seem like a proper route.
> >> >>>>>>>
> >> >>>>>>> Thank you,
> >> >>>>>>>
> >> >>>>>>> --
> >> >>>>>>> Micah Sklut
> >> >>>>>>>
> >> >>>>>>> _______________________________________________
> >> >>>>>>> ncl-talk mailing list
> >> >>>>>>> List instructions, subscriber options, unsubscribe:
> >> >>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>> --
> >> >>>>> Micah Sklut
> >> >>>>>
> >> >>>>
> >> >>>
> >> >>>
> >> >>>
> >> >>> --
> >> >>> Micah Sklut
> >> >>>
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > Micah Sklut
> >> >
> >> >
> >> > _______________________________________________
> >> > ncl-talk mailing list
> >> > List instructions, subscriber options, unsubscribe:
> >> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> >> >
> >
> >
>



-- 
Micah Sklut
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20141030/5bf0b03a/attachment.html 


More information about the ncl-talk mailing list