i'm using OSGeo4W64 (gdal 2.0.2-8) with Python 2.7.5 on Windows 8.1 64bit. Editor is PyCharm 2016年1月2日.
I want to save an image with gdal, but i always get an error when the python script is complete. The following example causes the error:
from osgeo import gdal
import numpy as np
path = 'D:\\test.tiff'
data = np.array([[1]])
sizeY = int(data.shape[0])
sizeX = int(data.shape[1])
bandCount = 1
driver = gdal.GetDriverByName("GTiff")
dataSet = driver.Create(path, sizeX, sizeY, bandCount, gdal.GDT_Byte)
band = dataSet.GetRasterBand(1)
band.WriteArray(data) # causes error, if commented out, everything is fine
band = None
dataSet = None
print "the appcrash will come next"
I'm dereferencing the vars and it should be fine, but i'm getting "python.exe has stopped working".
The console shows:
the appcrash will come next
Process finished with exit code -1073741819 (0xC0000005)
When i run the code in QGIS (2.14.1) and i close QGIS, a similar error occurrs and a dump file was created.
Process Name: qgis-bin.exe : C:\OSGeo4W64\bin\qgis-bin.exe
Process Architecture: x64
Exception Code: 0xC0000005
Exception Information: The thread tried to read from or write to a virtual
address for which it does not have the appropriate access.
My GDAL-Enviroment-Vars are:
GDAL_DRIVER_PATH=C:\OSGEO4~1\bin\gdalplugins
GDAL_DATA=C:\OSGEO4~1\share\gdal
I have no idea why this error happens (maybe something with the dereferencing). The error might be similar to here.
-
The script makes no sense. You can print the values of data, sizeY and sizeX. It will see why.xunilk– xunilk2016年04月13日 16:04:41 +00:00Commented Apr 13, 2016 at 16:04
-
It's just a test setup, which creates a pixel with the value of 1. Data can be any grayscale image data.douni– douni2016年04月14日 16:42:26 +00:00Commented Apr 14, 2016 at 16:42
1 Answer 1
I had such problems with not only python gdal binds but with standard gdal apps: gdalwarp, gdal_translate and so on.. So the problem was solved after full reinstall of all gdal and python reminds in system with refreshing path and gdalpath enviroment vars. The fastest way:
- Install Anaconda https://www.continuum.io/downloads,
- Install GDAL core from gisinternal http://www.gisinternals.com/release.php with refreshing env vars
- From Anaconda direcory execute "conda install gdal"