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

2024-04-16 Thread Norman Vine via gdal-dev
If using Numpy ReadAsArray maybe your friendOn Apr 14, 2024, at 7:48 PM, Michael Sumner via gdal-dev  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 gdalgdal.UseExceptions()## we do something with vrtdsn = "vrt:///vsicurl/https://github.com/cran/rgl/raw/master/inst/textures/worldsmall.png?a_ullr=-180,90,180,-90=rgb"ds = gdal.Open(dsn)## write to tif format, but using MEMgdal.Translate(temp_name, ds)## now obtain those bytes from the GDAL virtual filef = gdal.VSIFOpenL(temp_name, 'rb')gdal.VSIFSeekL(f, 0, 2) # endsize = gdal.VSIFTellL(f)gdal.VSIFSeekL(f, 0, 0) # begin## the desired result is thisdata = "" size, f)## and clean upgdal.VSIFCloseL(f)gdal.Unlink(temp_name)Cheers, Mike-- Michael SumnerSoftware and Database EngineerAustralian Antarctic DivisionHobart, Australiae-mail: mdsum...@gmail.com___gdal-dev mailing listgdal-dev@lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/gdal-dev
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


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

2024-04-15 Thread Norman Vine via gdal-dev
If you are using numpy ReadAsArray maybe your friend 

> On Apr 14, 2024, at 7:48 PM, Michael Sumner via gdal-dev 
>  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=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: mdsum...@gmail.com
> ___
> gdal-dev mailing list
> gdal-dev@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


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

2024-04-15 Thread Even Rouault via gdal-dev

Hi Michael,

I can't think of a better way with the current API.

There has been some work in progress in 
https://github.com/OSGeo/gdal/pull/8222 to make VSIFile accessible as a 
regular Python file, but this isn't merged


Even

Le 15/04/2024 à 01:48, Michael Sumner via gdal-dev a écrit :
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=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: mdsum...@gmail.com

___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


--
http://www.spatialys.com
My software is free, but my time generally not.
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


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

2024-04-14 Thread Michael Sumner via gdal-dev
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=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: mdsum...@gmail.com
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev