[gdal-dev] empty Gtiff from Python
Tom van der Putte
tom at vdputte.nl
Fri Oct 28 05:06:16 EDT 2011
Hi Vincent,
Thanks for the repliy; unfortunately
gdal_array.BandWriteArray(ds.GetRasterBand(1),a)
(BandWriteAsArray doesn't exist)
has the same effect.
Tom
On Fri 28/10/11 10:57 , Vincent Schut schut at sarvision.nl sent:
Tom van der Putte wrote: Hi
List,
I'm trying to save a numpy array to a GTiff, which should be
quite straightforward, considering all the examples available on
the web. However, I get an file that is not readable by Qgis, is
regarded by ArcMap to have only 0 and gdalinfo displays nothing
on the values.
I start with a ndarray, dtype = int32, shape = ( 10,10). It
has integer values between 1 and 10. The code is as follows:
import numpy as np
from osgeo import gdal
from osgeo import osr
#np array
a = np.ones((10,10))
#coord-system
sr_str = 'LOCAL_CS["arbitrary"]'
sr = osr.SpatialReference( sr_str )
#driver
driver = gdal.GetDriverByName("GTiff")
#dataset
ds = driver.Create("D:\temp\output.tif", 10, 10, 1,
gdal.GDT_Byte)
ds.SetProjection( sr_str )
ds.SetGeoTransform((0, 1, 0,0, 0,1))
#write and close
ds.GetRasterBand(1).WriteArray(a)
ds = None
Tom,
don't know if you can use WriteArray this way... what I always
do, is:
from osgeo import gdal_array
# to write numpy array:
gdal_array.BandWriteAsArray(ds.GetRasterBand(1), a)
Best,
Vincent.
The corresponding gdalinfo is:
*********
Raster dataset parameters:
Projection:
LOCAL_CS["arbitrary",UNIT["metre",1,AUTHORITY["EPSG","9001"]]]
RasterCount: 1
RasterSize (10,10)
Using driver GeoTIFF
Metadata:
0: AREA_OR_POINT=Area
Image Structure Metadata:
0: INTERLEAVE=BAND
Corner Coordinates:
Upper Left (0, 0)
Lower Left (0, 10)
Upper Right (10, 0)
Lower Right (10, 10)
Center (5, 5)
Coordinate System is:
LOCAL_CS["arbitrary",
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Band 1 :
DataType: Byte
ColorInterpretation: Gray
Description:
Size (10,10)
BlockSize (10,10)
*********
I have tried both version 1.6.3 (I'm trying to make a Qgis
plugin, and thus restricted to 1.6.3) as well as 1.8.1. I have
also tried ds = driver.Create("D:\temp\output.tif", 10, 10, 1,
gdal.GDT_Int32), but that didn't make much difference.
I tried to make a Surfer grid (GSBG), and this somewhat
worked: it gave a nice picture, but the values were off the
charts.
Any clues as to what I'm missing here? Cheers,
Tom van der Putte
_______________________________________________ gdal-dev mailing
list gdal-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20111028/f4601ad1/attachment.html
More information about the gdal-dev
mailing list