def on_cmdSaveFile_clicked(self): lastFolder = read_setting(PLUGIN_NAME + "/" + self.toolKey + "/LastOutFolder") if lastFolder is None or not os.path.exists(lastFolder): lastFolder = read_setting(PLUGIN_NAME + '/BASE_OUT_FOLDER') # get first layer in the list str_pixel_size = numeric_pixelsize_to_string(float(self.pixel_size[0])) filename = 'k-means_{}clusters_{}rasters_{}'.format( self.spnClusters.value(), self.tabList.rowCount(), str_pixel_size) # replace more than one instance of underscore with a single one. # ie'file____norm__control___yield_h__' to 'file_norm_control_yield_h_' filename = re.sub(r"_+", "_", filename) s = save_as_dialog(self, self.tr("Save As"), self.tr("Tiff") + " (*.tif);;", default_name=os.path.join(lastFolder, filename + '.tif')) if s == '' or s is None: return s = os.path.normpath(s) self.lneSaveFile.setText(s) if file_in_use(s): self.lneSaveFile.setStyleSheet('color:red') self.lblSaveFile.setStyleSheet('color:red') else: self.lblSaveFile.setStyleSheet('color:black') self.lneSaveFile.setStyleSheet('color:black') write_setting(PLUGIN_NAME + "/" + self.toolKey + "/LastOutFolder", os.path.dirname(s))
def on_cmdSaveRasterFile_clicked(self): lastFolder = read_setting(PLUGIN_NAME + "/" + self.toolKey + "/LastOutFolder") if lastFolder is None or not os.path.exists(lastFolder): lastFolder = read_setting(PLUGIN_NAME + "/BASE_OUT_FOLDER") pixel_size_str = numeric_pixelsize_to_string(self.dsbPixelSize.value()) filename = '{}_BlockGrid_{}'.format(self.mcboTargetLayer.currentText(), pixel_size_str) filename = re.sub('[^A-Za-z0-9_-]+', '', filename) s = save_as_dialog(self, self.tr("Save As"), self.tr("Tiff") + " (*.tif);;", default_name=os.path.join(lastFolder, filename + '.tif')) if s == '' or s is None: return write_setting(PLUGIN_NAME + "/" + self.toolKey + "/LastOutFolder", os.path.dirname(s)) self.lneSaveRasterFile.setText(s) self.lneSaveRasterFile.setStyleSheet('color:black')
def test_numeric_pixelsize_to_string(self): self.assertEqual(numeric_pixelsize_to_string(0.42), '42cm') self.assertEqual(numeric_pixelsize_to_string(0.125), '125mm') self.assertEqual(numeric_pixelsize_to_string(2.0), '2m') self.assertEqual(numeric_pixelsize_to_string(6000), '6km') self.assertEqual(numeric_pixelsize_to_string(1500), '1500m')