X
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