Commit 6691c66cbf220948a296f5fa898deb9c30dad195

Authored by David Mayerich
1 parent a02a8b39

added a save function to the ENVI class that allows saving of edited files imported with Python

Showing 1 changed file with 13 additions and 2 deletions   Show diff stats
python/envi.py
... ... @@ -16,6 +16,7 @@ import progressbar
16 16 class envi_header:
17 17 def __init__(self, filename = ""):
18 18 if filename != "":
  19 + self.initialize()
19 20 self.load(filename)
20 21 else:
21 22 self.initialize()
... ... @@ -193,7 +194,7 @@ class envi_header:
193 194 f.write("bands = " + str(self.bands) + "\n")
194 195 f.write("header offset = " + str(self.header_offset) + "\n")
195 196 f.write("file type = ENVI Standard" + "\n")
196   - f.write("data type = " + str(self.get_envi_type(self.type)) + "\n")
  197 + f.write("data type = " + str(self.get_envi_type(self.data_type)) + "\n")
197 198 f.write("interleave = " + self.interleave + "\n")
198 199 f.write("sensor type = " + self.sensor_type + "\n")
199 200 f.write("byte order = " + str(self.byte_order) + "\n")
... ... @@ -268,7 +269,8 @@ class envi:
268 269 #open the file
269 270 self.header = envi_header(headername)
270 271 self.file = open(filename, "rb")
271   -
  272 +
  273 + # load the entire ENVI file into memory and return it as an array
272 274 def loadall(self):
273 275 X = self.header.samples
274 276 Y = self.header.lines
... ... @@ -286,6 +288,15 @@ class envi:
286 288 elif self.header.interleave == "bil":
287 289 D = numpy.reshape(D, (Y, B, X))
288 290 return numpy.rollaxis(D, 1)
  291 +
  292 + #save an updated version of the file (all header information is assumed to be the same)
  293 + def saveall(self, D, filename):
  294 +
  295 + new_header = self.header
  296 + new_header.interleave = "bsq"
  297 + new_header.save(filename + ".hdr")
  298 + D.tofile(filename)
  299 +
289 300  
290 301 #loads all of the pixels where mask != 0 and returns them as a matrix
291 302 def loadmask(self, mask):
... ...