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
