Commit 6691c66cbf220948a296f5fa898deb9c30dad195
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): | ... | ... |