def post(self): """Classifies given data using specified classifier.""" # Retrieve specified classifier from database. classifier_id = self.request.POST['classifier_id'] conn = ds.create_sqlite_connection() db_entry = ds.fetch_classifier(conn, classifier_id) classifier = db_entry[3] # Transform given MRS data for classifier input. file_name = self.request.POST['myfile'].filename raw_data = self.request.POST['myfile'].file.read() d = dataparser.get_xy_data(raw_data) fftd = fourier_transformer.get_fft(d) # Classify the transformed MRS data. test_input = np.array([fftd]) classification = classifier.predict(test_input) # Show classification results. template = JINJA_ENVIRONMENT.get_template('classificationresults.html') self.response.write(template.render( classification=classification, file_name=file_name))
def load_specified_classifier(self): """Loads the user-specified classifier. Returns: Tuple containing (classifier, classifier_name, classifier_type). If the user did not specify a classifier, then classifier and classifier_name will be None. """ classifier = None classifier_name = None classifier_type = self.request.POST['classifier_type'] # Load a saved classifier if specified by the user. if self.request.POST['load_classifier'] == 'true': # Query database for classifier with specified ID. classifier_id = self.request.POST['classifier_id'] db_entry = ds.fetch_classifier( ds.create_sqlite_connection(), classifier_id) classifier = db_entry[3] classifier_type = db_entry[2] classifier_name = db_entry[1] return (classifier, classifier_name, classifier_type)