Ben,
Many thanks! Will try to use shapely package then.
Masha
--------------------
liu...@usc.edu
On Jan 30, 2013, at 6:59 AM, Benjamin Root wrote:
>
>
> On Tue, Jan 29, 2013 at 5:55 PM, Maria Liukis <liu...@usc.edu> wrote:
> Hello,
>
> I tested the following code on my Mac laptop and our production Linux server
> both running matplotlib V1.0.1. Both machines observe the same output from
> the code, so I was wondering if somebody is aware of the problem or if it's
> some undocumented feature of "pnpoly()" function from matplotlib.nxutils?
>
> I use matplotlib.nxutils.pnpoly() function from matplotlib to determine if
> point belongs to the polygon.
> The following code:
>
> >>> import numpy as np
> >>> import matplotlib.nxutils as nx
> >>> coords = np.array([[4.0, 1.0], [4.0, 4.0], [5.0, 5.0], [6.0, 4.0], [5.0,
> >>> 0.0]])
>
> >>> nx.pnpoly(4.0, 1.0, coords)
> 1
> >>> nx.pnpoly(4.0, 4.0, coords)
> 1
> >>> nx.pnpoly(5.0, 5.0, coords)
> 0
> >>> nx.pnpoly(6.0, 4.0, coords)
> 0
> >>> nx.pnpoly(5.0, 0.0, coords)
> 0
>
> The question is why first two vertexes are considered to be inside of defined
> polygon, and last 3 vertexes are not? My guess, it's treating the polygon as
> a semi-open set, and I wonder if it can be changed to make all vertexes
> inclusive?
>
> Any help would be greatly appreciated.
>
> Many thanks,
> Masha
>
> The documentation for pnpoly() for that version states:
>
> """
> A point on the boundary may be treated as inside or outside.
> See `pnpoly
> <http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html>`_
> """
>
> Note that in version 1.2.0, the nxutils module was deprecated. pnpoly() and
> points_inside_poly() are now merely wrappers around the polygon's
> implementations of point-testing, which differs from the nxutils'
> implementation, so you may get slightly different results.
>
> Do note that the point-testing algorithm in matplotlib was more geared for
> visualization purposes rather than for strict geometric needs. If you need a
> more well-behaved point-tester (and faster if the polygon is "prepared"), use
> the shapely package instead.
>
> I hope that clears things up!
>
> Cheers!
> Ben Root
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_jan
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users