def saveExifMetadata(self, instance, schema, metadata): """Save all the metadata to a Dataset_Files paramamter set. """ parameters = self.getParamaters(schema, metadata) if not parameters: return None try: ps = DatafileParameterSet.objects.get(schema=schema, dataset_file=instance) return ps # if already exists then just return it except DatafileParameterSet.DoesNotExist: ps = DatafileParameterSet(schema=schema, dataset_file=instance) ps.save() for p in parameters: if p.name in metadata: dfp = DatafileParameter(parameterset=ps, name=p) if p.isNumeric(): dfp.numerical_value = metadata[p.name] else: dfp.string_value = metadata[p.name] dfp.save() return ps
def saveSpectraMetadata(self, instance, schema, metadata): """Save all the metadata to a Dataset_Files paramamter set. """ parameters = self.getParamaters(schema, metadata) if not parameters: return None (ps, created) = DatafileParameterSet.objects.get_or_create(schema=schema, dataset_file=instance) if created: # new object was created ps.save() else: # if parameter set already exists then just return it return ps # save datafile parameters for p in parameters: if p.name in metadata: dfp = DatafileParameter(parameterset=ps, name=p) if p.isNumeric(): dfp.numerical_value = metadata[p.name][0] else: dfp.string_value = metadata[p.name][0] dfp.save() return ps
def saveFlexstationMetadata(self, instance, schema, metadata): """Saves or overwrites the datafile's metadata to a Dataset_Files parameter set in the database. """ logger.info('Saving Metadata') parameters = self.getParameters(schema, metadata) if not parameters: return None try: ps = DatafileParameterSet.objects.get(schema=schema, dataset_file=instance) return ps # if already exists then just return it except DatafileParameterSet.DoesNotExist: ps = DatafileParameterSet(schema=schema, dataset_file=instance) ps.save() for p in parameters: if p.name in metadata: dfp = DatafileParameter(parameterset=ps, name=p) if p.isNumeric(): if metadata[p.name] != '': dfp.numerical_value = metadata[p.name] dfp.save() else: dfp.string_value = metadata[p.name].decode('cp1252') dfp.save() return ps
def savep(paramk, paramv): param_name = ParameterName.objects.get(schema__id=schema.id, name=paramk) dfp = DatafileParameter(parameterset=param_set, name=param_name) if paramv != "": if param_name.isNumeric(): dfp.numerical_value = paramv else: dfp.string_value = paramv dfp.save()
def saveMetadata(self, instance, schema, metadata): """Save all the metadata to a Dataset_Files paramamter set. """ parameters = self.getParameters(schema, metadata) exclude_line = dict() exclude_line['-----'] = None exclude_line['Reading global metadata'] = None exclude_line['Reading metadata'] = None exclude_line['Reading core metadata'] = None exclude_line['Populating metadata'] = None exclude_line['Reading tags'] = None exclude_line['Verifying Gatan format'] = None exclude_line['Initializing reader'] = None exclude_line['Checking file format [Gatan Digital Micrograph]'] = None if not parameters: return None try: ps = DatafileParameterSet.objects.get(schema=schema, dataset_file=instance) return ps # if already exists then just return it except DatafileParameterSet.DoesNotExist: ps = DatafileParameterSet(schema=schema, dataset_file=instance) ps.save() for p in parameters: print p.name if p.name in metadata: dfp = DatafileParameter(parameterset=ps, name=p) if p.isNumeric(): if metadata[p.name] != '': dfp.numerical_value = metadata[p.name] dfp.save() else: print p.name if isinstance(metadata[p.name], list): for val in reversed(metadata[p.name]): strip_val = val.strip() if strip_val: if not strip_val in exclude_line: dfp = DatafileParameter(parameterset=ps, name=p) dfp.string_value = strip_val dfp.save() else: dfp.string_value = metadata[p.name] dfp.save() return ps
def saveMetadata(self, instance, schema, metadata): """Save all the metadata to a Dataset_Files paramamter set. """ parameters = self.getParameters(schema, metadata) # Some/all? of these excludes below are specific to DM3 format: exclude_line = dict() if not parameters: print "Bailing out of saveMetadata because of 'not parameters'." return None try: ps = DatafileParameterSet.objects.get(schema=schema, datafile=instance) print "Parameter set already exists for %s, so we'll just " \ "return it." % instance.filename return ps # if already exists then just return it except DatafileParameterSet.DoesNotExist: ps = DatafileParameterSet(schema=schema, datafile=instance) ps.save() for p in parameters: print p.name if p.name in metadata: dfp = DatafileParameter(parameterset=ps, name=p) if p.isNumeric(): if metadata[p.name] != '': dfp.numerical_value = metadata[p.name] dfp.save() else: print p.name if isinstance(metadata[p.name], list): for val in reversed(metadata[p.name]): strip_val = val.strip() if strip_val: if strip_val not in exclude_line: dfp = DatafileParameter(parameterset=ps, name=p) dfp.string_value = strip_val dfp.save() else: dfp.string_value = metadata[p.name] dfp.save() return ps
def saveMetadata(self, instance, schema, metadata): """Save all the metadata to a Dataset_Files parameter set. """ logger.error('Olympus-saveMetadata()') parameters = self.getParameters(schema, metadata) if not parameters: return None try: ps = DatafileParameterSet.objects.get(schema=schema, dataset_file=instance) return ps # if already exists then just return it except DatafileParameterSet.DoesNotExist: ps = DatafileParameterSet(schema=schema, dataset_file=instance) ps.save() for p in parameters: print p.name if p.name in metadata: dfp = DatafileParameter(parameterset=ps, name=p) if p.isNumeric(): if metadata[p.name] != '': dfp.numerical_value = metadata[p.name] dfp.save() else: print p.name if isinstance(metadata[p.name], list): for val in reversed(metadata[p.name]): strip_val = val.strip() if strip_val: if not strip_val in exclude_line: dfp = DatafileParameter(parameterset=ps, name=p) dfp.string_value = strip_val dfp.save() else: dfp.string_value = metadata[p.name] dfp.save() return ps