[gdal-dev] advice on python style - get file/dataset as bytes

Michael Sumner mdsumner at gmail.com
Sun Apr 14 16:48:16 PDT 2024


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20240415/b6ec0495/attachment.htm>


More information about the gdal-dev mailing list