Hello again,
Apparently I found that using dtype=float instead of numpy.float32
better the whole thing:
-------------------------------------------------------
[[ 1.  0.  1.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.]
 [ 0.  0.  0.  1.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.]]
(array([0, 0, 3]), array([0, 2, 3]))
[[ 0.  0.]
 [ 0.  2.]
 [ 3.  3.]]
[(0.0, 0.0), (3.0, 0.0), (2.0, 3.0)]
---------------------------------------------------------
so probably the last error was a casting problem (float32->float64).
Still I'd love to obtain [(0.0, 0.0), (0.0, 2.0), (3.0, 3.0)] as
coordinates in the multpoint...
It looks likes it is reading vertically column-by-column. Maybe
numpy.transpose() was a bad idea?

*perplexed*

Mario

PS: BTW I use numpy 1.1.1

On Sun, Aug 17, 2008 at 1:17 PM, Mario Ceresa
<[EMAIL PROTECTED]> wrote:
> Hi all,
> first thanks you all for shapely: I've just started using it and it's
> a wonderful product!
> But there is a things that leaves me puzzled: whenever i run the following 
> code
>
> -------------------
> from shapely.geometry import MultiPoint
> import numpy
>
> parr = numpy.zeros((6,6))
> parr[0,0] = 1
> parr[0,2] = 1
> parr[3,3] = 1
> print parr
> points = numpy.where(parr>0)
> print points
> points_trans = 
> numpy.asarray(numpy.transpose(numpy.vstack(points)),dtype=numpy.float32)
> print points_trans
> mp = MultiPoint(points_trans)
> print list((p.x,p.y) for p in mp.geoms)
> ---------------------
>
> I'm expecting that values in points_trans and mp.geoms should be equals.
> But this is actually the output I get:
>
> parr = [[ 1.  0.  1.  0.  0.  0.]
>  [ 0.  0.  0.  0.  0.  0.]
>  [ 0.  0.  0.  0.  0.  0.]
>  [ 0.  0.  0.  1.  0.  0.]
>  [ 0.  0.  0.  0.  0.  0.]
>  [ 0.  0.  0.  0.  0.  0.]]
>
> points = (array([0, 0, 3]), array([0, 2, 3]))
>
> points_trans = [[ 0.  0.] [ 0.  2.] [ 3.  3.]]
>
> list = [(0.0, 5.325712092559326e-315), (32.000007629394531,
> 1.6304166312761136e-322), (9.2814421247954897e-317,
> 1.9762625833649862e-323)]
>
> This happen on fed core 9 -  x64 - python 2.5 -  Shapely 1.06, geos 3.0
> and on RHEL5 x64 - python 2.4 - Shapely 1.06 - geos 3.0.
> On this platform the last line is:
>
> list = [(0.0, 5.325712092559326e-315), (32.000007629394531,
> 1.6304166312761136e-322), (2.4278924170566564e-315,
> 2.4180091278772481e-315)]
>
> Basically I just want to take a binary image and create a shape object
> which represent the image . Is there something that I got wrong? or a
> simpler way to do it?
>
> Thanks and regards
>
> Mario Ceresa
>
_______________________________________________
Community mailing list
[email protected]
http://lists.gispython.org/mailman/listinfo/community

Reply via email to