On Tue, Sep 13, 2011 at 11:36 AM, Leidner, Mark <mleid...@aer.com> wrote:

>
> Dear Python/Matplotlib/Ogr Users:
>
> We are recent converts to Python, and are having trouble with some of its
> functionalities.
> We'd like to submit our case for your consideration in hopes to get some
> educated help on the subject.
>
> The problem:
> When trying to use contour collections generated by contourf, the resulting
> shapefile contains overly simplified contours which poorly approximate the
> underlying field.
>
> To reproduce the problem, we wrote a python script that specifies a 2-d
> analytical shape. This shape has small noise perturbations added, in order
> to simulate natural geophysical fields (wind speed, for example).
> .
> The shape is being sliced by contourf command, and the resulting collection
> is being plotted as a PDF file (PostScript) and converted to an output
> Shapefile using OGR module.
>
> We also wrote several functions, defined inside the script, that take care
> of unpacking and exporting the contour collections as polygon or
> multipolygon shapefile entities thru OGR shapefile methods.
>
> Two zoomed in views are attached (screenshot_* attachments): (1) a portion
> of the PDF figure, and (2) a visualization of the shapefile data for the
> same area.  The PDF figure shows a contour line with fine scale structure
> (the fine structures are the noise we added) while a lack of fine structure
> is seen in the output shapefile.  The PDF plot is what we expect.  The
> output shapefile geometry is very different from what we would expect.
>
> We can't understand how a call to contourf can produce a plot that looks
> right AND shapefile data (taken from contourf's collections) that appear to
> grossly simplify the geometry.  We expect that both the plot and the
> shapefile come from the same contourf function results, yet look totally
> different.
>
> We'd like to ask whether anyone else encountered limitations regarding the
> complexity of shapefiles written out by python?
> Is this a possible problem with matplotlib.pyplot.contourf.collections
> method?
>
> We would appreciate your help very much!
> Test script and the resulting shapefile data set are attached.
>
> Thank you!
>
>
I am not able to run the test case because I don't have osgeo (also note
that Nio isn't used in the given example).  However, I might have a guess as
to what is going on.  In mpl, there is path simplication logic to reduce
complexity of the paths.  There have been bugs in the past with this logic,
and so it would be valuable to know what version of matplotlib you are
using.

This simplification code is probably being activated within the call to
to_polygons().  Which version of matplotlib are you using?

Ben Root
------------------------------------------------------------------------------
BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA
Learn about the latest advances in developing for the 
BlackBerry&reg; mobile platform with sessions, labs & more.
See new tools and technologies. Register for BlackBerry&reg; DevCon today!
http://p.sf.net/sfu/rim-devcon-copy1 
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to