On 11/14/2011 02:44 PM, Frank Broniewski wrote:

I want to do: read geodata with ogr, do some work with it and dump the result, in case of a text file format, to string instead to file. Right now I am doing the same with an extra step (save the result to file and read it again with python). There's no way to inject a file like object (file, stringio) to gdal instead of path names, isn't there?

This is not an answer and I don't speak for the Python bindings. Instead I'm looking at this from the
point of view of Perl bindings.

Latest Perl bindings do have the VSIF{Open,Close,Seek,Tell,Write}L API but they are not documented[1]. Mostly because I haven't used/tried them. The following is some quick thoughts on how they might be used.

This prints out a shapefile in GML (works now)

use Geo::GDAL;
$datasource = Geo::OGR::Open('/home/ajolma/shapefile.shp');
Geo::OGR::Driver('GML')->Copy($datasource, '/dev/stdout');

The problem with this is I seem to be unable to use any Perl XML/GML processing tools. It might be useful to do something like this:

use Geo::GDAL;
use XML::Parser;
$datasource = Geo::OGR::Open('/home/ajolma/shapefile.shp');
$handle = Geo::OGR::Driver('GML')->Copy($datasource);
$p = new XML::Parser();
$p->parse($handle);

It seems to me that I'm at least missing a method to get the VSILFILE name to be able to build the support for the latter. The $handle should also be something like a standard Perl IO::Handle object. The point here is to avoid writing to and reading from a file. I think I don't even have to possibility to write to a string .. maybe though a memory file yes.

Just thinking,

Ari

[1] http://geoinformatics.tkk.fi/doc/Geo-GDAL/html/

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to