[gdal-dev] .NET and OGR writing to stream

Geoff Burns geoffrey.peter.burns at gmail.com
Tue May 29 00:19:59 PDT 2012


Just reading through this thread about GDAL, C# and memory streams as
I have a similar problem.

The thread seemed to end on a positive note with Maksim Sestic and
Even Rouault seeming to reach a conclusion.

However when I started using the API's Maksim & Even where discussing
I found that Gdal.VSIFWriteL took a string instead of byte[] and
Gdal.VSIFReadL did not seem to exist.

Tamas's suggestion of reading data into a byte array will not work for
me as I would have to write the GeoTiff data to disk in reorder to
read it into the byte array in order to manipulate it in memory which
seems wasteful.

I reached an impasse.

Surely other people in the .NET world want use GDAL without hitting
the disk whenever they want to generate or transform data.

Does anyone have any experience in getting the csharp GDAL API's to
talk to memory instead of disk?

Regards,
Geoff

-----Original Message-----
> 2011/8/03 Maksim Sestic
>
Hi Even,

That's exactly what I was looking for. Yes, Gdal.VSIF* managed bindings are
there. Alas, I've been looking for them under Ogr methods :-)

Regards,
Maksim Sestic


-----Original Message-----
From: Even Rouault
Subject: RE: [gdal-dev] .NET and OGR writing to stream


> Hi Tamas,
>
>
>
> I don't know how to apply the same principle onto OGR drivers (not GDAL).
> I'm trying to create GML structure in memory using OGR driver, then handle
> resulting XML string further. Don't want to write dataset to a file, then
> read the file back to a string.

With the OGR GML driver, you can write to /vsimem/some.gml for example. And
then
you should be able to read that in-memory file with gdal.VSIFOpenL() and
read
its content with gdal.VSIFReadL(). However I'm not sure that the C# bindings
have been updated to support those VSIF*L functions.

There are examples of you to use those API in Python there :
http://trac.osgeo.org/gdal/browser/trunk/autotest/gcore/rfc30.py .

The C# version should be close (provided that the bindings exist for it of
course)

>
>
>
> Regards,
>
> Maksim Sestic
>
>
>
>   _____
>
> From: Tamas Szekeres
> Sent: Monday, August 01, 2011 13:05
> To: Maksim Sestic
> Subject: Re: [gdal-dev] .NET and OGR writing to stream
>
>
>
> Maksim,
>
> You can refer to the example
> http://trac.osgeo.org/gdal/browser/trunk/gdal/swig/csharp/apps/GDALRead.cs
> to see how to read data into a byte array and then you can write this
array

> directly to the memory stream.
>
> Best regards,
>
> Tamas
>
>
>
>
> 2011/7/31 Maksim Sestic
>
> Hi all,
>
>
>
> Is there any example of OGR driver writing to memory stream (instead of
file

> stream), in .NET?
>
>


More information about the gdal-dev mailing list