[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