Andrey Kiselev wrote:
On Mon, Mar 29, 2010 at 11:23:08PM +0300, Ari Jolma wrote:
That would mean copying from the initial buffer directly into Perl arrays within a typemap - I haven't done that because of the complication of several datatypes. To change that would mean - not to break existing code - defining a new set of read/write methods.
I would like to read directly in the final string object. I think it could be 
done using the buffer API in recent Python branches.

But is the string object useful from Python programmer's point of view then? (maybe NumPy?) I can let Perl allocate memory for a Perl string and then *possibly* give that buffer to the RasterIO, but the Perl string still needs to be unpacked by the Perl hacker. There are cases when the binary buffer is ok - for example in libral (C), and then in Geo::Raster (Perl) I do just that - but for the average Joe Perl Hacker it would be good to put it into a Perl 2D array - i.e., each number into its own scalar. That I could do in standard typemaps, but as I wrote, the interface is different from Band.ReadRaster, which returns the string. I have defined a ReadTile/WriteTile interface(*), which do just that, but currently the implementation is the read->copy->copy, and the 2nd one in Perl, which makes it even a bit slower.

(*) see http://geoinformatics.tkk.fi/doc/Geo-GDAL/html/class_geo_1_1_g_d_a_l_1_1_band.html

Regards,

Ari



For now I have reverted back the problem commit.

Best regards,
Andrey


_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to