[gdal-dev] advice on python style - get file/dataset as bytes
Norman Vine
nhv at meganet.net
Mon Apr 15 15:08:56 PDT 2024
If you are using numpy ReadAsArray maybe your friend
> On Apr 14, 2024, at 7:48 PM, Michael Sumner via gdal-dev <gdal-dev at lists.osgeo.org> wrote:
>
> Hi, I'm getting some pushback on my code style. I just want the raw bytes in-memory of a file in Python, for a manageable tiny dataset.
>
> Is there anything especially wrong with the following? It's essentially the same as the answer here:
>
> https://lists.osgeo.org/pipermail/gdal-dev/2016-August/045030.html
>
> (I know it needs error checks, I just mean the bare style of how to get the task done).
>
> temp_name = "/vsimem/some.tif"
> from osgeo import gdal
> gdal.UseExceptions()
>
> ## we do something with vrt
> dsn = "vrt:///vsicurl/https://github.com/cran/rgl/raw/master/inst/textures/worldsmall.png?a_ullr=-180,90,180,-90&expand=rgb"
> ds = gdal.Open(dsn)
> ## write to tif format, but using MEM
> gdal.Translate(temp_name, ds)
>
> ## now obtain those bytes from the GDAL virtual file
> f = gdal.VSIFOpenL(temp_name, 'rb')
> gdal.VSIFSeekL(f, 0, 2) # end
> size = gdal.VSIFTellL(f)
> gdal.VSIFSeekL(f, 0, 0) # begin
>
> ## the desired result is this
> data = gdal.VSIFReadL(1, size, f)
>
> ## and clean up
> gdal.VSIFCloseL(f)
> gdal.Unlink(temp_name)
>
> Cheers, Mike
>
>
>
> --
> Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> Hobart, Australia
> e-mail: mdsumner at gmail.com
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
More information about the gdal-dev
mailing list