[gdal-dev] VSIF and Python
Ari Jolma
ari.jolma at gmail.com
Mon Nov 14 09:55:43 EST 2011
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/
More information about the gdal-dev
mailing list