def _update_filename(self, text): """ """ if self.auto_checkbox.checkState(): new_text = hdf54bats.str_to_ascii(text) if len(new_text) > 0: self._surveyfilename_edit.setText(new_text + '.h5') else: self._surveyfilename_edit.setText('')
def update_groupname(self, text): """ """ if self.auto_checkbox.checkState(): new_text = hdf54bats.str_to_ascii(text) if len(new_text) > 0: self.detectorgroup_edit.setText(new_text) else: self.detectorgroup_edit.setText('') self.enable_buttons()
def _import_wavefiles(self): """ """ try: try: detectorgroup = self.detector_combo.currentText() self._parentwidget._write_to_status_bar( '- Busy: Importing wave files.') h5_wavefiles = hdf54bats.Hdf5Wavefiles(self.dir_path, self.survey_name) # wurb_utils = dsp4bats.WurbFileUtils() for rowindex in range(self._items_model.rowCount()): try: item = self._items_model.item(rowindex, 0) if item.checkState() == QtCore.Qt.Checked: wave_file_path = str(item.text()) # wave.remove_wavefile(item_id) wave_reader = None try: # detector_type = self.detectortype_combo.currentText( ) if detector_type == 'CloudedBats-WURB/Pathfinder': metadata_reader = metadata4bats.MetadataWavefileWurb( wave_file_path) elif detector_type == 'Generic': metadata_reader = metadata4bats.MetadataWavefile( wave_file_path) elif detector_type == '(Generic GUANO)': metadata_reader = metadata4bats.MetadataWavefile( wave_file_path) elif detector_type == 'AudioMoth version 1.0': metadata_reader = metadata4bats.MetadataWavefileAudiomoth( wave_file_path) elif detector_type == '(AudioMoth version 1.2)': metadata_reader = metadata4bats.MetadataWavefileAudiomoth( wave_file_path) elif detector_type == '(Pettersson-M500X)': metadata_reader = metadata4bats.MetadataWavefile( wave_file_path) else: metadata_reader = metadata4bats.MetadataWavefile( wave_file_path) # metadata_reader.extract_metadata() metadata = metadata_reader.get_metadata() # file_name = metadata['rec_file_name'] title = file_name if 'rec_datetime_local' in metadata: datetime_str = metadata[ 'rec_datetime_local'][0:15] name = 'wave_' + hdf54bats.str_to_ascii( datetime_str) else: name = metadata['rec_file_stem'].lower() if self.location_combo.currentText( ) == 'Get from wave files': pass # Already done. elif self.location_combo.currentText( ) == 'Enter manually': metadata[ 'rec_latitude_dd'] = self.latitude_dd_edit.text( ) metadata[ 'rec_longitude_dd'] = self.logitude_dd_edit.text( ) elif self.location_combo.currentText( ) == 'Unknown location': metadata['rec_latitude_dd'] = '' metadata['rec_longitude_dd'] = '' name = hdf54bats.str_to_ascii(name) self._parentwidget._write_to_status_bar( '- Busy: Importing: ' + file_name) app_utils.Logging().info( 'Importing wavefile: ' + title) QtWidgets.QApplication.processEvents() wave_reader = dsp4bats.WaveFileReader( wave_file_path) signal = np.array([], dtype=np.int16) buffer = wave_reader.read_buffer( convert_to_float=False) while len(buffer) > 0: signal = np.append(signal, buffer) buffer = wave_reader.read_buffer( convert_to_float=False) finally: if wave_reader: wave_reader.close() wavefile_id = h5_wavefiles.add_wavefile( parent_id=detectorgroup, node_id=name, title=title, array=signal) h5_wavefiles.set_user_metadata(wavefile_id, metadata=metadata) # except Exception as e: debug_info = self.__class__.__name__ + ', row ' + str( sys._getframe().f_lineno) app_utils.Logging().error('Exception: (' + debug_info + '): ' + str(e)) finally: self._parentwidget._write_to_status_bar('') self.accept() # Close dialog box. # except Exception as e: debug_info = self.__class__.__name__ + ', row ' + str( sys._getframe().f_lineno) app_utils.Logging().error('Exception: (' + debug_info + '): ' + str(e))