2927
Overwrite ENVI image files in batch mode
In ENVI, raster files are READ_ONLY. This is a way to preserve original data: original data values cannot be modified even by mistake.
There is currently no direct way to force ENVI to modify the READ_ONLY status of raster files so they can be overwritten.
Below is an example of one possible workaround to save a processed image by overwriting the original data.
Note: it is recommended to make a local copy of the original data when testing this solution.
; Open the test Raster image
file = 'C:\TEMP\qb_boulder_pan'
raster = e.OpenRaster(file)
; Process the data: for example, create a subset
subRaster = ENVISubsetRaster(raster, SUB_RECT=[500,2500,1699,3999])
; Create a new temporary filename
newFile = e.GetTemporaryFilename()
; Export the subset to this temporary file
subraster.Export, newFile, 'ENVI'
; Close the original raster and the subset raster
subRaster.close
raster.close
; Delete the original files (raster+header)
FILE_DELETE, file
FILE_DELETE, file+'.hdr'
; Copy the temporary file
; and name this copy using the original filenames (raster+header)
FILE_COPY, newfile, file
FILE_COPY, (strsplit(newfile,'.',/EXTRACT))[0]+'.hdr', file+'.hdr'
; Delete the temporary files (raster+header)
FILE_DELETE, newfile
FILE_DELETE, (strsplit(newfile,'.',/EXTRACT))[0]+'.hdr'
Created BC 1/24/18
Reviewed 1/25/18 - mm