When I use gdal_array.SaveArray() to create a raster, the newly created dataset appears to stay open in Python, preventing other processes from working with it. For instance, consider the following (super minimal) code:
>>> a = np.arange(300).reshape((3, 10, 10))>>> gdal_array.SaveArray(a, "test.tif")>>> os.rename("test.tif", "test2.tif")Traceback (most recent call last): File "", line 1, in WindowsError: [Error 32] The process cannot access the file because it is being used by another processI am similarly prevented from moving, renaming, or deleting the file directly from Windows explorer, with the message The action can't be completed because the file is open in python.exe. More importantly, I can't open the file some visualization/processing programs that I use. Once I exit python, the file is "released" and I can manipulate it to my heart's content.
It doesn't seem like the file has a name associated with it, so I can't close it as I would a raster that I had specifically opened:
>>> dir()['__builtins__', '__doc__', '__name__', '__package__', 'a', 'gdal', 'gdal_array', 'np', 'os']What causes this behavior? Is there a way to call SaveArray() such that it doesn't keep the file opened after writing it? Or, a way to close the file from within Python?
In case it's important, my Python bindings are from gdal 1.11.1 for Python 2.7.8 on Windows 7.
أكثر...
>>> a = np.arange(300).reshape((3, 10, 10))>>> gdal_array.SaveArray(a, "test.tif")>>> os.rename("test.tif", "test2.tif")Traceback (most recent call last): File "", line 1, in WindowsError: [Error 32] The process cannot access the file because it is being used by another processI am similarly prevented from moving, renaming, or deleting the file directly from Windows explorer, with the message The action can't be completed because the file is open in python.exe. More importantly, I can't open the file some visualization/processing programs that I use. Once I exit python, the file is "released" and I can manipulate it to my heart's content.
It doesn't seem like the file has a name associated with it, so I can't close it as I would a raster that I had specifically opened:
>>> dir()['__builtins__', '__doc__', '__name__', '__package__', 'a', 'gdal', 'gdal_array', 'np', 'os']What causes this behavior? Is there a way to call SaveArray() such that it doesn't keep the file opened after writing it? Or, a way to close the file from within Python?
In case it's important, my Python bindings are from gdal 1.11.1 for Python 2.7.8 on Windows 7.
أكثر...