[gdal-dev] empty Gtiff from Python
Tom van der Putte
tom at vdputte.nl
Fri Oct 28 09:24:55 EDT 2011
I
reinstalled everything, and then still something went wrong. Here I
have to tell you a little more on my goal: I was trying to convert a
slice of opendap data into netcdf. For this I use Pydap (works well).
I found out that using an 2D array populated in a loop was saved as
a GTiff without a problem, but the PyDap arrays were a problem. Turned
out that Pydap returns a big-endian 32bit integer ( '>i4' ).
Converting this to 'normal' int32 resulted in a perfect image:
instead of :
a = dataset['klasse'][1:9,1:9,5].array[:]
I used:
a = dataset['klasse'][1:9,1:9,5].array[:].view(dtype = 'int32')
a[:] = dataset['klasse'][1:9,1:9,5].array[:]
Is this something to request a ticket for in GDAL to support? Not a
real big deal, but it takes time to convert obviously.
Tom
On Fri 28/10/11 11:10 , "Chris Yesson" Chris.Yesson at ioz.ac.uk sent:
Tom,
I have just run your code exactly as you sent it (except for output
path), with python 2.5.2 ang gdal 1.8.1. The ouput file appears in
order (gdalinfo output below). The file opens and displays normally
in
qgis trunk v 1.8.
- Chris
Gdalinfo output
Driver: GTiff/GeoTIFF
Files: output.tif
output.tif.aux.xml
Size is 10, 10
Coordinate System is:
LOCAL_CS["arbitrary",
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 10.0)
Upper Right ( 10.0, 0.0)
Lower Right ( 10.0, 10.0)
Center ( 5.0, 5.0)
Band 1 Block=10x10 Type=Byte, ColorInterp=Gray
Min=1.000 Max=1.000
Minimum=1.000, Maximum=1.000, Mean=1.000, StdDev=0.000
Metadata:
STATISTICS_MINIMUM=1
STATISTICS_MAXIMUM=1
STATISTICS_MEAN=1
STATISTICS_STDDEV=0
Date: Fri, 28 Oct 2011 10:23:04 +0200
From: Tom van der Putte
Subject: [gdal-dev] empty Gtiff from Python
To:
Message-ID:
Content-Type: text/plain; charset="utf-8"
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:tempoutput.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
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:tempoutput.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
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.osgeo.org/pipermail/gdal-dev/attachments/20111028/d4d82f44/
attachment-0001.html
------------------------------
_______________________________________________
gdal-dev mailing list
http://lists.osgeo.org/mailman/listinfo/gdal-dev
End of gdal-dev Digest, Vol 89, Issue 71
****************************************
This message has been scanned for viruses by MailControl -
www.mailcontrol.com
Click
https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg==
oTJhgA1yNPXUJ0FMnJ7X3MJaL!eAyER2lygvJyt6ermNw== to report this
email as
spam.
The Zoological Society of London is incorporated by Royal Charter
Principal Office England. Company Number RC000749
Registered address:
Regent's Park, London, England NW1 4RY
Registered Charity in England and Wales no. 208728
_________________________________________________________________________
This e-mail has been sent in confidence to the named addressee(s).
If you are not the intended recipient, you must not disclose or
distribute
it in any form, and you are asked to contact the sender immediately.
Views or opinions expressed in this communication may not be those
of The Zoological Society of London and, therefore, The Zoological
Society of London does not accept legal responsibility for the
contents
of this message. The recipient(s) must be aware that e-mail is not a
secure communication medium and that the contents of this mail may
have been altered by a third party in transit.
If you have any issues regarding this mail please contact:
.
___________________________________________________________________________
This message has been scanned for viruses by MailControl, a service
from BlackSpider Technologies.
Links:
------
[5] http://www.mailcontrol.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20111028/1c4fb05f/attachment.html
More information about the gdal-dev
mailing list