def testfilenumber0(self, mock_exists, mock_glob): # The second file - filename already exists mock_exists.return_value = True mock_glob.return_value = ['testfolder/test/testfile.csv'] filename = 'testfolder/test/testfile.csv' new_filename = file_namer.name_file(filename) self.assertEqual('testfolder/test/testfile-1.csv', new_filename)
def testfilenumber1(self, mock_exists, mock_glob): # A filename ending with the digit 1 mock_exists.return_value = True mock_glob.return_value = ['testfolder/test/testfile1.csv'] filename = 'testfolder/test/testfile1.csv' new_filename = file_namer.name_file(filename) self.assertEqual('testfolder/test/testfile1-1.csv', new_filename)
def testdifffile(self, mock_exists, mock_glob): # First file - filename does not yet exist mock_exists.return_value = False mock_glob.return_value = [] filename = 'testfolder/test/differentname.csv' new_filename = file_namer.name_file(filename) self.assertEqual('testfolder/test/differentname.csv', new_filename)
def testnofolder(self, mock_exists, mock_glob): # File name has no folders in it mock_exists.return_value = True mock_glob.return_value = [] filename = 'testfile.csv' new_filename = file_namer.name_file(filename) self.assertEqual('testfile-1.csv', new_filename)
def save_image_scale(self, filename): if self.Image.calibration==0: print("You gave me no scale! I can't do it!") return self.axis.yaxis.set_major_locator(NullLocator()) self.axis.xaxis.set_major_locator(NullLocator()) filename = file_namer.name_file(filename) plt.savefig(filename, transparent=True, bbox_inches='tight', pad_inches=0)
def testfileorder2(self, mock_exists, mock_glob): # Order of files in the folder is not sequential mock_exists.return_value = True mock_glob.return_value=[ 'testfolder/test/testfile-1.csv', 'testfolder/test/testfile.csv'] filename = 'testfolder/test/testfile.csv' new_filename = file_namer.name_file(filename) self.assertEqual('testfolder/test/testfile-2.csv', new_filename)
def testfileorder1(self, mock_exists, mock_glob): # Third filename mock_exists.return_value = True mock_glob.return_value=[ 'testfolder/test/testfile.csv', 'testfolder/test/testfile-1.csv'] filename = 'testfolder/test/testfile.csv' new_filename = file_namer.name_file(filename) self.assertEqual('testfolder/test/testfile-2.csv', new_filename)
def save_colourbar(self, filename): extent_colourbar = self.colourbar_axis.get_window_extent().transformed(plt.gcf().dpi_scale_trans.inverted()) extent_toptick = self.colourbar_axis.yaxis.get_ticklabels()[0].get_window_extent().transformed(plt.gcf().dpi_scale_trans.inverted()) extent_bottomtick = self.colourbar_axis.yaxis.get_ticklabels()[-1].get_window_extent().transformed(plt.gcf().dpi_scale_trans.inverted()) new_extent = np.array([np.min((extent_colourbar.get_points()[0,:], extent_toptick.get_points()[0,:], extent_bottomtick.get_points()[0,:]), axis=0), np.max((extent_colourbar.get_points()[1,:], extent_toptick.get_points()[1,:], extent_bottomtick.get_points()[1,:]), axis=0)]) extent_colourbar.set_points(new_extent) filename = file_namer.name_file(filename) # print('Saving colourbar as...', filename) plt.gcf().savefig(filename, bbox_inches=extent_colourbar, transparent=True)
def SaveImgAsPNG(self, filename, clim, cmap=None): # r_min = max(clim[0], self.Imglim[0]) # r_max = min(clim[1], self.Imglim[1]) r_min = clim[0] r_max = clim[1] filename = file_namer.name_file(filename) writefile = open(filename, 'wb') if type(self.data) == np.ma.MaskedArray: writeImage = np.empty((self.size[0], self.size[1] * 2)) writeImage[:, 0::2] = np.round( 255 * (self.data.data.astype(float) - r_min) / float( (r_max - r_min))) * np.invert(self.data.mask) writeImage[:, 1::2] = np.invert(self.data.mask) * 255 alph = True else: writeImage = np.round(255 * (self.data.astype(float) - r_min) / float((r_max - r_min))) alph = False if cmap is not None: colours = (cmap(np.arange(0, 256)) * 255).astype(int) colourstuple = map(tuple, colours) if np.all( np.equal(np.array(colours[:, 0]), np.array(colours[:, 1]), np.array(colours[:, 2]))): writer = png.Writer(size=self.size[::-1], greyscale=True, alpha=alph) print('I am so gray...') else: writer = png.Writer(size=self.size[::-1], palette=colourstuple, bitdepth=8) if type(self.data) == np.ma.MaskedArray: writeImage = np.round( 255 * (self.data.data.astype(float) - r_min) / float( (r_max - r_min))) * np.invert(self.data.mask) else: writeImage = np.round( 255 * (self.data.astype(float) - r_min) / float( (r_max - r_min))) print('Well, colour me pink!') else: writer = png.Writer(size=self.size[::-1], greyscale=True, alpha=alph) writeImage[writeImage < 0] = 0 writeImage[writeImage > 255] = 255 writer.write(writefile, writeImage) writefile.close()
def SaveSpectrumAsCSV(self, filename): filename = file_namer.name_file(filename) ExportSpectrumRange = np.copy(self.SpectrumRange) ExportIntensity = np.copy(self.intensity) ExportSpectrumRange.resize(len(ExportSpectrumRange), 1) ExportIntensity.resize(len(ExportIntensity), 1) ExportData = np.append(ExportSpectrumRange, ExportIntensity, axis=1) ExportHeaders = [(self.unit_label + ' (' + self.units + ')'), 'Intensity'] with open_csv(filename, 'w') as csvfile: writer = csv.writer(csvfile, delimiter='\t') writer.writerow(ExportHeaders) writer.writerows(ExportData) print('Saved file...', filename)
def save_img(self, filename, clim=[None, None], cmap=None, **kwargs): ''' Save image Filename: string to name the file, include directory path if the current folder is not desired, filetype is given by the ending clim: colour limits, if the image should be thresholded to a minimum and maximum value. Should be of the form [minimum, maximum] cmap: colourmap to apply to the saved image (eg, for grayscale images) ''' if not isstring(filename): raise ValueError('Your filename is not a string!') if clim[0] is not None: r_min = clim[0] # r_min = np.maximum(clim[0], np.min(self.data.flatten())) else: r_min = np.min(self.data.flatten()) if clim[1] is not None: r_max = clim[1] # r_max = np.minimum(clim[1], np.max(self.data.flatten())) else: r_max = np.max(self.data.flatten()) filename = file_namer.name_file(filename) save_im = imfun.contrast_stretch(self.data, r=[r_min, r_max], s=[0, 255], bits=8).astype('uint8') if cmap is not None: save_im = cmap(save_im) # if np.ma.is_masked(self.data) and np.shape(save_im)[-1] == 4: # print('mask') # save_im[:, :, -1] = save_im[:, :, -1] * self.data.mask.astype(int) imfun.write_image(save_im, filename, **kwargs) else: imfun.write_image(save_im, filename, **kwargs)