diff --git a/python/envi.py b/python/envi.py index b8edcba..b781839 100644 --- a/python/envi.py +++ b/python/envi.py @@ -27,15 +27,15 @@ class envi_header: self.header_offset = int(0) self.data_type = int(4) self.interleave = "bsq" - self.sensor_type = "" + self.sensor_type = "Unknown" self.byte_order = int(0) self.x_start = int(0) self.y_start = int(0) - self.z_plot_titles = "" + self.z_plot_titles = "Unknown, Unknown" self.pixel_size = [float(0), float(0)] self.pixel_size_units = "Meters" self.wavelength_units = "Wavenumber" - self.description = "" + self.description = "no description" self.band_names = [] self.wavelength = [] @@ -181,6 +181,35 @@ class envi_header: li += 1 f.close() + + #save an ENVI header + def save(self, fname): + f = open(fname, "w") + f.write("ENVI\n") + f.write("description = {" + self.description + "}" + "\n") + f.write("samples = " + str(self.samples) + "\n") + f.write("lines = " + str(self.lines) + "\n") + f.write("bands = " + str(self.bands) + "\n") + f.write("header offset = " + str(self.header_offset) + "\n") + f.write("file type = ENVI Standard" + "\n") + f.write("data type = " + str(self.get_envi_type(self.type)) + "\n") + f.write("interleave = " + self.interleave + "\n") + f.write("sensor type = " + self.sensor_type + "\n") + f.write("byte order = " + str(self.byte_order) + "\n") + f.write("x start = " + str(self.x_start) + "\n") + f.write("y start = " + str(self.y_start) + "\n") + f.write("wavelength units = " + self.wavelength_units + "\n") + f.write("z plot titles = {" + self.z_plot_titles + "}" + "\n") + + f.close() + + #sets the properties of the header to match those of the input array + def set(self, A): + self.type = A.dtype + self.samples = A.shape[2] + self.lines = A.shape[1] + self.bands = A.shape[0] + class envi: def __init__(self, filename, headername = "", mask = []): @@ -348,4 +377,17 @@ class envi: self.file.close() def __del__(self): - self.file.close() \ No newline at end of file + self.file.close() + +#saves an array as an ENVI file +def save_envi(A, fname): + + #create and save a header file + header = envi_header(); + header.set(A) + header.save(fname + ".hdr") + + #save the raw data + file = open(fname, "wb") + file.write(bytearray(A)) + file.close() \ No newline at end of file -- libgit2 0.21.4